(转)solaris上应该如何监控CPU使用情况

在solaris系统上,通常可以使用top和prstat命令监控CPU使用情况。但仅使用这两个命令还不够,因为这两个命令看到的CPU使用率是占全部CPU的比例。也就是说,如果服务器有10个CPU,其中9个CPU使用率为0,1个CPU使用率为100%,那么这两个命令看到的CPU使用率是10%。从整体上看似乎不存在CPU瓶颈,但实际上那个使用率为100%的CPU很可能就是系统性能不佳的根本原因。

solaris10提供了mpstat命令,这个命令可以用来监控单个CPU的使用情况。

以下是我们的系统上发生的一个实例:

1. 用top监控CPU使用情况

last pid: 18914; load avg: 1.02, 1.02, 1.02; up 0+07:20:32
119 processes: 117 sleeping, 2 on cpu
CPU states: 96.8% idle, 3.1% user, 0.0% kernel, 0.0% iowait, 0.0% swap
Memory: 16G phys mem, 11G free mem, 16G total swap, 16G free swap

PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
27963 ols 13 0 0 1278M 1273M cpu/24 197:27 3.13% cchd
18909 root 1 59 0 3624K 2160K cpu/9 0:00 0.00% top
18696 root 1 59 0 3472K 2576K sleep 0:00 0.00% mpstat

top命令显示CPU使用率仅有3%左右,似乎CPU上不存在问题。

2. 用prstat命令监控进程CPU使用情况

PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
27963 ols 1328M 1324M cpu8 30 0 3:38:48 3.1% cchd/13
19233 root 9744K 5624K sleep 59 0 0:00:00 0.0% sshd/1
1085 root 19M 10M sleep 59 0 0:00:04 0.0% fmd/24
787 root 1832K 776K sleep 59 0 0:00:00 0.0% evhandsd/1
862 root 2800K 1296K sleep 59 0 0:00:00 0.0% dcs/1

prstat显示CPU使用率最高的进程CPU使用率仅占3.1%,看起来也没什么问题。

3. 用mpstat使用查看

#> mpstat 5
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 63 0 2187 443 23 339 10 44 119 0 2510 4 2 0 94
1 108 0 4088 324 44 428 9 51 141 0 3745 5 2 0 93
2 53 0 2674 168 9 281 8 37 101 0 1604 2 1 0 97
3 15 0 1113 120 4 207 7 29 76 0 897 2 1 0 97
4 43 0 1553 139 13 244 7 31 82 0 1221 2 1 0 97
5 112 0 4116 244 42 416 8 45 135 0 3848 4 2 0 94
6 52 0 2711 127 7 245 7 31 90 0 1153 2 1 0 97
7 14 0 988 87 3 162 6 22 63 0 641 1 1 0 98
8 20 0 872 83 3 162 6 22 62 0 570 1 1 0 98
9 58 0 2851 169 19 321 7 34 109 0 1993 3 2 0 96
10 114 0 4153 248 40 449 8 48 144 0 3591 6 2 0 92
11 16 0 1201 90 3 177 6 25 67 0 555 1 1 0 98
12 16 0 982 81 3 158 6 22 61 0 545 2 1 0 98
13 69 0 3293 171 21 324 7 33 110 0 2124 4 2 0 94
14 118 0 4084 250 42 451 8 47 145 0 3823 7 2 0 91
15 17 0 1301 93 7 175 6 25 68 0 608 2 1 0 97
16 24 0 1535 286 175 219 7 28 86 0 826 1 1 0 97
17 28 0 1862 105 10 200 6 24 75 0 900 1 1 0 98
18 49 0 2281 159 39 256 7 30 91 0 1589 4 1 0 95
19 106 0 3583 271 67 438 8 44 133 0 3340 4 2 0 94
20 36 0 1628 133 30 217 7 26 82 0 784 1 1 0 97
21 27 0 2037 102 6 203 6 24 75 0 820 2 1 0 97
22 55 0 2524 159 39 258 7 29 95 0 1653 2 1 0 97
23 103 0 3460 245 44 435 8 44 134 0 3587 8 2 0 89
24 137 0 3523 244 41 436 8 45 138 0 3825 7 2 0 91
25 28 0 1870 104 5 208 7 27 76 0 835 1 1 0 98
26 33 0 1934 101 4 204 6 24 75 0 1001 1 1 0 98
27 40 0 2121 145 16 278 7 28 92 0 1529 3 1 0 96
28 100 0 3795 241 41 434 8 44 138 0 3745 8 2 0 90
29 32 0 2018 102 4 207 6 27 76 0 814 1 1 0 98
30 34 0 1909 98 4 197 6 24 73 0 928 1 1 0 98
31 39 0 2053 148 17 274 7 28 91 0 1453 3 1 0 96
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 0 0 8 407 104 215 0 0 0 0 100 0 0 0 100
1 0 0 28 415 184 375 0 1 0 0 364 0 0 0 100
2 11 0 2 11 3 10 0 0 2 0 287 0 0 0 100
3 0 0 1 9 3 8 0 0 0 0 0 0 0 0 100
4 0 0 2 106 50 104 0 0 0 0 50 0 0 0 100
5 0 0 1 20 8 17 0 0 0 0 14 0 0 0 100
6 0 0 1 8 1 5 0 0 0 0 1 0 0 0 100
7 0 0 0 2 1 1 0 0 0 0 2 0 0 0 100
8 5 0 0 6 0 0 5 0 0 0 24 100 0 0 0
9 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
10 0 0 0 2 0 0 0 0 0 0 0 0 0 0 100
11 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
12 0 0 0 2 1 0 0 0 0 0 0 0 0 0 100
13 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
14 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
15 0 0 0 5 4 0 0 0 0 0 0 0 0 0 100
16 0 0 0 7 6 0 0 0 1 0 0 0 0 0 100
17 0 0 1 3 2 0 0 0 0 0 0 0 0 0 100
18 0 0 1 38 18 36 0 0 0 0 35 0 0 0 100
19 0 0 4 41 18 49 0 1 1 0 153 0 0 0 100
20 0 0 0 2 0 0 0 0 0 0 0 0 0 0 100
21 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
22 0 0 0 3 1 2 0 0 0 0 0 0 0 0 100
23 0 0 1 9 2 7 0 0 0 0 5 0 0 0 100
24 0 0 1 113 55 111 0 0 0 0 60 0 0 0 100
25 0 0 1 6 1 3 0 0 0 0 1 0 0 0 100
26 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
27 0 0 1 9 1 10 0 0 0 0 1 0 0 0 100
28 0 0 1 58 26 57 0 0 0 0 60 0 0 0 100
29 0 0 0 5 2 4 0 0 0 0 1 0 0 0 100
30 0 0 0 1 0 0 0 0 0 0 0 0 0 0 100
31 0 0 1 15 4 6 0 0 1 0 25 0 0 0 100

mpstat显示出CPU8使用率为100%,而其它CPU使用率基本为0。而CPU8使用都是由user占用的,system占用为0,这说明CPU使用主要是由于user thread引起的,而不是kernel thread.

而从步骤2中可以看到使用CPU8的进程是cchd,这样就可以知道是哪个进程CPU占用率过高了。
http://space.itpub.net/228190/viewspace-673189
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值