Linux常用命令之性能命令
本文介绍linux常用性能统计分析命令,监控进程或者系统性能。主要包括cpu(top、mpstat)、内存(vmstat、free)、i/o(iostat)、网络性能(sar)、系统日志信息(demsg)、查看进程状态(pidstat)。下面简要介绍这些命令的使用方法。
mpstat、iostat、pidstat和sr命令需要安装sysstat软件包,sysstat包含了系统性能监测工具,安装方法如下:
负载
cpu负载(cpu load)指的是某个时间点进程对系统产生的压力。表示特定时间间隔内运行队列中的平均进程数,如果一个进程满足以下条件则其就会位于运行队列中:
- 它没有在等待io操作的结果
- 它没有主动进入等待状态(也就是没有调用'wait')
- 没有被停止(例如:等待终止)
单cpu满负荷运行时cpu_load为1,当多个cpu或多核时,相当于大桥有多个车道,满负荷运行时cpu_load值为cpu数或多核数;cpu负载的计算(以单cpu为例),假设一分钟内执行10个任务代表满负荷,当一分钟给出30个任务时,cpu只能处理10个,剩余20个不能处理,cpu_load=3;
单核cpu
- cpu load = 1,满负载运行
- cpu load = 0.5,半负载运行
- cpu load = 1.7,超负载运行
一般来说,每个cpu内核当前活动进程数不大于3,则系统运行表现良好!
如果多核cpu,需要累加4核cpu<12
uptime
uptime命令显示的平均负载包括了正在或准备运行在cpu上的进程和阻塞在不可中断睡眠状态(uninterruptible) i/o(通常是磁盘i/o)上的进程。
- 显示最近1分钟、5分钟、15分钟系统负载的移动平均值,它们共同展现了负载随时间变动的情况。
- 3:正在运行的进程数,166:总的进程数,16903:最近运行进程的id。
ps和top命令
ps命令
ps命令是processstatus的缩写,用于查看系统进程信息
- -e,-a:显示所有进程,包括其他用户的进程
- -f:显示完整格式
- -l:显示长列表
- -a:所有进程,加上-x参数会显示没有控制终端的进程
- -u:username,显示指定用户的进程,例如ps -u root
- -x:显示当前用户在所有终端下的进程
- -aux:显示所有进程,包括所有用户,分组情况
ps常用用法,通常与grep组合使用
1.显示dhcpd进程ps ax | grep dhcpd | grep -v grep
2.ps-ef
查看全格式的全部进程
3.ps-aux
显示所有进程
按照cpu或者内存用量来筛选进程:
终止进程
top命令
ps命令列出的是当前进程的快照,top可用于持续监视系统性能,
动态显示进程信息。
- -n 获取多次cpu的执行情况,top -n 4:只更新4次
- -d 间隔时间,top -d 4:每隔4秒更新一次
- -p 获取指定端口进程的数据,top -p 22
每隔1秒检测指定进程的cpu,检测20次
示例
打印指定pid进程的cpu信息,间隔时间为1s,打印20次
查看进程的pid:
循环打印
dmesg | tail
默认显示最新的10个系统信息,可以查看导致性能问题的错误信息。
1. 显示最新的20个系统信息
2. 显示开始的20个系统信息
vmstat 1
全称 virtual memory stat,逐行输出虚拟内存状态统计信息
vmstat 1
:每隔一秒打印一次
参数解释:
- r: 运行队列中进程数量
- b: 等待io的进程数量
- swpd:使用的虚拟内存
- free:可用内存
- buff:用作缓冲的内存大小
- cache:用作缓存的内存大小
- us:用户进程执行时间(user time)
- sy:系统进程执行时间(system time
- id:空闲时间(包括io等待时间),*处理器的空闲时间
- wa:等待io时间
free -m
查看linux内存使用情况
- mem:物理内存
- totel:总的物理内存 单位为:m
- used:用掉的内存
- free:空闲的物理内存
- shared:共享内存
- buff/cache:缓存内存
mpstat -p all 1
mpstat是multiprocessor statistics的缩写,实时监控cpu性能。mpstat -p all 1 2
:间隔1s打印报告,共打印2个
- -p all:监控所有cpu
- 1:间隔时间1s
- 2:打印次数2次
- %usr:间隔时间段内,用户态的cpu时间(%),不包含 nice值为负进程
- %nice:nice值为负进程的cpu时间(%)
- %sys:核心时间(%)
- %iowait:硬盘io等待时间(%)
- %irq:硬中断时间(%)
- %soft:软中断时间(%)
- %steal:虚拟机管理器在服务另一个虚拟处理器时虚拟cpu处在非自愿等待下花费时间的百分比
- %guest:运行虚拟处理器时cpu花费时间的百分比
- %idle:cpu的空闲时间(%)
pidstat 1
pidstat用于监控全部或指定进程的资源占用情况,和top命令类似,但不覆盖输出,有利于观察数据随时间的变动情况,top会覆盖之前的输出
pidstat -p 1 1
:-p 指定进程号,间隔1s打印pid为1的进程
- pid:进程id
- %usr:进程在用户空间占用cpu的百分比
- %system:进程在内核空间占用cpu的百分比
- %guest:进程在虚拟机占用cpu的百分比
- %cpu:进程占用cpu的百分比,各个cpu上的使用量的总和
- cpu:处理进程的cpu编号
- command:当前进程对应的命令
iostat 1
iostat用于显示cpu和块设备(磁盘i/o)相关的统计信息
avg-cpu:总体cpu使用情况统计信息
linux各种设备文件在/dev目录下可以看到
- tps:每秒进程向磁盘设备下发的io读、写请求数量
- kb_read/s:每秒从驱动器读入的数据量
- kb_wrtn/s:每秒从驱动器写入的数据量
- kb read:读入数据总量
- kb wrtn:写入数据总量
sar命令
sar(system activityreporter):系统活动情况报告,
是linux系统性能分析工具。可以用来分析磁盘i/o、cpu效率、内存使用等,下面介绍它的分析网络性能用法。
sar -n dev 1
检查网络流量的工作负载,可用来检查网络流量是否已经达到限额。
sar -n tcp 1
显示tcp连接情况,可用来描述系统负载
- active/s:主动连接数,本地每秒创建的tcp连接数
- passive/s:被动连接数,远程每秒创建的tcp连接数
- retrans/s:每秒tcp重传次数
到此这篇关于linux常用命令之性能命令的文章就介绍到这了,更多相关linux常用命令内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 孙权打仗都是屡战屡败 孙权输的有多惨
下一篇: Shell退出状态的使用