本文共 3744 字,大约阅读时间需要 12 分钟。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
格式:
top [option]
选项:
-b:以批处理模式操作-c:显示完整的治命令-d:屏幕刷新间隔时间-I:忽略失效过程-s:保密模式-S:累积模式-i <时间> :设置间隔时间-u <用户名> :指定用户名-p <进程号> :指定进程-n <次数> :循环显示的次数。 次数> 进程号> 用户名> 时间>
top交互命令:
h 显示帮助画面,给出一些简短的命令总结说明k 终止一个进程。i 忽略闲置和僵死进程。这是一个开关式命令。q 退出程序r 重新安排一个进程的优先级别S 切换到累计模式s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 sf或者F 从当前显示中添加或者删除项目o或者O 改变显示项目的顺序l 切换显示平均负载和启动时间信息m 切换显示内存信息t 切换显示进程和CPU状态信息c 切换显示命令名称和完整命令行M 根据驻留内存大小进行排序P 根据CPU使用百分比大小进行排序T 根据时间/累计时间进行排序W 将当前设置写入~/.toprc文件中
free命令可以显示当前系统已经使用和未使用的内存数据,包括物理内存、交换区内存和内核缓冲区内存。
格式:
free [option]
选项:
-b:以Byte为单位显示内存使用情况-k:以KB为单位显示内存使用情况-m:以MB为单位显示内存使用情况-o:不显示缓冲区调节列-s <间隔秒数> :持续观察内存使用状况-t:显示内存总和列-v:显示版本信息。 间隔秒数>
常用命令:
$ free -g $ free -m
vmstat(Virtual Memory Statistics,虚拟内存统计)命令,可对操作系统的虚拟内存、进程、CPU活动进行监测。
格式:
vmstat [option] [para]
选项:
-a:显示活动内页-f:显示启动后创建的进程总数-m:显示slab信息-n:头信息仅显示一次-s:以表格方式显示事件计数器和内存状态-d:报告磁盘状态-p:显示指定的硬盘分区状态-S:输出信息的单位。
参数:
应用实例:
[shmilychan@localhost ~]$ vmstat 5procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 468608 14560 705972 0 0 1 0 29 45 0 0 100 0 0 1 0 0 468540 14560 706004 0 0 0 0 269 312 2 1 97 0 0 0 0 0 468588 14560 706004 0 0 0 0 395 406 3 2 95 0
字段说明:
Procs(进程)
Memory(内存)
Swap
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO(现在的Linux版本块的大小为1kb)
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。id: 空闲时间百分比
iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
格式:
iostat [option] [para]
选项:
-c:仅显示CPU使用情况-d:仅显示设备利用率-k:显示状态以千字节每秒为单位,而不使用块每秒-m:显示状态以兆字节每秒为单位-p:仅显示块设备和所有被使用的其他分区的状态-t:显示每个报告产生时的时间-V:显示版号并退出-x:显示扩展状态。
参数:
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
格式:
history [option] [para]
选项:
-c:清除当前历史命令-a:将历史命令缓冲区中命令写入历史命令文件中-r:将历史命令文件中的命令写入当前历史命令缓冲区-w:将当前历史命令缓冲区中的命令写入历史文件中
参数:
env命令用来显示系统中已存在的环境变量,并进行相应的操作。
格式:
env [option] [para]
选项:
-i:开始一个新的空环境-u <变量名> :从当前环境中删除指定的变量 变量名>
参数:
lsof(List Open Files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
格式:
lsof [option] [para]
选项:
-a:列出打开文件存在的进程-c <进程名> :列出指定进程所打开的文件-g:列出GID号进程详情d <文件号> :列出占用该文件号的进程+d <目录> :列出目录下被打开的文件+D <目录> :递归列出目录下被打开的文件-n <目录> :列出使用NFS的文件-i <条件> :列出符合条件的进程。(4、6、协议、:端口、 @ip ) -p <进程号> :列出指定进程号所打开的文件-u:列出UID号进程详情-h:显示帮助信息-v:显示版本信息 进程号> 条件> 目录> 目录> 目录> 文件号> 进程名>
转载地址:http://gbrji.baihongyu.com/