上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的. 那是不是所有 CPU 使用率高的问题,都可以这么分析呢?我想,你的答案应该是否定的. 回顾前面的内容,我们知道,系统的 CPU 使用率,不仅包括进程用户态和内核态的运行,还包括中断处理.等待 I/O 以及内核线程等.所以,当你发现…
小结 碰到常规问题无法解释的 CPU 使用率情况时,首先要想到有可能是短时应用导致的问题,比如有可能是下面这两种情况. 第一,应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通过 top 等工具也不容易发现. 第二,应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的 CPU. 对于这类进程,我们可以用 pstree 或者 execsnoop 找到它们的父进程,再从父进程所在的应用入手,排查问题的根源. 如果碰到不好解释的CPU问题时,比如现象:通过top观察CPU…
上一节讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过就有人留言了,说似乎感觉高 CPU 使用率的问题,还是挺容易排查的.那是不是所有 CPU 使用率高的问题,都可以这么分析呢?我想,你的答案应该是否定的. 回顾前面的内容,我们知道,系统的 CPU 使用率,不仅包括进程用户态和内核态的运行, 还包括中断处理.等待 I/O 以及内核线程等.所以,当你发现系…
业务背景 业务背景就是需要将多张业务表中的数据增量同步到一张大宽表中,后台系统基于这张大宽表开展业务,所以就开发了一个数据同步工具,由中间件采集binlog消息到kafka里,然后我去消费,实现增量同步. 生产环境发现的现象 在程序发布到生产环境时候,机器的CPU使用率立马被打到100%, load还在不停的上升,开始机器的配置是4核心8G内存,load可以到21,通过topc命令查看load average的三个值都大于20,说明机器非常的繁忙. 排查步骤及手段 1.  通过top命令查看到C…
1.某日zabbix告警,某台机器CPU使用率过高. 查看慢查询日志,看到很多sql语句都超过10秒 把sql语句拿出来放在查询窗口执行.前面加上explain就可以查看详细查询信息 playcode字段没设置索引导致每次查询都执行了全表扫描 通过加入explain可以看到它查询遍历了多少行 下面是我随便找一个语句查询的. 当时告警时忘记截图了.实际查询全表扫描了.有50万行.肯定很慢 加索引…
kipmi is supposed to run with low priority. When you say it consumes 70-90% of the CPUs, is that constant (does it still consume the processor when they are other tasks in the process queue that should have a larger slice of the CPU time) or the 70%/…
通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能已经有了初步了解.不过我还是想问一下,在学这个专栏前,你最常用什么指标来描述系统的 CPU 性能呢?我想你的答案,可能不是平均负载,也不是 CPU 上下文切换,而是另一个更直观的指标-- CPU 使用率. 我们前面说过,CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示.那么,作为最常用也是最熟悉的 CPU 指标,你能说出 CPU 使用率到底是怎么算出来的吗?再有,诸如 top.ps 之类的性能工具展…
性能分析小案例系列,可以通过下面链接查看哦 https://www.cnblogs.com/poloyy/category/1814570.html 系统架构背景 VM1:用作 Web 服务器,来模拟性能问题 VM2:用作 Web 服务器的客户端,来给 Web 服务增加压力请求 使用两台虚拟机(均是 Ubuntu 18.04)是为了相互隔离,避免交叉感染 VM2 运行 ab 命令,初步观察 Nginx 性能 简单介绍 ab 命令 ab(apache bench)是一个常用的 HTTP 服务性能测…
  CPU使用率是单位时间内CPU使用情况的统计,以百分比方式展示. $ top top - 11:46:45 up 7 days, 11:52, 1 user, load average: 0.00, 0.01, 0.00 Tasks: 198 total, 1 running, 197 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st K…
--CPU使用率 Linux是一个多任务的操作系统,将每个cpu的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉 为了维护cpu时间,linux通过事先定义的节拍率(内核中表示为HZ),触发时间中断,并使用全局变量jiffies记录了开机以来的节拍数 [root@rac2 ~]# grep 'CONFIG_HZ=' /boot/config-$(uname -r) #默认值 CONFIG_HZ=1000 Linux通过/proc虚拟文件系统,向用户空间提…