首页 > 代码库 > 十四、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用法正确的是
A 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命令