linux性能检测命令,Linux命令行性能检测工具集合

系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存、CPU、硬盘……)出了问题。在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说,我们使用的性能监控工具取到的数据值实际上就是源自于这个目录,当涉及到系统高估时,我们就可以修改/proc目录中的相关参数了,当然有些是不能乱改的。下面就让我们了解一下这些常用的性能监控工具。工具功能描述

uptime系统平均负载率

top进程进行状态

iostatCPU和磁盘平均使用率

vmstat系统运行状态

ps pstree进程列表信息

numastatNUMA架构内存使用情况对比

sar实时收集系统使用状态

free内存使用率

pmap进程内存占用率

strace追踪程序运行状态

ulimit系统资源使用限制

mpstat多处理器使用率

dmesg硬件/系统信息

KDE System Guard图形监控工具

traffic-vis网络监控(只有SUSE有)

※注:下面附图的命令输出信息,以红旗DC Server 5.0 for x86 Sp1,Suse为基础平台,可能在不同的操作系统或核心版本有较大区别,对比时请留意。一、uptimeUptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百分比,而是在队列中等待执行的进程的数量。如果进程要求CPU时间被阻塞(意味着CPU没有时间处理它),load average值将增加。另一方面,如果每个进程都可以立刻得到访问CPU的时间,这个值将减少。UP kernel下的load average的最佳值是1,这说明每个进程都可以立刻被CPU处理,当然,更低不会有问题,只说明浪费了一部分的资源。但在不同的系统间这个值也是不同的,例如一个单CPU的工作站,load average为1或者2都是可以接受的,而在一个多CPU的系统中这个值应除以物理CPU的个数,假设CPU个数为4,而load average为8或者10,那结果也是在2多点而已。

9:24am  up  19:06,  1 user,  load average: 0.12, 0.13, 0.05你可以使用uptime判断一个性能问题是出现在服务器上还是网络上。例如,如果一个网络应用运行性能不理想,运行uptime检查系统负载是否比较高,如果不是这个问题更可能出现在你的网络上。

也可以查看/proc/loadavg和/proc/uptime两个文件,注意不能编辑/proc中的文件,要用cat等命令来查看,如:liyawei:~ # cat /proc/loadavg

0.00 0.00 0.00 1/55 5505二、topTop命令显示了实际CPU使用情况,默认情况下,它显示了服务器上占用CPU的任务信息并且每5秒钟刷新一次。你可以通过多种方式分类它们,包括PID、时间和内存使用情况。

显示处理器的活动状况。缺省情况下,显示占用CPU最多的任务,并且每隔5秒钟做一次刷新。Process priority的数值决定了CPU处理进程的顺序。LIUNX内核会根据需要调整该数值的大小。nice value局限于priority。priority的值不能低于nice value(nice value值越低,优先级越高)。您不可以直接修改Process priority的值,但是可以通过调整nice level值来间接地改变Process priority值,然而这一方法并不是所有时候都可用。如果某个进程运行异常的慢,可以通过降低nice level为该进程分配更多的CPU。Linux支持的nice levels由19 (优先级低)到-20 (优先级高),缺省值为0。执行/bin/ps命令可以查看到当前进程的情况。

top - 18:31:08 up 174 days,  1:43,  1 user,  load average: 0.24, 0.19, 0.11

Tasks:463total,1running,357sleeping,105stopped,0zombie

Cpu(s):2.2%us,0.9%sy,0.0%ni,96.9%id,0.0%wa,0.0%hi,0.0%si

Mem:16631900ktotal,15881988kused,749912kfree,403764kbuffers

Swap:8385888ktotal,85272kused,8300616kfree,3720388kcached

PID USER      PR  NI  VIRT  SHR S %MEM    TIME+   RES %CPU COMMAND

406 chartis_  16   0  4560  556 T  0.0   0:00.00  636  0.0 iostat

1582 chartis_  16   0  4852  516 T  0.0   0:00.00  788  0.0 man

1585 chartis_  16   0  5400  800 T  0.0   0:00.00  920  0.0 sh

1586 chartis_  16   0  5400  304 T  0.0   0:00.00  424  0.0 sh

1591 chartis_  16   0  3532  520 T  0.0   0:00.00  652  0.0 less

2726 chartis_  16   0 10044 1944 T  0.0   0:00.01 3008  0.0 vim

