Linux 查看系统运行信息

vmstat的常规用法是vmstat interval times,即每隔 interval秒采样一次,共采样times次,如果省略times,则一直采集数据到用户手动停止。





第一行的值是显示了自系统启动以来的平均值,第二行开始展示现在正在发生的情况,接下来的行会显示每5秒的间隔内发生了什么。每一列的含义在头部,如下所示:
procs
r 这一列显示了多少进程正在等待cpu ,b列显示多少进程正在不可中断的休眠(通常意味着它们在等待IO,例如磁盘,网络,用户输入,等等)。
memory
swapd 列显示了多少块被换出到了磁盘(页面交换)。剩下的三个列显示了多少块是空闲的(未被使用),多少块正在被用作缓冲区,以及多少正在被用作操作系统的缓存。
swap
这些列显示页面交换活动:每秒有多少块正在被换入(从磁盘)和换出(到磁盘)。它们比监控swpd列重要多了。大部分时间我们希望看到 si so 列是0,并且我们很明确不希望看到每秒超过10个块。
io
这些列显示了多少块从块设备读取 (bi)和写出(bo) 。这通常反映了硬盘I/O
system
这些列显示了每秒中断(in)和上下文切换 (cs)的数量。除非上下文切换超过 100 000次或更多,一般不用担心上下文切换。
cpu
这些列显示所有的 CPU时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待 IO。如果正在使用虚拟化,第 5列可能是st ,显示了从虚拟机中 "偷走" 的百分比。

三个重要概念:
上下文切换(Context Switches): 如果可运行的线程数大于CPU的数量,那么OS最终会强行换出正在执行的线程,从而使其他线程能够使用CPU,它会保存当前运行线程的执行上下文,并重建新调入线程的执行上下文。
运行队列( Run Queue ):每个CPU都维护一个线程的运行队列。如果CPU 子系统处于高负荷下,那就意味着内核调度将无法及时响应系统请求。导致结果,可运行状态进程拥塞在运行队列里。当运行队列越来越巨大,进程线程将花费更多的时间获取被执行。每个处理器应该运行队列不超过1-3个线程。例如,一个双核处理器应该运行队列不要超过6个线程。
load:在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息。安全的load :一般是cpu的个数。
如果一个CPU被充分使用,利用率分类之间均衡的比例应该是:65% - 70%  User Time 30% - 35%  System Time 0% - 5%  Idle Time


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值