性能指标分析-CPU密集型应用案例实战

本文介绍了在Linux服务器管理中,如何使用stress工具进行CPU、内存和I/O压测,以及如何通过uptime、mpstat和pidstat监控系统资源使用情况,识别CPU密集型和I/O密集型应用的瓶颈。
摘要由CSDN通过智能技术生成

 记录一下以前操作Linux服务器时关于CPU操作指令的相关知识点,其实这些在实际生产中很少用到,使用时忘记后翻看回忆一下资料即可,这边记录了常用指令,有助于快速找到对自己有用的内容。 

  • 压测工具 stress

    • 多进程工具 ,模拟IO密集型应用、CPU密集型应用、多进程等待CPU调度场景, 对CPU,内存,IO等情况进行压测

    • 参数说明

    参数说明
    --timeout指定运行多少秒
    --cpu N产生多个处理sqrt()函数的CPU进程,每个进程高频的计算随机数的平方根,模拟 CPU 计算密集型场景
    --io N产生多个处理sync()函数的磁盘I/O进程,每个进程高频调用 sync(),刷内存缓冲区到磁盘,模拟 I/O 密集型场景
    --vm N每个进程高频调用内存分配 malloc() 和 内存释放 free() 函数
    --vm-bytes指定 malloc() 时申请内存的字节数,默认256MB
    --hdd N产生N个高频执行write和unlink函数的进程 (创建/写入/删除 文件) , 属于磁盘IO进程
    --hdd-bytes每个 hdd worker进程写的byte数,默认1G
  • 需求一 :模拟CPU密集型应用,系统是4核

    • 终端一 模拟两个 CPU核的使用率 100%,对2个cpu 进行压力测试 持续600s stress --cpu 2 --timeout 600

    • 终端二 -d 参数表示高亮显示变化的区域 watch -d uptime

    • 终端三 mpstat 查看 CPU 使用率情况, 每5秒监控所有 CPU情况 mpstat -P ALL 5

    • 终端四 查看运行中的进程和任务,每5秒刷新一次 pidstat -u 5

  • 宏观思路

    • 先看全局,找系统哪个资源问题,是CPU还是IO还是啥瓶颈

    • 知道具体后,再看啥哪个进程导致的这个资源有问题

  • 详细分析思路

    • 全局

      • uptime :运行1分钟后,4个核的CPU负载是2,高负荷可以到4

      • mpstat :

        • 应用场景:当系统变慢,CPU平均负载增大时,判断是CPU的使用率增大,还是IO压力增大的情况导致

        • CPU的两个核在用户态使用率是100%,两个核数空闲的,总的CPU使用率是50%,% iowait 为0,不存在io瓶颈

          • sqrt()函数的 CPU进程是在用户态,所以是%usr升高,而%sys没啥变化

    • 局部

      • pidstat: 对进程和任务的使用情况进行,发现stress进程对2块cpu使用率过高,导致CPU平均负载增加

      • 举一反三:如果不是stress,其他进程造成这类影响的,靠这个思路也能排查出是哪个进程,包括压测4个核

      • CPU使用率高,CPU平均负载也高; CPU平均负载高,CPU使用率不一定高

 终端一:

终端二:

 

终端三:

终端四:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值