使用w查看系统负载
[[email protected] ~]# w
linux管理员常用的命令w,该命令显示的信息很丰富,第一行从左至右显示的信息一次为:时间、系统运行时间、登录用户数、平均负载,这些数据里最应该关注当为load average后的3个数值。
第一个数值表示1分钟内系统的平均负载值,第二个数值表示为5分钟内系统的平均负载值,第三个表示15分钟内系统的平均负载值。这里着重看第一个值,它表示单位时间段内使用CPU的活动进程数,值越大就说明服务器压力越大,一般情况下只要这个值不超过服务器的CPU数量就没有关系。如果服务器CPU数量为8,那么值小于8就说明当前服务器没有压力,否则就要关注一下。可以通过以下方式查看服务器有几个CPU;
[[email protected] ~]# cat /proc/cpuinfo
vmstat命令
使用vmstat命令监控系统的状态
[[email protected] ~]# vmstat
w命令可以通过数值查看当前系统有没有压力,但无法判断具体是哪里有压力,这是就可以通过vmstat命令答应结果来查看,显示的结果共分为六部分:procs、memory、swap、io、system、cpu。这里我们重点如下信息;
procs显示进程的相关信息。
r(run):表示运行或等待cpu时间片的进程数。不要误认为等待cpu时间片意味着这个进程没有运行,实际上某一刻1个cpu只能有一个进程占用,其他进程只能派对等着,此事这些派对等待cpu资源的进程依然是运行状态。该数值如果长期大雨服务器cpu的个数,则说明cpu资源不够用了。
b(block):表示等待资源的进程数,这个资源指的是I/O、内存等。该数值大于1,则需要关注一下了。
memory显示内存相关的信息。
swpd:表示切换到交换分区中的内存数量,单位为KB
free:表示当前空闲的内存数量,单位为KB
buff:表示(即将写入磁盘的)缓冲大小,单位为KB
cache:表示(从磁盘中读取的)缓存大小,单位为KB
swap显示内存的交换情况
si:表示由交换区写入内存的数据量,单位为KB
so:表示由内存写入交换区的数据量,单位为KB
io显示磁盘的使用情况
bi:表示从块设备读取数据的量(读磁盘),单位为KB
bo:表示从块设备写入数据的量(写磁盘),单位为KB
system显示采集间隔内发生的中断次数。
in:表示在某一时间间隔内观测到的每秒设备的中断次数
cs:表示每秒产生的上下文切换次数
cpu显示CPU的使用状态
us:显示用户下所花费cpu的时间百分比
sy:显示系统花费cpu的时间百分比
id:表示cpu处于空闲状态的时间百分比
wa:表示I/O等待所有占用cpu的时间百分比
st:表示被偷走的cpu所占百分比(一般都为0,不用关注
以上经常需要关注的r、b和wa这三列。io部分的bi和bo也是要经常参考的对象,如果磁盘io压力很大,这两列的数值会比较高。另外,当si和so两列的数值比较高并且不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
使用vmstat查看系统状态是,常用都是如下形式
[[email protected] ~]# vmstat 1
或者
[[email protected] ~]# vmstat 1 5
第一条命令表示每隔一秒输出一次状态且一直输出,除非按ctrl+C键结束,后面一条命令表示每隔一秒输出一次状态,共输出5次
top命令
用top命令显示进程所占的系统资源
[[email protected] ~]# top
top命令用于动态监控进程所占的系统资源,每隔3秒变一次。它的特点是把占用系统资源最高的进程放到最前面,用top重点查看的以下进程使用系统资源的详细状况,需要注意的有%CPU、%MEM和COMMAND这几项所代表的意义,RES这一项为进程所占的内存大小,而%MEM这一项为使用内存的百分比,在top状态下,按Shift+m键可以按照内存使用大小排序。按数字1可以列出所有核CPU的使用状态,按q键可以退出top。
top -bn1命令一次性输出所有信息而非动态显示。
sar命令
sar命令很强大,它可以监控系统几乎所有资源的状态,如果系统还不能执行这条命令,则需要先安装这条命令
[[email protected] ~]# yum install -y sysstat
与其它系统状态监控工具不同,它可以打印历史信息,可以显示当天从零点开始到当前时间的系统状态信息。首次使用sar命令会报错,那是应为sar工具还没有生成相应的数据库文件,它的数据库文件在/var/log/sa/目录下。常用的有两个方面
查看网卡流量 sar -n DEV
[[email protected] ~]# sar -n DEV
这条命令会把当天记录的网卡信息打印出来,每个10分钟记录一次,IFACE这一列表示设备名称,rxpck/s这一列表示每秒进入收取的包的数量,txpch/s这一列表示每秒发送出去的包的数量,rxKB/s这一列表示每秒收取的数据量(单位为KB),txKB/s这一列表示每秒发送的数据量。
如果哪天服务器丢包非常严重,那么就应该查一下网卡流量是否异常,如果rxpck/s那一列的数值大于4000,或者rxKB/s那一列的数值大于5000000,很有可能是被攻击了,正常的服务器网卡流量不会这么高,除非自己在复制数据。
实时查看网卡流量方法如下;
[[email protected] ~]# sar -n DEV 1 5
另外也可以使用-f选项查看某一天的网卡流量历史,后面跟文件名,在Red Hat或者Centos发行版中,sar的库文件一定在/var/log/sa/目录下
[[email protected] ~]# ls /var/log/sa/
sa02 sa03 sa04 sa05 sa06 sa08 sa09 sa10 sa15 sa16 sa17 sa19 sa23 sar02 sar05 sar15
[[email protected] ~]# sar -n DEV -f /var/log/sa/sa10
查看历史负载 sar -q
这个命令有助于我们查看服务器在过去某个时间的负载状况。
[[email protected] ~]# sar -q
nload命令
使用nload命令查看网卡流量
nload工具是一个更直观查看网卡流量的工具,系统默认没有安装这个工具,需要手动安装
[[email protected] ~]# yum install -y epel-release;yum install -y nload
[[email protected] ~]# nload
最上面一行为网卡的名字,以及ip地址,按左右方向键可以查看其它的网卡流量。输出结果分为两部分,Incoming为进入网卡的流量,Outgoing为网卡出去的流量,这里关注Curr那行的数据,按q退出。
原文地址:http://blog.51cto.com/13529231/2064433