注: 运行队列有进程等待时系统运行速度会降低。
id CPU 空闲时间或无I/O等待时间的百分比;
wa CPU I/O 等待时间的百分比;
r 运行队列中的线程数;
如果 id 和wa 的值持续为接近0的值,sample明CPU此时处于繁忙状态。
下面来看看字段r(运行队列中的线程数)。运行队列中等待的线程数越多,系统性能受到的影响越大。
2. tprof
tprof命令用于统计每个进程的CPU使用情况。
以超级用户root的身份运行下列命令,可以找出进程占用的CPU时间:
# tprof -x sleep 30
此命令运行30秒钟,在当前目录下创建一个名为_prof.all 的文件。30秒钟内, CPU被调度次数约为3000次。__prof.all 文件中的字段Total 为此进程调度到的CPU次数。如果进程所对应的 Total字 段的值为1500,sample示该进程在3000次 CPU调度中占用了1500次,或理解为使用了一半的CPU时间。tprof的输出准确地显示出哪个进程在使用CPU 时间。
__prof.all文件示例:
3. netpmon
netpmon命令用于监控与网络有关的I/0及CPU的使用情况。
以root 身份运行下面的命令,可以找出进程使用的CPU时间,以及其中与网络有关的代码使用的CPU时间:
# netpmon -o /tmp/netpmon.out -O cpu -v; sleep 30; trcstop
此命令运行30 秒钟,并在/tmp目录下生成文件 netpmon.out。其中字段 CPU Time 为进程使用CPU
的时间总值,CPU%对应其百分比,Network CPU% 为进程中与网络有关的代码所占用的CPU百分比。如下所示:
输入输出(I/O)瓶颈
1. iostat
iostat命令用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量。
运行命令:
iostat 5 10
将显示10次统计结果,下面为其中一次的数据:
其中
%iowait 等待本地 I/O 时CPU 空闲时间的百分比
%idle 未等待本地 I/O 时CPU 空闲时间的百分比
当没有需使用CPU的进程但至少有一个进程在等待I/O 时, CPU时间属性标为iowait。如果iowait 时间的百分比很高,sample示该磁盘输入输出(I/O)是导致系统运行速度缓慢的主要原因。
%tm_act 硬盘繁忙的百分比
注: tm_act的值很高,sample明硬盘存在I/O瓶颈。
当%tm_act(硬盘繁忙时间)很高时,可能会感觉到系统运行速度在减慢。有些系统上某个硬盘的%tm_act值为60%或更高时,系统性能就会受到影响。
两点建议:
1. 观察繁忙与空闲的硬盘,将数据从忙的盘移至相对空闲的的盘上,这会在一定程度上减轻由此引起的I/O 瓶颈。
2. 依照上面"内存瓶颈"中介绍的方法检查内存换页的频繁程度。大量的换页操作会增加I/O负载。
2. filemon
filemon 命令用于查看哪些文件/逻辑卷/硬盘处于繁忙状态。在系统I/O 处于繁忙状态时运行下面的命令:
# filemon -u -O all -o /tmp/fmon.out; sleep 30; trcstop
30秒钟后会生成记录跟踪信息的文件 /tmp/fmon.out。从该文件中可以找出:
1. 最为繁忙的虚拟内存段(segment)、逻辑卷和物理卷;
2. 对页空间(paging space)的读写次数,确认硬盘I/O 是由于应用程序操作还是频繁的换页操作;
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2122 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 下一页
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 灌水 拒绝 欢迎 系统 文件 命令 使用 内存 可以 安装 |
注册
个人空间
