第十一讲 如何快速分析出CPU的性能瓶颈(2020.6.3)

这一讲干活真是太多了,将之将使用的各种工具串联起来。其实系统出问题之后第一感觉就是感觉就是系统相应变慢了。我们可以使用<> 里作者介绍的USE 方法来做CPU相关的性能分析。

使用率(utilization):cpu 繁忙的时间

饱和度(saturation):可运行线程排队等待时间

错误(errors): 各种错误

如果能找到错误消息的话那就再不过了,错误提示应该能更直接的看出系统哪里有问题了。如果没有这样的提示的话也不用着急,可以通过观测性能来做进一步的分析。登录到机器第一件要做的事情就是 top 然后按下数字1观察整体的性能指标,然后对top的每一行数据使用其他工具来进一步的分析。

1. load averge(top第一行输出) 相关问题定位

top - 06:46:45 up 3 days, 8:33, 1 user, load average: 0.32, 0.38, 0.54

这里可以看到系统的uptime相关信息,可以将关注点放在load average上,如果load average超过了CPU的核数就说明有进程在在等待了需要去调度执行(也就说明有进程上下文的切换)。这时候就可以通过vmstat 来确认等待队列情况。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 7758052 408352 3653420 0 0 2266 145 114 57 27 14 59 0 0

0 0 0 7750744 408352 3661260 0 0 0 0 1414 2906 2 1 97 0 0

0 0 0 7750468 408352 3661100 0 0 0 0 1269 2699 2 1 98 0 0

0 0 0 7750380 408352 3660956 0 0 0 12 1229 2714 2 0 98 0 0

0 0 0 7750884 408352 3660980 0 0 0 0 1141 2395 1 1 98 0 0

可以主要关注 r 列和 cs,us,sys,wa 列,观察

上下文切换是否频繁

cpu 的cs,us,sys,wal的值是否过高

进一步的使用pidsat看下具体是那个进程

Average: UID PID %usr %system %guest %wait %CPU CPU Command

Average: 0 18 0.00 0.50 0.00 0.00 0.50 - ksoftirqd/1

Average: UID PID cswch/s nvcswch/s Command

Average: 0 1 6.44 0.00 systemd

这时候已经定位到具体的进程了,可以用perf 或者strace去进一步分析了。

2. 进程 相关问题定位(top第二行)

Tasks: 369 total, 1 running, 294 sleeping, 0 stopped, 0 zombie

按下H可以切换到thread mode,可以查看到线程级别的统计

这里主要关注 running的进程数,和僵尸进程数 可以使用ps 定位到僵尸进程的父进程

2. CPU 相关问题定位(top第三行)

%Cpu(s): 2.3 us, 0.8 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st

这里就表示CPU主要忙着在干啥

us 高 说明在用户程序上忙(负载不是太高的话是ok的,最希望就是cpu都原来做应用层的事情)

top-----> perf/strace

sys 高 在内核上忙(这个指标高就说明,cpu都忙在内核上了,需要定位)

vmstat--->pidstat--->perf, starce

wa 高 io等待比较高

dstat --->pidstat--->perf,strace

si 高 cpu都在忙这处理软中断

/proc/softirqs --->RX/TX高---->sar------>tcpdump/wireshark

