cpu
top
top -b -n 1 | awk 'NR==3'
%Cpu(s): 3.0 us, 0.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
# us 用户空间占用CPU百分比
# sy 内核空间占用CPU百分比
# ni 用户进程空间内改变过优先级的进程占用CPU百分比
# id 空闲CPU百分比,例如:77.1%id
# wa 等待输入输出的CPU时间百分比
# hi CPU服务于硬件中断所耗费的时间总额
# si CPU服务软中断所耗费的时间总额
# st Steal time 虚拟机被hypervisor偷去的CPU时间(如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
htop
# 系统默认没有安装该命令,需要先安装
yum -y install htop
vmstat
类别 | 参数 | 含义 | 说明 | |
---|---|---|---|---|
procs进程 | r | 等待执行的任务数 | 展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。 | |
b | 等待IO的进程数量 | |||
memory内存 | swpd | 正在使用虚拟的内存大小,单位k | ||
free | 空闲内存大小 | |||
buff | 已用的buff大小,对块设备的读写进行缓冲 | |||
cache | 已用的cache大小,文件系统的cache | |||
inact | 非活跃内存大小,即被标明可回收的内存,区别于free和active | 当使用-a选项时显示 | ||
active | 活跃的内存大小 | 当使用-a选项时显示 | ||
swap | si | 每秒从交换区写入内存的大小(单位:kb/s) | ||
so | 每秒从内存写到交换区的大小 | |||
io | bi | 每秒读取的块数(读磁盘) | 块设备每秒接收的块数量,单位是block,这里的块设备是指系统上所有的磁盘和其他块设备,现在的Linux版本块的大小为1024bytes | |
bo | 每秒写入的块数(写磁盘) | 块设备每秒发送的块数量,单位是block | ||
system | in | 每秒中断数,包括时钟中断 | 这两个值越大,会看到由内核消耗的cpu时间sy会越多 | |
cs | 每秒上下文切换数 | 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目 | ||
cpu | us | 用户进程执行消耗cpu时间(user time) | us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了 | |
sy | 系统进程消耗cpu时间(system time) | sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足 | ||
ld | 空闲时间(包括IO等待时间) | 一般来说 us+sy+id=100 | ||
wa | 等待IO时间 | wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。 |
内存
free
free -h| awk 'NR==2{print "内存大小:"$2"\t已经使用:"$3"\t剩余内存大小:"$4}'
top
vmstat
见上文
硬盘
df
iotop
yum -y install iotop
参数 | 描述 |
---|---|
-o | 只显示正在产生I/O的进程或线程,运行过程中,可以通过按o随时切换 |
-b | 非交互式下运行,一般用来记录日志 |
-n | 设置监控(显示)次数,主要用于非交互式,默认无限 |
-d | 设置显示的间隔秒数,支持非整数 |
-p | 只显示指定进程(PID)的信息 |
-u | 显示指定用户的进程信息 |
-P | 只显示进程,不显示所有线程 |
-a | 累积的I/O,显示从iotop启动后每个进程累积的I/O总数,便于诊断问题 |
-k | 显示使用KB单位 |
-t | 非交互模式下,加上时间戳 |
-q | 只在第一次监测时显示列名. 去除头部一些行:这个参数可以设置最多3次来移除头部行:-q列头部只在最初交互显示一次;-qq列头部不显示;-qqq,I/O的总结不显示 |
vmstat
见上文
网络流量
iftop
yum -y install iftop
点击查看该命令的具体用法
用法示例
iftop -i eth0 -nNB -m 10M
#-i 指定网卡
#-n 代表主机通过ip显示不走DNS
#-N 只显示连接端口号,不显示端口对应的服务名称(不加会显示如ssh这样的服务名称,不便于排查)
#-B 指定显示单位为Kb,默认是bit,太小!
#-m 设置输出界面中最上面的流量刻度最大值,流量刻度分5个大段显示
iptraf
yum -y install iptraf
iptraf-ng -d eth0
网络连接
netstat与ss
一般用法: ss -ntulp | grep xxx
进程
ps
top
一般用法:ps -ef: 显示系统中所有进程的列表,包括其他用户的进程
ps -aux: 显示详细的进程信息,包括CPU和内存使用情况等
ps -ef | grep <进程名>:查找指定进程名的进程。
ps -ef | grep -v grep | grep <用户>:查找指定用户的进程。
ps -ef --forest:以树形结构显示进程和它们的父进程。
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head:按内存使用率排序显示前几个进程的信息。
评论