购物网站首页界面设计软装设计公司加盟
购物网站首页界面设计,软装设计公司加盟,北京信息网,别墅设计装修设计序言CPU 使用率是最直观和最常用的系统性能指标#xff0c;更是我们在排查性能问题时#xff0c;通常会关注的第一个指标。节拍率为了维护 CPU 时间#xff0c;Linux 通过事先定义的节拍率#xff08;内核中表示为 HZ#xff09;#xff0c;触发时间中断#xff0c;并使…序言CPU 使用率是最直观和最常用的系统性能指标更是我们在排查性能问题时通常会关注的第一个指标。节拍率为了维护 CPU 时间Linux 通过事先定义的节拍率内核中表示为 HZ触发时间中断并使用全局变量 Jiffies 记录了开机以来的节拍数。为了维护 CPU 时间Linux 通过事先定义的节拍率内核中表示为 HZ触发时间中断并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断Jiffies 的值就加 1。节拍率 HZ 是内核的可配选项可以设置为 100、250、1000 等。不同的系统可能设置不同数值每发生一次时间中断Jiffies 的值就加 1。例如我们测试机上adb pull /proc/config.gz .
gzip -C config.gz
cat config | grep CONFIG_HZ
# CONFIG_HZ_PERIODIC is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300y
# CONFIG_HZ_1000 is not set
CONFIG_HZ300同时正因为节拍率 HZ 是内核选项所以用户空间程序并不能直接访问。为了方便用户空间程序内核还提供了一个用户空间节拍率 USER_HZ它总是固定为 100也就是 1/100 秒。这样用户空间程序并不需要关心内核中 HZ 被设置成了多少因为它看到的总是固定值 USER_HZ。getconf CLK_TCK
100使用率单位时间内 CPU 使用情况的统计以百分比的方式展示繁忙百分比。Linux 通过 /proc 虚拟文件系统向用户空间提供了系统内部状态的信息而 /proc/stat 提供的就是系统的 CPU 和任务统计信息。比方说如果你只关注 CPU 的话可以执行下面的命令# cat /proc/stat | grep ^cpu
cpu 234216 27933 319655 17408210 4562 55507 27548 0 0 0
cpu0 49539 7960 70000 2095840 766 17747 6814 0 0 0
cpu1 46158 7493 69829 2102226 919 14273 6062 0 0 0
cpu2 34898 2226 74222 2118598 778 12061 5720 0 0 0
cpu3 33398 2343 72419 2119606 904 9585 8048 0 0 0
cpu4 21543 1631 9387 2238443 136 437 189 0 0 0
cpu5 22054 1652 10093 2237259 127 434 203 0 0 0
cpu6 22313 1711 10588 2236524 129 420 185 0 0 0
cpu7 4308 2914 3114 2259711 798 547 323 0 0 0这里的输出结果是一个表格。其中第一列表示的是 CPU 编号如 cpu0、cpu1 而第一行没有编号的 cpu 表示的是所有 CPU 的累加。其他列则表示不同场景下 CPU 的累加节拍数它的单位是 USER_HZ也就是 10 ms1/100 秒所以这其实就是不同场景下的 CPU 时间。当然这里每一列的顺序并不需要背下来。有需要的时候查询 man proc 就可以。下面来依次解读一下。user通常缩写为 us代表用户态 CPU 时间。注意它不包括下面的 nice 时间但包括了 guest 时间。nice通常缩写为 ni代表低优先级用户态 CPU 时间也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意nice 可取值范围是 -20 到 19数值越大优先级反而越低。system通常缩写为 sys代表内核态 CPU 时间。idle通常缩写为 id代表空闲时间。注意它不包括等待 I/O 的时间iowait。iowait通常缩写为 wa代表等待 I/O 的 CPU 时间。irq通常缩写为 hi代表处理硬中断的 CPU 时间。softirq通常缩写为 si代表处理软中断的 CPU 时间。steal通常缩写为 st代表当系统运行在虚拟机中的时候被其他虚拟机占用的 CPU 时间。guest通常缩写为 guest代表通过虚拟化运行其他操作系统的时间也就是运行虚拟机的 CPU 时间。guest_nice通常缩写为 gnice代表以低优先级运行虚拟机的时间。 CPU 使用率就是除了空闲时间外的其他时间占总 CPU 时间的百分比用公式来表示就是 根据这个公式我们就可以从 /proc/stat 中的数据很容易地计算出 CPU 使用率。当然也可以用每一个场景的 CPU 时间除以总的 CPU 时间计算出每个场景的 CPU 使用率。不过先不要着急计算直接用 /proc/stat 的数据算的是什么时间段的 CPU 使用率吗这是开机以来的节拍数累加值所以直接算出来的是开机以来的平均 CPU 使用率一般没啥参考价值。事实上为了计算 CPU 使用率性能工具一般都会取间隔一段时间比如 3 秒的两次值作差后再计算出这段时间内的平均 CPU 使用率即我们知道了系统 CPU 使用率的计算方法那进程的呢跟系统的指标类似Linux 也给每个进程提供了运行情况的统计信息也就是 /proc/[pid]/stat。不过这个文件包含的数据就比较丰富了总共有 52 列的数据。小结CPU 使用率是最直观和最常用的系统性能指标更是我们在排查性能问题时通常会关注的第一个指标。所以我们更要熟悉它的含义尤其要弄清楚用户%user、Nice%nice、系统%system 、等待 I/O%iowait 、中断%irq以及软中断%softirq这几种不同 CPU 的使用率。比如说用户 CPU 和 Nice CPU 高说明用户态进程占用了较多的 CPU所以应该着重排查进程的性能问题。系统 CPU 高说明内核态占用了较多的 CPU所以应该着重排查内核线程或者系统调用的性能问题。I/O 等待 CPU 高说明等待 I/O 的时间比较长所以应该着重排查系统存储是不是出现了 I/O 问题。软中断和硬中断高说明软中断或硬中断的处理程序占用了较多的 CPU所以应该着重排查内核中的中断服务程序。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90831.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!