top,vmstat,mpstat,pidstat,dstat,nmon,sar
top :
-c :Command-line/Program-name toggle
Starts top with the last remembered `c' state reversed. Thus, if top was displaying command lines, now that field will show program
names, and visa versa.
#从最上面开始,最后记住的“c”状态颠倒过来。
#因此,如果top显示命令行,那么现在该字段将显示程序名,反之亦然。
top -c 显示命令执行的目录,相对清晰
-H :Threads-mode operation
Instructs top to display individual threads. Without this command-line option a summation of all threads in each process is shown.
#显示进程内的每个线程
-p :Monitor-PIDs mode as: -pN1 -pN2 ... or -pN1,N2,N3 ...
Monitor only processes with specified process IDs. This option can be given up to 20 times, or you can provide a comma delimited list
#监视指定进程
top -Hp 显示进程内的每个线程
vmstat:Virtual Memory Statistics
vmstat命令经常用来查看进程,内存,IO和全部CPU整体的情况,但是默认是以kb的形式显示的.
建议使用-Sm或者-SM(m按照1000计算,M按照1024计算),如果参数记不住可直接在默认去掉数值的后面3位就可以转换成M/s
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 613100 2108 202000 0 0 6 1 49 88 0 0 100 0 0
0 0 0 613100 2108 202000 0 0 0 0 56 88 1 0 99 0 0
0 0 0 613100 2108 202000 0 0 0 0 54 94 0 0 100 0 0
0 0 0 613100 2108 202000 0 0 0 0 52 79 0 0 100 0 0
0 0 0 613100 2108 202000 0 0 0 0 49 81 0 1 99 0 0
r/b: r表示正在运行的进程,b表示有阻塞io的进程,这个值高,需要排查磁盘性能和读写速度
memory:显示了内存的使用情况,建议使用free -m/g进行查看内存。
swap:si表示由硬盘进入内存,so表示由内存到磁盘。在内存充足的情况下,这两个值是0,如果存在使用的情况,需要对内存进行评估
io:bi(Blocks received from a block device (blocks/s).),bo(Blocks sent to a block device (blocks/s).)
system:每单位时间的终端数和上下文切换数
cpu:系统使用,内核使用,剩余,等待和虚机CPU超分情况。重点查看us,sy和st。如果st值不是0,集群中某台虚机存在使用cpu资源较多,或者使用的cpu超过实际cpu总量。
mpstat:
Report processors related statistics.报告处理器相关的统计信息。可以查看到具体cpu的使用情况(执行top按1也可以)
mpstat 2 5
每隔两秒在所有处理器中显示五个全局统计数据报告。
mpstat -P ALL 2 3
以两秒间隔显示所有处理器的三个统计报告。
[root@sun ~]# mpstat -P ALL 1 3
Linux 3.10.0-1160.el7.x86_64 (sun) 03/29/2021 _x86_64_ (1 CPU)
05:10:15 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:10:16 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
05:10:16 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
05:10:16 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:10:17 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
05:10:17 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
05:10:17 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
05:10:18 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
05:10:18 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
iowait,显示在系统有未完成的磁盘I/O请求期间,CPU空闲的时间百分比
idle可查看系统剩余cpu情况。
pidstat:
pidstat -u 1 每隔1秒查看cpu
pidstat -r 1 每隔一秒查看内存
pidstat -d 1 每隔一秒查看磁盘
-p 指定pid ; -C 显示仅用命令名称中包含字符串(比如ssh)的任务,该字符串可以是正则表达式(比如"ssh|nginx")。
示例:
pidstat -r -p 1643 2 5 以两秒为间隔显示5个关于PID 1643的页面故障和内存统计数据的报告。
pidstat -C "fox|bird" -r -p ALL 显示命令名包含字符串“fox”或“bird”的所有进程的全局页面错误和内存统计信息
dstat
nmon
sar
1, top oder by with P: 1040 / / first according to the process load sorting find maxLoad (pid)
2, top - Hp process pid: 1073 / / thread find relevant load pid.
3, printf "0 x % x" thread pid: 0 x431 / / thread pid converted to hexadecimal, prepare the way for later find jstack log
4, jstack process pid | vim + / hex threads pid / / such as:jstack 1040|vim +/0x431