博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux常用命令详解(五)_性能检测
阅读量:4071 次
发布时间:2019-05-25

本文共 3744 字,大约阅读时间需要 12 分钟。

top命令

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命令可以显示当前系统已经使用和未使用的内存数据,包括物理内存、交换区内存和内核缓冲区内存。

格式:

free [option]

选项:

-b:以Byte为单位显示内存使用情况-k:以KB为单位显示内存使用情况-m:以MB为单位显示内存使用情况-o:不显示缓冲区调节列-s
<间隔秒数>
:持续观察内存使用状况-t:显示内存总和列-v:显示版本信息。

常用命令:

$ free -g $ free -m

vmstat命令

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(进程)

  • r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
  • b: 等待IO的进程数量。

Memory(内存)

  • swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
  • free: 空闲物理内存大小。
  • buff: 用作缓冲的内存大小。
  • cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

Swap

  • si: 每秒从交换区写到内存的大小,由磁盘调入内存。
  • so: 每秒写入交换区的内存大小,由内存调入磁盘。

注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)

  • bi: 每秒读取的块数
  • bo: 每秒写入的块数

注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统)

  • in: 每秒中断数,包括时钟中断。
  • cs: 每秒上下文切换数。

注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)

  • us: 用户进程执行时间百分比(user time)

    us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。

  • sy: 内核系统进程执行时间百分比(system time)

    sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

  • wa: IO等待时间百分比

    wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

  • id: 空闲时间百分比

iostat命令

iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

格式:

iostat [option] [para]

选项:

-c:仅显示CPU使用情况-d:仅显示设备利用率-k:显示状态以千字节每秒为单位,而不使用块每秒-m:显示状态以兆字节每秒为单位-p:仅显示块设备和所有被使用的其他分区的状态-t:显示每个报告产生时的时间-V:显示版号并退出-x:显示扩展状态。

参数:

  • 间隔时间:每次报告的时间间隔(秒)
  • 次数:显示报告次数

history命令

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

格式:

history [option] [para]

选项:

-c:清除当前历史命令-a:将历史命令缓冲区中命令写入历史命令文件中-r:将历史命令文件中的命令写入当前历史命令缓冲区-w:将当前历史命令缓冲区中的命令写入历史文件中

参数:

  • n:打印最近的n条历史命令。

env命令

env命令用来显示系统中已存在的环境变量,并进行相应的操作。

格式:

env [option] [para]

选项:

-i:开始一个新的空环境-u
<变量名>
:从当前环境中删除指定的变量

参数:

  • 变量定义:定义在新的环境中变量,定义多个变量定义用空格隔开。格式为“变量名=值”
  • 指定:指定要执行的指令和参数

lsof命令

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/

你可能感兴趣的文章
IBM Lotus
查看>>
Linux +Win LAMPP Tools XAMPP 1.7.3 / 5.6.3
查看>>
my read_university
查看>>
network manager
查看>>
OS + Linux Disk disk lvm / disk partition / disk mount / disk io
查看>>
RedHat + OS CPU、MEM、DISK
查看>>
net TCP/IP / TIME_WAIT / tcpip / iperf / cain
查看>>
webServer kzserver/1.0.0
查看>>
hd printer lexmark / dazifuyin / dayin / fuyin
查看>>
OS + Unix IBM Aix basic / topas / nmon / filemon / vmstat / iostat / sysstat/sar
查看>>
my ReadMap subway / metro / map / ditie / gaotie / traffic / jiaotong
查看>>
OS + Linux DNS Server Bind
查看>>
linux下安装django
查看>>
Android 解决TextView设置文本和富文本SpannableString自动换行留空白问题
查看>>
最完整的Java IO流学习总结
查看>>
Android开发中Button按钮绑定监听器的方式完全解析
查看>>
解决ScrollView嵌套ListView后,进入页面不从顶部开始
查看>>
Android自定义View实现商品评价星星评分控件
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
postgresql查看表的和索引的情况,判断是否膨胀
查看>>