idl linux运行效率,Linux性能优化实战 CPU篇 阅读笔记相关推荐

  1. linux 内存管理优化,Linux性能优化实战 内存篇 阅读笔记

    第十五讲 基础篇:Linux内存是怎么工作的(2020.6.8) 这一讲相关的内容正好之前看csapp的时候总结了一下,可以直接贴出来作为总结了. Linux的内存工作原理,这又是一个特别大的话题.一 ...

  2. 上下文保存 中断_Linux性能优化(CPU篇)(5)——CPU的上下文切换有几种类型?什么是进程上下文切换?...

    上一篇中讲了stress用来模拟常见压力测试的选项: RobotCode俱乐部:<Linux性能优化实战>之CPU性能篇(四)​zhuanlan.zhihu.com 这一篇的主题是:CPU ...

  3. Linux性能优化:CPU篇

    本文主要帮助理解 CPU 相关的性能指标,常见的 CPU 性能问题以及解决方案梳理. 系统平均负载 简介 系统平均负载:是处于可运行或不可中断状态的平均进程数. 可运行进程:使用 CPU 或等待使用 ...

  4. linux系统和性能监控之cpu篇,Linux系统和性能监控之CPU篇

    1.0 性能监控介绍 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,多数管理员相信看一些相关的"cook book"就可以实现性能优化,通常通过对内核的一些配置是可以简单的解 ...

  5. c++性能优化(cpu篇)

    背景 1.做性能优化时,其实也是存在二八定律的,基本上80% 的性能损耗是由20%的代码引起的,而且这20%的代码被基本上被调用的频率非常高.因此一些比较简单的优化就能显著提高性能: 2.在写好代码之 ...

  6. linux系统和性能监控之cpu篇,Linux性能监控之CPU篇(2)

    正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控CPU的性能就是以上3点,运行队列.CPU使用率和上下文切换.以下是一些对于CPU很普遍的性能要求: 1.对于每一个CPU来说运行队列不要超 ...

  7. Linux 性能优化实战(倪朋飞)---CPU 使用率

    查看 CPU 使用率 对于 CPU 使用率,top 默认 3 秒时间间隔:ps 使用的是进程的整个生命周期. top 显示系统总体的 CPU 和内存使用情况,及各个进程的资源使用情况:ps 只显示每隔 ...

  8. linux性能优化实战学习笔记-(1)CPU性能分析工具与套路

    版权归Linux性能优化实战 作者倪鹏飞,本文主要是为学习.整理相关知识点,请勿用作商用,侵删. linux性能分析工具 下图来自:Brendan D. Gregg http://www.brenda ...

  9. Linux 性能优化实战(倪朋飞)---系统中出现大量不可中断进程和僵尸进程怎么办?

    进程状态 可通过 top 或 ps 查看进程状态. $ topPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4480 yjp 20 0 6 ...

最新文章

  1. 批处理中的****1nul 2nul
  2. python操作mysql数据库 内存占用100_python操作MySQL数据库
  3. yum安装nginx的负载均衡详解
  4. 什么是SAP CRM的Custom Transaction Context
  5. java 三个点_Java,参数中的3个点
  6. 上午绿茶下午菊花茶晚上枸杞
  7. 四种策略确保 RabbitMQ 消息发送可靠性!你用哪种?
  8. redis-python操作redis
  9. 瑞幸咖啡股价再大涨超36% 目前总市值约13.87亿美元
  10. HTML5网站大观:分享8个精美的 HTML5 网站案例
  11. 五子棋聊天java_java带聊天的五子棋 适合新手
  12. day05匿名函数,内置函数,二分法,递归,模块
  13. Java内存中神奇的64MB
  14. 大话循环神经网络(RNN)
  15. 如何在VM16上安装虚拟机(win7)及联网
  16. 如何保证同事的代码不会腐烂?一文带你了解 阿里巴巴 COLA 架构
  17. linux查看linux版本,内核版本,系统位数,gcc版本,Ubuntu下查看linux版本,内核版本,系统位数,gcc版本...
  18. maven远程仓库和镜像
  19. 2022-2028年中国小麦组织蛋白行业市场发展潜力及投资前景分析报告
  20. 计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)

热门文章

  1. sonar的次要问题_次要GC,主要GC与完整GC
  2. jdk安装教程_使用JDK 8流在包装对象的集合和包装对象的集合之间转换
  3. 过年回家抢票不求人,试试这个开源抢票神器吧!
  4. 赠书:算法与数据中台“网约车业务实践”
  5. 每日一皮:项目开发停在了最后10%的效果...
  6. 赠书:Apache顶级项目,SkyWalking为何一枝独秀?
  7. 唠唠面试常问的:面向对象六大原则
  8. 图片来源html,HTML图片(Images)
  9. 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制
  10. RESTful架构风格