0
点赞
收藏
分享

微信扫一扫

Linux服务器性能监控常用命令汇总

杨小羊_ba17 2022-02-13 阅读 149

top命令

在这里插入图片描述
查看系统负载情况,重点在监控每个进程。当load average三个值加起来 / 3 / 100% > 60%,表示系统负载较高

vmstat

在这里插入图片描述
相比top命令,vmstat命令可以监控整个系统cpu和内存使用情况。一般通过两个数字参数来完成,第一个代表采样时间间隔单位为秒,第二个代表采样次数

  • procs:

    • r:运行和等待CPU时间片的进程数,原则上1核CPU的运行队列不大于2,整个系统运行队列不超过核心数2倍,否则被视为系统压力过大
    • b:等待系统分配资源的进程数(磁盘I/O,网络I/O)
  • cpu:

    • us:用户进程消耗cpu时间占比。如果长期高于50%,考虑优化程序
    • sy:内核线程消耗cpu时间占比
    • us + sy 参考值80%,如果长期高于80%,可能存在cpu性能不足

pidstat

在这里插入图片描述
针对进程查看cpu和内存使用情况 -u 打印频率 -p 进程ID

CPU占用过高分析步骤

测试代码

public class Demo {
    public static void main(String[] args) {
        while (true) {
            System.out.println(new java.util.Random().nextInt(77778888));
        }
    }
}
  1. 使用top命令查找占用高的进程
    在这里插入图片描述
  2. 使用ps -ef | grep pid 或jps -l进一步查看是哪个应用程序占用高
    在这里插入图片描述
  3. ps -mp pid -o THREAD,tid,time 定位到具体线程
    在这里插入图片描述
  4. 把线程ID转换为16进制(java运行时线程ID以16进制形式存在),通过命令jstack pid | grep tid -A60
    -A60 打印前60行
    在这里插入图片描述
举报

相关推荐

0 条评论