1、uptime
在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。
2、dmesg|tail
命令会输出系统日志的最后10行,这些日志都可以排查性能问题。
3、vmstat 1
输出的日志中
r:等待在CPU资源的进程数。这个数据比平均负载更加能够体现CPU负载情况,数据中不包含等待IO的进程。id,wa,
free:系统可用内存数(以千字节为单位),如果剩余内存不足,也会导致系统性能问题。
si,so:交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区(swap),机器物理内存已经不足。
us,sy,id,wa,st:这些都代表了CPU时间的消耗,它们分别表示用户时间,系统时间,空闲时间、IO等待时间和被偷走的时间。
4、mpstat -P ALL 1
该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。
5、pidstat 1
pidstat命令输出进程的CPU占用率,该命令会持续输出,并不会覆盖之前的数据,可方便观察系统动态。
6、iostat -xz 1
iostat命令主要用于看机器磁盘IO情况。该命令输出的列,主要含义:
r/s,w/s.rkB/s,wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者是故障。
7、free -m
此命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数,和用于文件系统页缓存的内存数。
8、sar -n DEV 1
sar命令在这里可以查看网络设备的吞吐量。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。
9、sar -n TCP,ETCP 1
sar命令在这里用于查看TCP连接状态,其中包括:
active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接.
passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接。
retrans/s:每秒TCP重传数量。
10、top
该命令包含了前面好几个命令的检查命令(现场我也喜欢用这个命令查看内存是否占用满了) 比如 系统的负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。