1.uptime
2.dmesg | tail
‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信息。当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中。在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备。
'dmesg'命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息。‘dmesg’命令在多数基于Linux和Unix的操作系统中都可以使用。
要显示所有被内核检测到的硬盘设备,你可以使用‘grep’命令搜索‘sda’关键词
‘sda’表示第一块 SATA硬盘,‘sdb’表示第二块SATA硬盘。若想查看IDE硬盘搜索‘hda’或‘hdb’关键词。
dmesg | head -20 dmesg | tail -20一般情况下,如果用户时间和系统时间相加非常大,CPU出于忙于执行指令。如果IO等待时间很长,那么系统的瓶颈可能在磁盘IO。dmesg -c 清空日志。/var/log/dmesg 3.vmstat [root@MAN-iaas ~]# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 5 0 58296 20694108 383524 63481220 0 0 0 30 0 0 18 4 77 1 0 r:等待cpu资源的进程数。这个数据比平均负载更能体现cpu的负载情况,数据中不包含等待IO的进程。如果这个数值大于机器CPU核数,那么机器的cpu核数已经饱和。 free: si,so:交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区(swap),机器内存已经不足。 us,sy,id,wa,st:这些都代表了CPU时间的消耗,它们分别表示用户时间(user)系统(内核)时间(sys)空闲时间(idle)IO等待时间(wait)和被偷走的时间(stone,一般被其他虚拟机消耗)
上面示例中大量CPU时间消耗在用户态,也就是用户应用程序消耗了CPU时间。这不一定是性能问题,需要结合r队列,一起分析。
4.mpstat
查看多核CPU核心的当前运行状况信息, 每2秒更新一次
%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100
%sys 在internal时间段里,内核时间(%) (system/total)*100
%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%irq 在internal时间段里,硬中断时间(%) (irq/total)*100
%soft 在internal时间段里,软中断时间(%) (softirq/total)*100
%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
5.pidstat
6.iostat
[root@MAN-iaas ~]# iostat -d -k 2
Linux 2.6.32-431.el6.x86_64 (MAN-iaas.PUB01.SF.Beijing) 12/28/2016 _x86_64_ (24 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 51.95 5.21 721.70 278155717 38537615445
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 82.00 0.00 1172.00 0 2344
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。 kB_read/s:每秒从设备(drive expressed)读取的数据量; kB_wrtn/s:每秒向设备(drive expressed)写入的数据量; kB_read:读取的总数据量; kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。7.free
8.sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
9.top
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看