linux常用命令——vmstat

1.vmstat介绍

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析

2.命令格式

vmstat  [刷新延时   刷新次数]

3.命令参数

  1. -a 开启显示active/inactive memory。

  2. -f 显示此系统启动以来的forks的总数,包括fork、vfork和clone system calls

  3. -m 显示slabinfo信息

  4. -n 只显示头信息,不周期性显示.也就是说开启这个参数,只显示头部信息一次。

  5. -s 显示各种事件计数器表和内存统计信息,这显示不重复。

  6. -d 显示磁盘统计数据(内核要求2.5.70 或以上)

  7. -w 可以扩大字段长度,当内存较大时,默认长度不够完全展示内存。

  8. -p 显示磁盘分区数据(disk partition statistics )

  9. -S 参数S控制输出性能指标的单位,k(1000) K(1024) 或 M(1048576) 默认单位为K(1024 bytes)

  10. -V 查看vmstat命令的版本

4.基本用法演示

每1秒刷新一次,共刷新3次

实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了。

每2秒刷新一次,直到手动停止:

字段说明:

Procs(进程):

  r: 运行队列中进程数量

  b: 等待IO的进程数量

Memory(内存):

  swpd: 使用虚拟内存大小

  free: 可用内存大小

  buff: 用作缓冲的内存大小

  cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

  so: 每秒写入交换区的内存大小
  • 1

IO:(现在的Linux版本块的大小为1024bytes)

  bi: 每秒读取的块数

  bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。【interrupt】

cs: 每秒上下文切换数。        【count/second】

CPU(以百分比表示):

  us: 用户进程执行时间(user time)

  sy: 系统进程执行时间(system time)

  id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。

  wa: 等待IO时间

备注:

如果r经常大于4,id经常少于40,表示cpu的负荷很重。

如果bi,bo长期不等于0,表示内存不足。

如果disk经常不等于0,且在b中的队列大于3,表示io性能不好。

Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。

显示活跃和非活跃内存 

vmstat -a 2 5 【-a 显示活跃和非活跃内存,所显示的内容除增加inact和active】
在这里插入图片描述显示从系统启动至今的fork数量

vmstat -f 【 linux下创建进程的系统调用是fork】
在这里插入图片描述说明: 信息是从/proc/stat中的processes字段里取得的

查看内存使用的详细信息

vmstat -s 【显示内存相关统计信息及多种系统活动数量】
在这里插入图片描述说明:这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat

查看磁盘的读/写

vmstat -d 【查看磁盘的读写】
在这里插入图片描述说明:这些信息主要来自于/proc/diskstats.

查看/dev/sda1磁盘的读/写

vmstat -p /dev/sda1 【显示指定磁盘分区统计信息】
在这里插入图片描述说明:这些信息主要来自于/proc/diskstats.

reads:来自于这个分区的读的次数。

read sectors:来自于这个分区的读扇区的次数。

writes:来自于这个分区的写的次数。

requested writes:来自于这个分区的写请求次数。

查看系统的slab信息

vmstat -m

说明:这些信息主要来自于/proc/slabinfo

slab:由于内核会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry,这些对象如果每次构建的时候就向内存要一个页(4kb),这样就会非常浪费,为了解决这个问题,就引入了一种新的机制来处理在同一个页框中如何分配小存储区,而slab可以对小对象进行分配,这样就不用为每一个对象分配页框,从而节省了空间,内核对一些小对象创建析构很频繁,slab对这些小对象进行缓冲,可以重复利用,减少内存分配次数。

查看进程路径

[root@localhost ~]# netstat -an | grep 2158

[root@localhost ~]# ll /proc/2158

在这里插入图片描述cwd符号链接的是进程运行目录;

exe符号连接就是执行程序的绝对路径;

cmdline就是程序运行时输入的命令行命令;

environ记录了进程运行时的环境变量;

fd目录下是进程打开或使用的文件的符号连接。

lsof -p 2158
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值