1、1.top使用权限:所有使用者使用方式:top - d delay q c S s i n b说明:即时显示 process 的动态d :改变显示的更新速度,或是在交谈式指令列( interactive command)按 sq :没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的 CPU time 累积起来s :安全模式,将交谈式指令取消,避免潜在的危机i :不显示任何闲
2、置(idle) 或无用 (zombie)的行程n :更新的次数,完成后将会退出 topb :批次档模式,搭配“n“ 参数一起使用,可以用来将 top 的结果输出到档案内范例:显示更新十次后退出;top -n 10使用者将不能利用交谈式指令来对行程下命令:top -s将更新显示二次的结果输入到名称为 top.log 的档案里:top -n 2 -b top.log 另附一个命令简介 linux traceroutewindows tracert 两个命令相当,跟踪网络路由2.vmstat正如我们之前讨论的任何系统的性能比较都是基于基线的,并且监控 CPU 的性能就是以上 3点,运行队列、CPU
3、使用率和上下文切换。以下是一些对于 CPU 很普遍的性能要求:1.对于每一个 CPU 来说运行队列不要超过 3,例如,如果是双核 CPU 就不要超过 6;2.如果 CPU 在满负荷运行,应该符合下列分布,a) User Time:65% 70%b) System Time:30%35%c) Idle:0%5%3. mpstat对于上下文切换要结合 CPU 使用率来看,如果 CPU 使用满足上述分布,大量的上下文切换也是可以接受的。常用的监视工具有:vmstat, top,dstat 和 mpstat.# vmstat 1procs -memory- -swap- -io- -system- -
4、cpu-r b swpd free buff cache si so bi bo in cs us sy id wa0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 00 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 00 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0r 表示运行队列的大小,b 表示由于 IO 等待而 block 的线程数量,in 表示中断的数量,cs 表示上下文切换的数量,us 表示用户 CPU 时间,sys 表示
5、系统 CPU 时间,wa 表示由于 IO 等待而是 CPU 处于 idle 状态的时间,id 表示 CPU 处于 idle 状态的总时间。dstat 可以给出每一个设备产生的中断数:# dstat -cip 1-total-cpu-usage- -interrupts- -procs-usr sys idl wai hiq siq| 15 169 185 |run blk new6 1 91 2 0 0| 12 0 13 | 0 0 01 0 99 0 0 0| 0 0 6 | 0 0 00 0 100 0 0 0| 18 0 2 | 0 0 00 0 100 0 0 0| 0 0 3 | 0
6、 0 0我们可以看到这里有 3 个设备号 15,169 和 185.设备名和设备号的关系我们可以参考文件/proc/interrupts,这里 185 代表网卡 eth1.# cat /proc/interruptsCPU00: 1277238713 IO-APIC-edge timer6: 5 IO-APIC-edge floppy7: 0 IO-APIC-edge parport08: 1 IO-APIC-edge rtc9: 1 IO-APIC-level acpi14: 6011913 IO-APIC-edge ide015: 15761438 IO-APIC-edge ide1169
7、: 26 IO-APIC-level Intel 82801BA-ICH2185: 16785489 IO-APIC-level eth1193: 0 IO-APIC-level uhci_hcd:usb1mpstat 可以显示每个 CPU 的运行状况,比如系统有 4 个 CPU。我们可以看到:# mpstat P ALL 1Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/200605:17:31 PM CPU %user %nice %system %idle intr/s05:17:32 PM all 0.00 0.00 3.19 9
8、6.53 13.2705:17:32 PM 0 0.00 0.00 0.00 100.00 0.0005:17:32 PM 1 1.12 0.00 12.73 86.15 13.2705:17:32 PM 2 0.00 0.00 0.00 100.00 0.0005:17:32 PM 3 0.00 0.00 0.00 100.00 0.00总结的说,CPU 性能监控包含以下方面:检查系统的运行队列,确保每一个 CPU 的运行队列不大于 3.确保 CPU 使用分布满足 70/30 原则(用户 70%,系统 30%)。如果系统时间过长,可能是因为频繁的调度和改变优先级。CPU Bound 进程总是
9、会被惩罚(降低优先级)而 IO Bound 进程总会被奖励(提高优先级)。4.prstat 命令要显示系统上当前运行的进程和项目的各种统计信息,请使用带有-J 选项的 prstat 命令:%prstat -JPID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP21634 jtd 5512K 4848K cpu0 44 0 0:00.00 0.3% prstat/1324 root 29M 75M sleep 59 0 0:08.27 0.2% Xsun/115497 jtd 48M 41M sleep 49 0 0:08.26 0
10、.1% adeptedit/1328 root 2856K 2600K sleep 58 0 0:00.00 0.0% mibiisa/111979 jtd 1568K 1352K sleep 49 0 0:00.00 0.0% csh/11977 jtd 7256K 5512K sleep 49 0 0:00.00 0.0% dtterm/1192 root 3680K 2856K sleep 58 0 0:00.36 0.0% automountd/51845 jtd 24M 22M sleep 49 0 0:00.29 0.0% dtmail/111009 jtd 9864K 8384K
11、 sleep 49 0 0:00.59 0.0% dtwm/8114 root 1640K 704K sleep 58 0 0:01.16 0.0% in.routed/1180 daemon 2704K 1944K sleep 58 0 0:00.00 0.0% statd/4145 root 2120K 1520K sleep 58 0 0:00.00 0.0% ypbind/1181 root 1864K 1336K sleep 51 0 0:00.00 0.0% lockd/1173 root 2584K 2136K sleep 58 0 0:00.00 0.0% inetd/1135
12、 root 2960K 1424K sleep 0 0 0:00.00 0.0% keyserv/4PROJID NPROC SIZE RSS MEMORY TIME CPU PROJECT10 52 400M 271M 68% 0:11.45 0.4% booksite0 35 113M 129M 32% 0:10.46 0.2% systemTotal: 87 processes, 205 lwps, load averages: 0.05, 0.02, 0.02要显示系统上当前运行的进程和任务的各种统计信息,请使用带有-T 选项的 prstat 命令:%prstat -TPID USER
13、NAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP23023 root 26M 20M sleep 59 0 0:03:18 0.6% Xsun/123476 jtd 51M 45M sleep 49 0 0:04:31 0.5% adeptedit/123432 jtd 6928K 5064K sleep 59 0 0:00:00 0.1% dtterm/128959 jtd 26M 18M sleep 49 0 0:00:18 0.0% .netscape.bin/123116 jtd 9232K 8104K sleep 59 0 0:00
14、:27 0.0% dtwm/529010 jtd 5144K 4664K cpu0 59 0 0:00:00 0.0% prstat/1200 root 3096K 1024K sleep 59 0 0:00:00 0.0% lpsched/1161 root 2120K 1600K sleep 59 0 0:00:00 0.0% lockd/2170 root 5888K 4248K sleep 59 0 0:03:10 0.0% automountd/3132 root 2120K 1408K sleep 59 0 0:00:00 0.0% ypbind/1162 daemon 2504K
15、 1936K sleep 59 0 0:00:00 0.0% statd/2146 root 2560K 2008K sleep 59 0 0:00:00 0.0% inetd/1122 root 2336K 1264K sleep 59 0 0:00:00 0.0% keyserv/2119 root 2336K 1496K sleep 59 0 0:00:02 0.0% rpcbind/1104 root 1664K 672K sleep 59 0 0:00:03 0.0% in.rdisc/1TASKID NPROC SIZE RSS MEMORY TIME CPU PROJECT 222 30 229M 161M 44% 0:05:54 0.6% group.staff 223 1 26M 20M 5.3% 0:03:18 0.6% group.staff 12 1 61M 33M 8.9% 0:00:31 0.0% group.staff 1 33 85M 53M 14% 0:03:33 0.0% system Total: 65 processes, 154 lwps, load averages: 0.04, 0.05, 0.06 注-J 和 -T 选项不能一起使用。