摘要:1、 cat /proc/${pid}/status 2、pstree -p ${pid} 3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid} top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。
阅读全文
随笔分类 - Linux
摘要:http://www.itshanghai.net/technology/2009/0209/article_238.html http://www.itshanghai.net/technology/2009/0209/article_238.html 另外,可以参考这个http://www.ce
阅读全文
摘要:如何定位死循环或高CPU使用率(linux) 确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx 得到如下结果,其中线程2909使用了7
阅读全文
摘要:1. 使用 pstree -p PID ps aux | grep firefox | grep -v grepcharles 26058 0.0 0.0 4908 1152 ? S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /
阅读全文
摘要:简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 输出信息含义 执行netstat后,其输出结果为 从整体上看,netstat的
阅读全文
摘要:首先,ps -A查看你所查看进程的进程号 ps -A 加入进程号为pid 那么使用如下脚本,可以打印该进程使用的虚拟内存和物理内存: root@Storage:/mnt/mtd# cat rss.sh #!/bin/shwhile true do cat /proc/pid/stat | awk -
阅读全文
摘要:啥也不说,直接上脚本: root@Storage:/mnt/mtd# cat cpu.sh #!/bin/shwhile truedo ps -H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu sleep 1doneroot@Storage:/mnt
阅读全文
摘要:一. CPU 过高或死锁导致系统卡死 1. CPU占用过高 (1)开线程太多导致CPU占用过高,系统卡死 解决:优化应用层业务逻辑,有些业务不必开线程就不开 (2)频繁清缓存导致读spi-flash频繁,引起CPU过高 解决:在内核中文件系统部分进行处理,不去清缓存,然后在应用层用后台服务进程清缓存
阅读全文
摘要:1.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1. 名称:: pthread_attr_init/p
阅读全文
摘要:pthread_create 创建线程时,若不指定分配堆栈大小,系统会分配默认值,查看默认值方法如下: # ulimit -s8192# 上述表示为8M;单位为KB。 也可以通过# ulimit -a 其中 stack size 项也表示堆栈大小。ulimit -s value 用来重新设置stac
阅读全文
摘要:近日,听说pthread_create会造成内存泄漏,觉得不可思议,因此对posix(nptl)的线程创建和销毁进行了分析。 分析结果:如果使用不当,确实会造成内存泄漏。 产生根源:pthread_create默认创建的线程是非detached的。 预防方式:要么创建detached的线程,要么线程
阅读全文
摘要:背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。一、 linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND解
阅读全文
摘要:原文链接 简介 进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来 跟踪一个进程的系统
阅读全文
摘要:原文链接 常用内存泄露检测手段有 1 mtrace 2 memwatch 3 mpatrol 4 dmalloc 5 dbgmem 6 valgrind 7 Electric Fence dmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。 dmalloc能够检查出
阅读全文
摘要:话说“工欲善其事,必先得其器”,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急啊。。。 如果在i368-linlux上,valgrind工具是首选,但在arm-linux平台上,如何呢,dmalloc就是一个不错的选择。当然,IBM的purify是另外一个级别的选手,不提也罢。
阅读全文
摘要:下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了线程选项的,所以我的是./configure --enable-threads3. 生成Makefi
阅读全文
摘要:一谈到内存泄露, 多数程序员都闻之色变。 没错, 内存泄露很容易引入, 但很难定位。 以你我的手机为例(假设不经常关机), 如果每天泄露一些内存, 那么开始的一个星期, 你会发现手机好好的, 当内存泄露积累到一定程度, 那就是各种卡死了, 系统异常, 最后死机, 不得不重启。 如果搞开发, 遇到内存
阅读全文
摘要:前言 所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括: 1. mtrace mtrace是三款工具之中是最简单易用的,mtrace是一个C函數,在<mch
阅读全文
摘要:转自:http://gcc.gnu.org/ml/gcc-help/2007-09/msg00205.html `gcc -print-prog-name=cc1plus` -v `g++ -print-prog-name=cc1plus` -v 例如,CentOS 6.3 64bit 下,`g++
阅读全文
摘要:1、fork + exec fork用来创建一个子进程。一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开
阅读全文

浙公网安备 33010602011771号