赞
踩
描述
vmstat报告有关进程、内存、分页、块IO、陷阱和cpu活动的信息。
注意:生成的第一份报告给出了上次重启以来的平均值。附加报告给出了采样周期长度延迟的信息。
目录
vmstat [选项] [ <时间间隔> [ <监控次数> ] ]
- -w:扩大显示宽度,利于阅读
- -t:显示时间戳
- -d:监控磁盘统计数据
- -p:指定某块分区
- -S:指定单位(-S [k | K | m | M]:分别表示1000、1024、1000000、1048576字节(byte))
- -n:使头部只显示一次,而不是周期性地显示
- -m:显示slabinfo
- -f:显示从系统启动至今的fork数量
vmstat -twn 1 # 每秒输出一次
- r:运行队列中等待的进程数 #正在执行和等待CPU的任务数。当此列数大于cpu数量时,cpu将处于负载。正常情况应当低于cpu数量75%
- b:等待IO的进程数 #IO消耗过高会出现此进程数大于0的情况。说明系统有未完成的磁盘I/O请求
- swpd :正在使用的虚拟内存 #当物理内存不足时才会调用虚拟内存,这时需要着重注意内存使用情况,一旦虚拟内存使用完,Linux系统将面临死机的情况
- free :空闲的物理内存
- buff :正在对块设备进行读写的缓冲 #用作缓冲的内存,内存不足时自动释放
- cache:放置已打开文件的缓冲 #用作缓冲的内存,内存不足时自动释放
- si:从磁盘交换的内存量(/s) #物理内存不足时会启动交互分区,使用磁盘读写,此时性能开始变差
- so:交换到磁盘的内存量(/s) #同上
- bi:从块设备接收到的块(Blocks/s) #每秒磁盘读
- bo:发送到块设备的块(Blocks/s) #每秒磁盘写
- in:每秒CPU的中断次数(包括时间中断) #这个值越大,说明内核CPU消耗越严重
- cs:每秒上下文切换次数 #注意:切换次数越多,CPU做事越少,性能也就会越差
- us:运行用户消耗CPU时间
- sy:运行内核消耗CPU时间
- id:CPU空闲时间 #不低于25%。超过25% 说明CPU消耗过高,会造成服务器响应变慢,用户使用不稳定
- wa:等待IO的CPU时间 #不超过20%。当IO消耗过高,此时应当关注物理内存是否被消耗完,swap频繁使用,IO使用率可能达到100%
- st:从虚拟机窃取的时间
- 模拟CPU消耗shell脚本
- vim cpu.sh
-
- cpu(){
- c=1
- while true;do
- c="$(( c + 1))"
- done
- }
-
- num=$1
- for (( i=1; i<=$num; i++));do
- cpu &
- done
-
- 执行脚本
- bash cpu.sh 1 # 1表示进程数
-
- 杀死进程
- ps -ef |grep cpu.sh |grep -v grep |awk '{print $2}' |xargs kill -9
- 使用 dd 命令写入80GB数据,走内存
- time dd if=/dev/zero of=`pwd`/test_w bs=8k count=10485760
- --if表示输入的文件名,这里直接指定磁盘
- --of表示输出的文件名
- --bs表示同时读入/输出的块大小
- --count表示拷贝的块数
- --数据大小 = bs * count
- 模拟磁盘读,共读出8GB(直接走磁盘,不通过内存)
- time dd iflag=direct,nonblock if=/dev/sda2 of=/dev/null bs=8k count=1048576 #/dev/sda2 表示需要测试的块设备
-
- 模拟磁盘写,共写入8GB(直接走磁盘,不通过内存)
- time dd oflag=direct,nonblock if=/dev/zero of=`pwd`/test_w bs=8k count=1048576 #没有指定某个块设备,表示测试当前路径所使用的磁盘
-
- 模拟磁盘同时读写,共读写8GB(直接走磁盘,不通过内存)
- time dd iflag=direct,nonblock oflag=direct,nonblock if=/dev/sda2 of=`pwd`/test_rw bs=8k count=1048576 #/dev/sda2 表示需要测试的块设备
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。