vmstat是一个提供报告虚拟内存统计的工具,包括了系统内存、交换和实时处理器利用率。
命令详解
【命令星级】 ★★★★☆
【功能说明】
vmstat是Virtual Memory
Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。
【语法格式】
vmstat [option] [delay [ count]]
vmstat [选项] [时间间隔[次数]]
说明:
1)在vmstat命令及后面的选项里,每个元素之间都至少有一个空格。
2)delay表示两次输出之间的间隔时间。
3)count表示按照delay指定的时间间隔统计的次数。
【选项说明】
表11-4针对该命令的参数选项进行了说明。
使用范例
范例11-12:显示虚拟内存使用情况。
[root@oldboy ~]# vmstat #<==如果省略“间隔时间”和“次数”参数,则仅显示一次报告后就退出
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 71756 38600 279084 0 0 24 6 15 18 0 0 100 0 0
[root@oldboyedu ~]# vmstat 5 #<==表示每5秒钟更新一次输出信息,循环输出,按Ctrl+C组合键停止输出。
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 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 8 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 9 0 0 100 0 0
^C
[root@oldboyedu ~]# vmstat 5 6 #<==表示每5秒更新一次输出信息,统计6次后停止输出。
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 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 8 9 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0
[root@oldboy ~]#
以下是命令结果说明。
第1列:procs。
q r列表示运行和等待CPU时间片的进程数。
q b列表示在等待资源的进程数。
第2列:memory。
q swpd列表示使用虚拟内存大小。
q free列表示当前空闲的物理内存数量。
q buff列表示buffers 的内存数量。
q cache列表示cache的内存数量。
第3列:swap。
q si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
q so(swap out)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。
第4列:I/O项显示磁盘读写状况。
q bi列表示从块设备读入数据的总量(即读磁盘)(块/s)。
q bo列表示写入到块设备的数据总量(即写磁盘)(块/s)。
第5列:system显示采集间隔内发生的中断数。
q in列表示在某一时间间隔中观测到的每秒设备中断数。
q cs列表示每秒产生的上下文切换次数。
第6列:CPU项显示了CPU的使用状态。
q us列显示了用户进程消耗的CPU时间百分比。
q sy列显示了系统(内核)进程消耗的CPU时间百分比。
q id列显示了CPU处在空闲状态的时间百分比。
q wa列显示了IO等待所占用的CPU时间百分比。
q st列显示了虚拟机占用的CPU时间的百分比。
范例11-13:显示活跃和非活跃内存。
[root@oldboy ~]# vmstat -a 2 5
procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 0 71804 160408 165848 0 0 2 1 9 9 0 0 100 0 0
0 0 0 71756 160408 165844 0 0 0 0 11 11 0 0 100 0 0
0 0 0 71756 160408 165844 0 0 0 0 12 9 0 0 100 0 0
0 0 0 71608 160412 165672 0 0 0 1302 218 341 12 9 80 0 0
0 0 0 71608 160412 165672 0 0 0 0 10 9 0 0 100 0 0
使用-a选项显示活跃和非活跃内存时,所显示的内容除增加了inact和active外,其他显示内容与范例11-12相同。
在Memory列增加的inact和active两列,说明如下。
q inact: 非活跃内存大小(当使用-a选项时显示)。
q active: 活跃的内存大小(当使用-a选项时显示)。
范例11-14:查看内存使用的详细信息。
[root@oldboy ~]# vmstat -s
486640 total memory
414572 used memory
165656 active memory
160420 inactive memory
72068 free memory
……
这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。
范例11-15:查看磁盘的读/写。
[root@oldboy ~]# vmstat -d
disk- ------------reads------------ ------------writes-----------
-----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
……
sr0 0 0 0 0 0 0 0 0 0 0
sda 14667 3623 594388 6737 12864 32806 365372 44250 0 30
这些信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作。
范例11-16:查看/dev/sda1磁盘的读写统计信息。
[root@oldboy ~]# vmstat -p /dev/sda1
sda1 reads read sectors writes requested writes
502 4162 14 68
这些信息主要来自于/proc/diskstats。各列的说明如下。
q reads:来自于这个分区的读的次数。
q read sectors:来自于这个分区的读扇区的次数。
q writes:来自于这个分区的写的次数。
q requested writes:来自于这个分区的写请求次数。
摘自:跟老男孩学Linux运维:核心系统命令实战 第11章 版权归原作者所有
linux查看cpu使用率的方法:首先确保linux环境能够上网,并且配置好源;然后执行命令“apt-get install dstat”来进行软件的安装;最后执行命令“dstat -c”显示系统整体的cpu情况即可。在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。那么如何查看cpu使用率?下面本篇文章就来给大家具体介绍一下,希望对大家有所帮助。【视频教程推荐:linux教程】
1、使用top命令
这个命令很常用,在终端中直接执行top命令,即可在第三行看到cpu的使用率。
注:96.9id,表示空闲CPU,即CPU未使用率,100%-96.9%=3.1%,即系统的cpu使用率为3.1%。
如果有多个CPU,希望查询每个CPU的使用率,可以在top命令的界面,按数字键1,即可看到其它CPU的使用率,如下图:
2、使用vmstat命令
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况。
相比top命令,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率。
句式:
1
vmstat -w-w
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。例:
说明:2表示每个两秒采集一次服务器状态,1表示只采集一次。
3、使用dstat命令
dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。
如果没有dstat命令,则需要进行下载安装。
首先我们需要确保linux环境能够上网,并且配置好源。在root账户登录下。执行命令apt-get install dstat 。进行软件的安装。
然后执行命令dstat -c。显示系统整体的cpu情况。
显示各个信息为CPU用户占用,系统占用,空闲,等待,中断,软件中断等信息。
1,Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过Physical
Processor
ID来区分单核和双核。而Physical
Processor
ID可以从cpuinfo或者dmesg中找到.
flags
如果有
ht
说明
支持超线程技术
判断物理CPU的个数可以查看physical
id
的值,相同则为同一个物理CPU
2,查看内存大小:
cat
/proc/meminfo
|grep
MemTotal
3,其他一些可以查看详细
linux系统
信息的命令和方法:
uname
-a
#
查看内核/操作系统/
CPU信息
的linux系统信息命令
head
-n
1
/etc/issue
#
查看操作系统版本,是数字1不是字母L
cat
/proc/cpuinfo
#
查看CPU信息的linux系统信息命令
hostname
#
查看计算机名的linux系统信息命令
lspci
-tv
#
列出所有
PCI设备
lsusb
-tv
#
列出所有USB设备的linux系统信息命令
lsmod
#
列出加载的内核模块
env
#
查看
环境变量
资源
free
-m
#
查看内存使用量和
交换区
使用量
df
-h
#
查看各分区使用情况
du
-sh
#
查看指定目录的大小
grep
MemTotal
/proc/meminfo
#
查看内存总量
grep
MemFree
/proc/meminfo
#
查看空闲内存量
uptime
#
查看系统
运行时间
、用户数、负载
cat
/proc/loadavg
#
查看系统负载磁盘和分区
mount
|
column
-t
#
查看挂接的分区状态
fdisk
-l
#
查看所有分区
swapon
-s
#
查看所有
交换分区
hdparm
-i
/dev/hda
#
查看磁盘参数(仅适用于
IDE设备
)
dmesg
|
grep
IDE
#
查看启动时IDE设备检测状况网络
ifconfig
#
查看所有网络接口的属性
iptables
-L
#
查看防火墙设置
route
-n
#
查看
路由表
netstat
-lntp
#
查看所有监听端口
netstat
-antp
#
查看所有已经建立的连接
netstat
-s
#
查看
网络统计
信息进程
ps
-ef
#
查看所有进程
top
#
实时显示
进程状态
用户
w
#
查看活动用户
id
#
查看指定用户信息
last
#
查看
用户登录
日志
cut
-d:
-f1
/etc/passwd
#
查看系统所有用户
cut
-d:
-f1
/etc/group
#
查看系统所有组
crontab
-l
#
查看当前用户的计划任务服务
chkconfig
–list
#
列出所有系统服务
chkconfig
–list
|
grep
on
#
列出所有启动的系统服务程序
rpm
-qa
#
查看所有安装的软件包
cat
/proc/cpuinfo
:查看CPU相关参数的linux系统命令
cat
/proc/partitions
:查看linux硬盘和分区信息的系统信息命令
cat
/proc/meminfo
:查看linux系统内存信息的linux系统命令
cat
/proc/version
:查看版本,类似uname
-r
cat
/proc/ioports
:查看设备io端口
cat
/proc/interrupts
:查看中断
cat
/proc/pci
:查看pci设备的信息
cat
/proc/swaps
:查看所有swap分区的信息
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)