[huangc@V-02-01-00860~]$top top-15:17:44up78days,5:17,13users,loadaverage:0.00,0.10,0.12 Tasks:227total,1running,225sleeping,1stopped,0zombie Cpu(s):7.8%us,12.1%sy,0.0%ni,79.9%id,0.0%wa,0.0%hi,0.2%si,0.0%st Mem:8193720ktotal,6315000kused,1878720kfree,47436kbuffers Swap:4128760ktotal,3852496kused,276264kfree,5054928kcached PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND 2301seeproxy2002196m13m660S15.50.215285:39/home/seeproxy/seeproxy/python27/bin/python/home/seeproxy/seeproxy/seeproxy.p 30824huangc200872m17441096S7.30.064:05.38hsserver-fwarmstandby_hc.xml-startproxysvr-tar-s1-status0 32729zhouds2001958m41m936S4.60.562:54.17hsserver-ffront_demo.xml-startmainsvr-tar-s0-status0 32740zhouds2002818m35m736S4.60.471:29.01/home/zhouds/linux.x64/bin/hsserver-fqueue_demo.xml-tar-s0-d/home/zhou 1307shizj200144g335m800S4.04.260:50.38hsserver-fshizj_uft.xml-startmainsvr-tar-s0-uft_status1-system_type 498zhouds2002722m48m5920S3.30.646:57.94hsserver-fuft_demo.xml-startmainsvr-tar-s0-status0-system_type0-l 1496shizj20026.6g11m1188S3.30.143:37.45hsserver-fshizj_init.xml-startmainsvr-tar-s0-status0 30829huangc2001355m19m796S3.30.245:27.38/home/huangc/linux.x64/bin/hsserver-fwarmstandby_hc.xml-tar-s1-d/home/ 1303shizj2001286m6120728S2.30.130:22.74hsserver-fshizj_arb.xml-startarbsvr-tar-s0-status0 32723zhouds2001234m17m668S2.30.233:27.00hsserver-farb_demo.xml-startarbsvr-tar-s0-status0 32725zhouds200614m632392S1.60.017:38.62hsserver-fqueue_demo.xml-startproxysvr-tar-s0-status0 13284huangc200150361336948R1.00.00:00.10top 1341root2008229214121104S0.30.0154:38.71/usr/sbin/vmtoolsd 1750root20013584288220S0.30.015:07.26lldpad-d 1root20019364312136S0.00.00:15.99/sbin/init 2root200000S0.00.00:00.68[kthreadd] 3rootRT0000S0.00.00:10.29[migration/0] 4root200000S0.00.036:04.74[ksoftirqd/0] 5rootRT0000S0.00.00:00.00[migration/0] [huangc@V-02-01-00860~]$ |
top的输出结果中包括以下信息:
· 第 1 行显示系统正常运行时间,包括当前时间、 系统自从上次重启后已运行的时间长度、 当前用户数量, 以及 3 个用于表示在先前的 1min 、 5min 和 15min 内准备运行的平均处理器数目的平均负荷值。
· 第 2 行给出进程的统计信息,包括在 top 输出结果的上次更新之际正在运行的进程 总数。 这一行还显示睡眠中的进程、 运行中的进程、 僵尸进程以及已停止进程的数目。
· 第 3 行和第 4 行显示各个 CPU 的统计信息,包括用户进程、 系统进程、 niced 进程 以及空闲进程所占用的 CPU 时间百分比。
· 第 5 行提供了内存统计信息,包括内存总量、已用内存量、空闲内存量、不同进程 共享的内存量,以及用作缓冲区的内存量。
· 第 6 行显示了虚存或交换活动的统计信息,包括交换空间总量、已用的交换空间大 小、空闲的交换空间大小以及缓存的交换空间大小。
其余各行显示了具体进程的统计信息。一些更有用的 top
参数如下所示:
· d 输出数据的更新延迟。
· p 只显示指定进程的信息。最多可指定 20 个进程。
· S 显示进程及其子进程所占用时间的汇总信息,还给出进程的停工时间。
· I 不报告空闲进程的信息。
· H 显示进程的所有线程信息。
· N 生成报告的次数。
top 还提供了一种动态模式修改所报告的信息。按下 F 键可以激活动态模式。再按下 J 键, 就可以添加一个新列来显示某个当前执行的进程最近使用的 CPU时间。
三、sar工具
sar 是 sysstat 工具包的组成部分。它收集并报告操作系统中广泛的系统活动,包括 CPU 利用率、 上下文切换和中断速率、 页换入和页换出速率、 共享内存使用情况、 缓冲区使用情况以及网络使用情况 。 sar(1)
工具很有用, 它不断地收集系统活动信息并将其记录到一组日志文件中, 从而有可能在报告性能衰退事件之前以及在该事件之后评估性能问题 。
sar 常常用于确定事件的时间,也可用于标识特定的系统行为变化。 sar 可以使用更短的时间间隔或固定数目的时间间隔来输出信息,这非常类似于 vmstat 。基于数量和时间间隔参数的取值, sar 工具以指定的时间间隔 ( 以秒为单位 ) 执行指定次数的信息输出操作。另外, sar可以为所收集的许多数据点提供平均信息。
1、CPU利用率
[huangc@V-02-01-00860 ~]$ sar -u -P ALL -C 5 Linux 2.6.32-431.el6.x86_64 (V-02-01-00860) 10/12/16 _x86_64_ (2 CPU) 15:50:19 CPU %user %nice %system %iowait %steal %idle 15:50:24 all 3.38 0.00 5.28 0.00 0.00 91.34 15:50:24 0 3.39 0.00 5.30 0.00 0.00 91.31 15:50:24 1 3.36 0.00 5.25 0.00 0.00 91.39 15:50:24 CPU %user %nice %system %iowait %steal %idle 15:50:29 all 3.17 0.00 4.66 0.00 0.00 92.17 15:50:29 0 3.40 0.00 4.25 0.00 0.00 92.36 15:50:29 1 2.75 0.00 5.08 0.00 0.00 92.16 15:50:29 CPU %user %nice %system %iowait %steal %idle 15:50:34 all 2.95 0.00 5.16 0.00 0.00 91.89 15:50:34 0 3.36 0.00 5.25 0.00 0.00 91.39 15:50:34 1 2.75 0.00 4.86 0.00 0.00 92.39 |
网络和磁盘服务进程是耗用 CPU 的系统组件之一。当操作系统生成 I/O 活动时, 相应的设备子系统会作出响应,并使用硬件中断信号来指示 I/O 请求已完成。 操作系统对这些中断进行计数。 输出结果有助于可视化呈现网络和磁盘 I/O 活动的速率。 sar(1) 提供了这种输入。利用性能基线也许可以对系统中断速率进行跟踪,这将是操作系统开销的另一个来源或者系统性能潜在变化的指示器。“ -I SUM ” 选项可以生成如下信息,包括每秒的中断总次数。“ -I ALL ” 选项可以为每个中断源提供类似信息 ( 未显示 )。
2、中断速率
10:53:53 INTR intr/s 10:53:58 sum 4477.60 10:54:03 sum 6422.80 10:54:08 sum 6407.20 10:54:13 sum 6111.4010:54:18 sum 6095.40 10:54:23 sum 6104.81 10:54:28 sum 6149.80 . . . Average: sum 4416.5 |
在 可以通过 sar -A 命令获得基于 CPU 的中断分布视图 ( 以下示例摘录自完整的输出结果 ) 。注意系统的 IRQ 取值为 0 、 1 、 2 、 9 、 12 、 14 、 17 、 18 、 21 、 23 、 24 和 25。
3、中断分布
中断分布的研究可能揭示出中断处理机制中的不平衡性。下一步需要对调度器进行分析。解决该问题的一种方法是通过为特定设备的中断 ( 或 IRQ) 设置与某个特定 CPU 或一组 CPU 相关的亲合度,将 IRQ
处理绑定到特定的某个处理器或许多处理器上。 例
如,如果
0x0001 被回显到 /proc/irq/ID( 其中 ID 对应于一个设备 ) ,则只有 CPU 0 才处理该设备的 IRQ ;如果 0x000f 被回显到 /proc/irq/ID ,则 CPU 0 ~ CPU 3 将负责处理该设备的 IRQ 。对于某些工作负荷而言,这种技术可以减少在繁重使用的特定处理器上发生的竞争现象。这项技术可以更高效地处理 I/O 中断,从而相应地提高 I/O 性能 。