首页 > 代码库 > 十四、w、vmstat、top、sar命令

十四、w、vmstat、top、sar命令

第五章 Linux 系统日常运维管理

1,查看系统负载命令。

#w

 08:47:36 up  3:25,  2 users,  load average: 0.00, 0.00, 0.00  (#uptime 也显示这一行)

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     -                05:23    1:38m  0.02s  0.02s -bash

root     pts/0    192.168.1.117    06:59    0.00s  1.29s  0.01s w

------------

平均负载值 load average: 0.00, 0.00, 0.00 ,3个数字分别表示,1分钟,5分钟,15分钟内,系统的平均负载值。即单位时间内CPU活动进程数。这个值越大说明服务器压力越大。


查看服务器有几个CPU

#cat /proc/cpuinfo   (proc/cpuinfo 这个文件记录了cpu的详细信息。)

会显示多段processor的类似信息

#grep -c ‘processor‘ /proc/cpuinfo 查看当前系统有几个cpu


2,vmstat 命令,


# vmstat 1

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi  bo  in   cs us sy id wa st

0  0    0   834828  26788 118544   0    0     5  2   9    9  0  0 100 0 0

……

(1)procs 显示进程相关信息

r:表示运行和等待cpu时间片的进程数。如果长期大于服务器cpu个数,则说明cpu不够用了

b:表示等待资源的进程数。比如等待I/O、内存等,如果大于1,则需要关注

(2),memory 信息

swpd:表示切换到交换分区中的内存数量,如果其数值增大或不断变化,则说明内存不够

free:当前空闲的内存数量

buff:缓冲大小(即将写入磁盘的)

cache:缓存大小(从磁盘写出的)

(3),swap内存交换情况

si:由交换区写入到内存 swap in

so:由内存写入到交换区的数据量 swap out

si/so列一直是0,或者很稳定,小,则内存没有问题。若值变化频繁并长期大于0,则有可能内存不够了

(4),io磁盘使用情况

bi:从块设备读取数据的量(都磁盘)

bo:从块设备写入数据的量(写磁盘)

普通硬盘超过长期处于1000以上,则有可能产生瓶颈

(5),system显示采集间隔内发生的中断次数

in:表示在某一时间间隔内观测到的每秒设备中断数。

cs:表示每秒产生的上下文切换次数。

(6),CPU 显示cpu的使用状态

us:显示了用户下所花费cpu时间的百分比

sy:显示系统花费cpu时间百分比

id:表示cpu处于空闲状态的时间百分比

wa:表示I/O等待所占用cpu时间百分比

st:表示被偷走的cpu所占百分比。(一般为0,,不用关注)


3,top命令,动态查看负载

这个命令用于动态监控进程所占系统资源,每隔3秒变一次。特点是把占用系统资源(cpu 内存、磁盘IO等)最高的进程放前面。


# top

top - 09:54:29 up  4:32,  2 users,  load average: 0.00, 0.00, 0.00

Tasks:  96 total,   1 running,  95 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1030240k total,   196196k used,   834044k free,    27252k buffers

Swap:  2097148k total,        0k used,  2097148k free,   118560k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

   12 root      20   0     0    0    0 S  0.3  0.0   0:05.05 events/1

 1478 root      20   0 11788 3524 2736 S  0.3  0.3   0:03.80 sshd

 1699 root      20   0  2688 1120  888 R  0.3  0.1   0:00.02 top

    1 root      20   0  2904 1412 1196 S  0.0  0.1   0:02.14 init


PR:[0,39]  

NI[-20,+19]

VIRT:用了多大虚拟内存

RES:用了多大实际内存

SHR:是共享内存

s:表示一个进程处于sleep状态

%CPU:利用CPU百分比

%MEM:利用内存百分比

TIME+:使用cpu有多久

COMMAND:命令来源



1,top用法正确的是

top -bn1 可以一次性显示所有的进程

B top 默认会以cpu使用率的高低来排序

C top后按一下M可以按内存使用大小来排序

D top之后需要按q才可以退出来 ,

2,top -c 选项可以展示最后一列为更加详细的进程?


4,sar 命令。

sar命令可以监控系统所有资源状态。(平均负载、网卡流量、磁盘状态、内存使用等)还可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。

安装: #yum install -y sysstat  


#sar -q 能够查看系统历史负载

#sar -b 1 10 可以查看当前的磁盘io状态

#sar -n DEV 1 10 可以查看网卡流量

#sar -p 1 10 可以查看cpu的使用情况

使用sar去查看历史负载,比如19日的负载?

#sar -q -f /var/log/sa/sa19


-A:所有报告的总和。-u:CPU利用率-v:进程、I节点、文件和锁表状态。-d:硬盘使用报告。-r:没有使用的内存页面和硬盘块。-g:串口I/O的情况。-b:缓冲区使用情况。-a:文件读写情况。-c:系统调用情况。-R:进程的活动情况。-y:终端设备活动情况。-w:系统交换活动。-n: 记录网络使用情况

http://www.360doc.com/content/ ... shtml

参考资料。 


十四、w、vmstat、top、sar命令