当前位置: > 运维管理 > 运维技术 >

用十条命令在一分钟内检查Linux服务器性能

时间:2016-09-18 00:05来源:blog.csdn.net 作者:caopeng26的专栏 举报 点击:

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?Netflix性能工程团队的Brendan Gregg写下了这篇博文,来看他们是怎样通过十条命令在一分钟内对机器性能问题进行诊断。 
概述

通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。 
uptime 
dmesg | tail 
vmstat 1 
mpstat -P ALL 1 
pidstat 1 
iostat -xz 1 
free -m 
sar -n DEV 1 
sar -n TCP,ETCP 1 
top

下面我们来逐一介绍下这些命令,有关这些命令更多的参数和说明,请参照命令的手册。 
(1) uptime 
$ uptime 
23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02 
这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。 
命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。通过这三个数据,可以了解服务器负载是在趋于紧张还是区域缓解。如果1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去。

上面例子中的输出,可以看见最近1分钟的平均负载非常高,且远高于最近15分钟负载,因此我们需要继续排查当前系统中有什么进程消耗了大量的资源。可以通过下文将会介绍的vmstat、mpstat等命令进一步排查。

(2) dmesg | tail 
dmesg|tail[1880957.563150]perlinvokedoomkiller:gfpmask=0x280da,ord