2888 chartis_  16   0  4668  488 T  0.0   0:00.00  568  0.0 more

3293 chartis_  16   0  5324  516 T  0.0   0:00.00  788  0.0 man

3296 chartis_  16   0  5524  800 T  0.0   0:00.00  920  0.0 sh

3297 chartis_  16   0  5524  304 T  0.0   0:00.00  424  0.0 sh

3301 chartis_  16   0  5400  896 T  0.0   0:00.00 1024  0.0 nroff

3302 chartis_  16   0  3604  520 T  0.0   0:00.00  648  0.0 less

3310 chartis_  16   0  5540  440 T  0.0   0:00.00  564  0.0 iconv

4301 chartis_  16   0  4380  516 T  0.0   0:00.00  788  0.0 man

4304 chartis_  16   0  5592  800 T  0.0   0:00.00  916  0.0 sh

4305 chartis_  16   0  5592  304 T  0.0   0:00.00  420  0.0 sh

4310 chartis_  16   0  3212  520 T  0.0   0:00.00  652  0.0 less

8194 chartis_  16   0  2704  752 T  0.0   0:00.06 1132  0.0 top

9744 chartis_  16   0  3744  752 T  0.0   0:06.69 1144  0.0 top

下面是输出值的介绍:

引用

PID:进程标识USER;进程所有者的用户名PRI:进程的优先级NI:nice级别SIZE:进程占用的内存数量(代码+数据+堆栈)RSS;进程使用的物理内存数量SHARE;该进程和其他进程共享内存的数量STAT:进程的状态:S=休眠状态,R=运行状态,T=停止状态,D=中断休眠状态,Z=僵尸状态%CPU:共享的CPU使用%MEM;共享的物理内存TIME:进程占用CPU的时间COMMAND:启动任务的命令行(包括参数)

进程的优先级和nice级别进程优先级是一个决定进程被CPU执行优先顺序的参数,内核会根据需要调整这个值。Nice值是一个对优先权的限制。进程优先级的值不能低于nice值。(nice值越低优先级越高)进程优先级是无法去手动改变的,只有通过改变nice值去间接的调整进程优先级。如果一个进程运行的太慢了,你可以通过指定一个较低的nice值去为它分配更多的CPU资源。当然,这意味着其他的一些进程将被分配更少的CPU资源,运行更慢一些。Linux支持nice值的范围是19(低优先级)到-20(高优先级),默认的值是0。如果需要改变一个进程的nice值为负数(高优先级),必须使用su命令登陆到root用户。下面是一些调整nice值的命令示例,以nice值-5开始程序xyz

#nice –n -5 xyz

改变已经运行的程序的nice值

#renice level pid

将pid为2500的进程的nice值改为10

#renice 10 2500

僵尸进程当一个进程被结束,在它结束之前通常需要用一些时间去完成所有的任务(比如关闭打开的文件),在一个很短的时间里,这个进程的状态为僵尸状态。在进程完成所有关闭任务之后,会向父进程提交它关闭的信息。有些情况下,一个僵尸进程不能关闭它自己,这时这个进程状态就为z(zombie)。不能使用kill命令杀死僵尸进程,因为它已经标志为“dead”。如果你无法摆脱一个僵尸进程,你可以杀死它的父进程,这个僵尸进程也就消失了。然而,如果父进程是init进程,你不能杀死init进程,因为init是一个重要的系统进程,这种情况下你只能通过一次重新启动服务器来摆脱僵尸进程。也必须分析应用为什么会导致僵死?三、iostatiostat是sysstat包的一部分。Iostat显示自系统启动后的平均CPU时间(与uptime类似),它也可以显示磁盘子系统的使用情况,iostat可以用来监测CPU利用率和磁盘利用率。avg-cpu:  %user   %nice %system %iowait  %steal   %idle

0.16    0.01    0.03    0.10    0.00   99.71

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda               0.31         4.65         4.12     327796     290832

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

1.00    0.00    0.00    0.00    0.00  100.00

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda               0.00         0.00         0.00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

0.00    0.00    0.00    0.00    0.00   99.01

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda               0.00         0.00         0.00          0          0CPU利用率分四个部分:

引用

%user:user level(应用)的CPU占用率情况%nice:加入nice优先级的user level的CPU占用率情况%sys:system level(内核)的CPU占用情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值