zoukankan      html  css  js  c++  java
  • 常用系统监控命令


    $ vmstat 5
    1

    重点参数含义:

    cs(context switch)是每秒上下文切换的次数。

    in(interrupt)则是每秒中断的次数。

    r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数。

    b(Blocked)则是处于不可中断睡眠状态的进程数。

    可以看到,这个例子中的上下文切换次数 cs 是 9892 次,而系统中断次数 in 则是 124 次,而就绪队列长度 r 和不可中断状态进程数 b 都是 0。

    vmstat 只给出了系统总体的上下文切换情况,要想查看每个进程的详细情况,就需要使用我们前面提到过的 pidstat 了。给它加上 -w 选项,你就可以查看每个进程上下文切换的情况了。

    $ pidstat -w 5
    1

    这个结果中有两列内容是我们的重点关注对象。一个是 cswch ,表示每秒自愿上下文切换(voluntary context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换(non voluntary context switches)的次数。

    这两个概念你一定要牢牢记住,因为它们意味着不同的性能问题:

    1.自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。

    2.非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换。

    其中还有一个重要的指标,是查看CPU中断次数,如下:

    $ watch -d cat /proc/interrupts
    1

    一般排查问题基本方法: 登录到服务器,判断系统负载怎么样 。 高的话有三种情况,首先是cpu使用率 ,其次是io使用率 ,之后就是两者都高 。
    cpu 使用率高,可能确实是使用率高, 也的可能实际处理不高而是进程太多切换上下文频繁 , 也可能是进程内线程的上下文切换频繁

    io 使用率高 , 说明 io 请求比较大, 可能是 文件io 、 网络io 。

    工具 :
    系统负载 : uptime ( watch -d uptime)看三个阶段平均负载
    系统整体情况 : mpstat (mpstat -p ALL 3) 查看 每个cpu当前的整体状况,可以重点看用户态、内核态、以及io等待三个参数
    系统整体的平均上下文切换情况 : vmstat (vmstat 3) 可以重点看 r (进行或等待进行的进程)、b (不可中断进程/io进程) 、in (中断次数) 、cs(上下文切换次数)
    查看详细的上下文切换情况 : pidstat (pidstat -w(进程切换指标)/-u(cpu使用指标)/-wt(线程上下文切换指标)) 注意看是自愿上下文切换、还是被动上下文切换
    io使用情况 : iostat
    ————————————————
    版权声明:本文为CSDN博主「维修工人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/bwt1989/article/details/86661008

  • 相关阅读:
    redux-devtools的使用
    Electron-builder打包详解
    HTML JAVASCRIPT CSS 大小写敏感问题
    electron/nodejs实现调用golang函数
    基于react开发package.json的配置
    Chrome插件(扩展)开发全攻略
    Chrome插件中 popup,background,contentscript消息传递机制
    Linux 开机引导和启动过程详解
    bash 的配置文件加载顺序
    常用Electron App打包工具
  • 原文地址:https://www.cnblogs.com/sidesky/p/11810644.html
Copyright © 2011-2022 走看看