使用vmstat命令来察看系统资源情况 linux 命令vmstat-讲解如何来使用AIX svmon。使用vmstat命令来察看系统资源情况
在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
Q: 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O?
A: 在命令行方式下,
1. 查看CPU使用情况的命令
“”每5秒刷新一次,最右侧有CPU的占用率的数据
$ vmstat 5
“”top 然后按Shift+P,按照进程处理器占用率排序
$ top
2. 查看内存使用情况的命令
“”用free命令查看内存占用情况
$ free
“”top 然后按Shift+M, 按照进程内存占用率排序
$ top
3. 查看网络流量
“”可以用工具iptraf工具
$ iptraf -g
“”针对某个Interface的网络流量可以通过比较两个时间网络接口的RX和TX数据来获得
$ date; ifconfig eth1
$ date; ifconfig eth1
4. 查看磁盘i/o
“”用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次
$ iostat -d -x /dev/sdc3 2
“”用vmstat查看io部分的信息
$ vmstat 2
衡量CPU性能的指标:
1,用户使用CPU的情况;
CPU运行常规用户进程
CPU运行niced process
CPU运行实时进程
2,系统使用CPU情况;
用与I/O管理:中断和驱动
用与内存 管理:页面交换
用户进程管理:进程开始和上下文切换
3,WIO:用与进程等待磁盘I/O而使CPU处与空闲状态的比率。
4,CPU的空闲率,除了上面的WIO以外的空闲时间
5,CPU用与上下文交换的比率
6,nice
7,real-time
8,运行进程队列的长度
9,平均负载
Linux中常用的监控CPU整体性能的工具有:
mpstat: mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。
vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;
iostat: 只能查看所有CPU的平均信息。
sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。
下面一一介绍:
一,vmstat
[root@localhost ~]#vmstat -n 3 (每个3秒刷新一次)
procs———–memory——————–swap– —-io—- –system—- ——cpu——–
r b swpd free buff cache si so bi bo in cs us sy id wa
10 144 0 0 18 166 83 2 48 21 31 0
20 144 0 0 0 177 1039 1210 34 10 56 0
00 144 0 0 0 10 1071 670 32 5 63 0
00 144 0 0 0 189 1035 558 20 3 77 0
20 144 0 0 0 203 1065 2832 70 14 15 0
红色内容标示CPU相关的参数 –r:假如在processes中运行的序列(process r)是连续的大与在系统中的CPU的个数表示系统现在运行比较慢有多数的进程等待CPU.
假如r的输出数大与系统中可用CPU个数的4倍的话则系统面临着CPU短缺的问题或者是CPU的速率过低系统中有多数的进程在等待CPU造成系统中进程运行过慢.
SYSTEM
–in:每秒产生的中断次数
–cs:每秒产生的上下文切换次数
上面2个值越大,会看到由内核消耗的CPU时间会越大
CPU
-us:用户进程消耗的CPU时间百分
us的值比较高时,说明用户进程消耗的CPU时间多,但是假如长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速(比如PHP/PERL)
-sy:内核进程消耗的CPU时间百分比(sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因)
-wa:IO等待消耗的CPU时间百分比
wa的值高时,说明IO等待比较严重,这可能由与磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
-id:CPU处与空闲状态时间百分比假如空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.
解决办法:
当 发生以上问题的时候请先调整应用程序对CPU的占用情况.使得应用程序能够更有效的使用CPU.同时可以考虑减少更多的CPU. 关与CPU的使用情况 还可以结合mpstat ps aux top prstat a等等一些相应的命令来综合考虑关与具体的CPU的使用情况和那些进程在占用大 量的CPU时间.一般情况下,应用程序的问题会比较大一些.比如一些 SQL语句不合理等等都会造成这样的现象.