未加星标

[原]linux系统性能监控--CPU利用率

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

在对系统的方法化分析中,首要且最基本的工具之一常常是对系统的 CPU 利用率进 行简单测量。 linux 以及大多数基于 UNIX 的操作系统都提供了一条命令来显示系统的 平均负荷 (loadaverage) 。

[[email protected] ~]$ uptime 11:18:05 up 78 days, 1:17, 11 users, load average: 0.20, 0.13, 0.12

具体地讲,平均负荷值代表了在 1min、 5min和 15min内可以运行的任务平均数量。可运行的任务包括当前正在运行的任务以及虽然可以运行但正在等待某个处理器空闲的任务。本例中的系统只有两个 CPU,它可以通过查看/proc/cpuinfo的内容来确定

[[email protected] ~]$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz stepping : 4 cpu MHz : 2500.000 cache size : 25600 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat xsaveopt pln pts dts fsgsbase smep bogomips : 5000.00 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz stepping : 4 cpu MHz : 2500.000 cache size : 25600 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat xsaveopt pln pts dts fsgsbase smep bogomips : 5000.00 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:

在本例中,对于两个处理器存在两项,因此平均情况下,处理器要执行的工作会稍少于它的处理能力。在较高层次上,这意味着机器需要执行的工作少于它的处理能力。注意:若在双 CPU的机器上 uptime命令显示的负荷平均值小于 2.00的话,这表明处理器仍拥有额外的空闲周期。在 4个 CPU的机器上如果负荷平均值小于 4.00的话也表明同样的情况,如此等等。然而,负荷平均值单独并不能说明全部问题。

尽管该工具可以检测CPU获得了利用情况, 但它并不指明系统正在执行什么工作以及如此繁忙的原因。如果该系统的用户响应时间是可接受的,可能没有任何理由需要更深入地探究系统的运行情况。

诸如uptime之类的简单工具常常是用户试图对应用各种可觉察的缓慢响应时间加以解释的快捷方式。若系统的平均负荷值表明响应时间可能是由单个(或多个)过载的处理器所引起的,那么可以使用许多其他工具来缩小负荷起因的范围。

为了更深入地探究处理器的使用情况,下面介绍的 3种工具可以提供许多关于CPU利用情况的不同理解: vmstat、 iostat和 top。 这些工具各自关注系统监视的不同方面,但都可获得关于处理器当前使用情况的不同视图。特别地,下一个步骤是理解处理器是否将处理时间主要消耗在操作系统(经常称为内核空间)或应用(经常称为用户空间)之中,或者处理器是否处于空闲状态。如果处理器处于空闲状态,则理解其空闲的原因是所有进一步性能分析的关键。有许多原因可以导致处理器空闲。例如,最明显的原因是某个进程无法运行。 这听起来或许过于明显, 但如果工作负荷的某个组件(例如特定进程或任务)没有正在运行的话,则性能可能受到影响。在某些情况下,对组件实施缓存或后退(fallback)机制可以允许一些应用继续运行, 尽管吞吐率会降低。 例如, Internet域名服务经常被配置为对 named守护进程或者 off-host服务进行查询。如果某个域名服务提供商(例如出现在/etc/resolv.conf的第一行 name server语句中)当前没有运行,则在查询其他信息提供商之前可能存在一个超时周期。对于用户来说,这可能看起来像是应用中的不定时延迟。对于使用 uptime来监视系统的用户来说,平均负荷值看起来可能不是很高。然而,在这种情况下,vmstat的输出可以有助于缩小排查问题的范围。

一、vmstat

vmstat是一个实时性能监视工具。该工具提供了有助于发现系统异常活动的数据,例如会降低系统性能的过多页面错误或上下文切换次数。这些数据的显示频率可由用户指定。vmstat输出样本如下所示:

[[email protected] ~]$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 3853948 1386860 43092 5049692 1 6 5 34 1 3 27 27 46 0 0 vmstat 提供以下信息 : procs 部分提供了在生成报告时正在运行的进程数目 (r) 以及被阻塞的进程数目 (b) 。 可以利用这些信息来检查运行中以及阻塞进程的数目是否与预期值相符。如果与 预期不符的话,可以检查:应用和内核的参数、系统调度器和 I/O 调度器、进程 在可用处理器之间的分布等。 memory 部分提供了换出内存 (swpd) 、空闲内存 (free) 、 I/O 数据结构的缓冲区缓存 (buff) ,以及从磁盘读取文件的内存缓存 (cache) 的容量,单位为 KB 。 swpd 的取值反映了 kswapd 的活动情况 。

s wap 部分提供了从磁盘上换入的内存容量 (si) 以及换出到磁盘上的内存量 (so) , 单位为 KB/s 。 so 反映了当数据被换出至交换区时 kswapd 的活动情况,而 si 则反映了当页面被换回到物理内存时发生页面错误的情况 。


io 部分提供了从设备读入的块数 (bi) 以及写出到设备上的块数 (bo) ,单位为 KB/s 。当运行 I/O 密集的应用时,应特别注意这两个部分的值 。

system 部分提供了每秒的中断数目 (in) 和上下文切换数目 (cs) 。

cpu 部分提供了用户 (us) 、 系统 (sy) 、 真正空闲 (id) 以及等待 I/O 完成 (wa) 在 CPU 总时间中所占的百分比。 CPU 利用率也许是最常用的量度。 若 wa 值过大, 则应该检查 I/O 子系统,例如,可以断定需要更多的 I/O 控制器和磁盘以便减少 I/O 等待时间。

注意 uptime 提供了可运行进程数目在 3 个时间范围 (1min 、 5min 和 15min) 内的另一种视图。 因此, 如果 uptime 给出的平均负荷值在任何时间范围内都大于 1 ,则 vmstat 报告的可运行任务数量也应该接近 1 。

vmstat

能够以重复的时间间隔定期提供信息,因此可通过以下命令获得动态的系统视图

vmstat 5 10 上述命令的含义是每 5s 输出 vmstat 信息, 共执行 10 次。 另外, 若根据 uptime 的输出结果, 平均负荷值在过去的 1/5/10min 内一直为 1 , 则该命令的输出结果通常应该在每个输出行均显示一项可运行的任务。 在 vmstat 的输出信息中出现峰值为 5 、 7 甚至 20 的情况并不奇怪。因为负荷平均值是一

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

分页:12
转载请注明
本文标题:[原]linux系统性能监控--CPU利用率
本站链接:http://www.codesec.net/view/481964.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(34)