参考:
http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance?cmp&p=1
http://www.cnblogs.com/lidabo/p/4738113.html
在Linux系统一切都是文件的思想贯彻指导下,所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标。
top命令
Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。对系统管理员来说,top命令式是一个非常有用的,它可用于监控系统并在需要的时候采取正确的处理动作。让我们看看实际中的top命令。
第1行:当前系统时间,系统从运行到现在总共多少时间,load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第2行:Tasks 任务(进程),系统现在共有多少个进程,其中处于运行中的有?个,?个在休眠(sleep),stoped状态的有?个,zombie状态(僵尸)的有?个
第3行:cpu状态
us 用户空间占用CPU的百分比。
sy 内核空间占用CPU的百分比。
ni 改变过优先级的进程占用CPU的百分比
id 空闲CPU百分比
wa IO等待占用CPU的百分比
hi 硬中断(Hardware IRQ)占用CPU的百分比
si 软中断(Software Interrupts)占用CPU的百分比
第4行:内存状态
total 物理内存总量(8GB)
used 使用中的内存总量(7.7GB)
530668k free 空闲内存总量(530M)
buffers 缓存的内存量 (79M)
第 5行:swap交换分区
total 交换区总量(2GB)
used 使用的交换区总量(2.5M)
free 空闲交换区总量(2GB)
cached 缓冲的交换区总量(4GB)
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去。
有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存。
top命令的几个常用选项:
(1) x 命令,显示哪个属性用来进行排序
(2) 结合 x命令,shift + < 或 > 来改变不同的属性来排序
(3)f 命令,编辑可以显示的属性字段。
(4) top -u tecmint 显示指定系统用户运行的进程
(5)c 命令,显示各个进程运行的完整路径
(6)d 命令,更改top实时刷新的频率,默认是3秒
(7)k 命令,可以kill 掉指定PID的进程
(8)shift + p 命令,可以按进程种类分类,分类后在按cpu利用率排序
(9) r 命令,改变某个PID的nice值
ps 命令
提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。
(1) ps –aux 显示系统中所有进程
(2) ps –aux –sort pcpu 按cpu使用率排序
(3) ps -fC mysql 和 ps aux|grep mysql类似
(4) –eo参数控制数据显示的属性
(5)-L参数显示进程的线程信息
发现23374号线程cpu占用比较高,可以用pstack查看一下调用栈
(1)和 watch命令结合,动态显示关注进程的状态