56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0
58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0
60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0
58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0
vmstat输出的第一行总是可以忽略 。在"procs"下面标着"r"的一列是等待获得CPU的进程运行队列中的进程数 。"id"列是CPU空闲时间 。这台机器没有足够的CPU资源以满足进程运行的需要,这可以从它的大部分CPU时间花在用户空间里看出来(看"us"列) 。
这里有两种办法可供采用——第一,增加更多的CPU,或者第二,对应用程序的代码作性能分析看看是不是应用程序的某部分可以优化 。对代码片断作优化可能会需要非常大量的努力——而且有时候收到的效果很少 。在关系到时间的时候,最好在考虑你可能的“投资回报”时现实一点 。
2.3.2. mpstat -使用mpstat命令
mpstat命令报告每个处理器的统计信息,表格中的每一行代表一个处理器的活动情况 。
$ mpstat 5
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 20 0 3592 3350 2338 1355 43 184 285 0 4578 9 6 1 84
1 19 0 304 465 283 2139 135 398 140 0 6170 9 6 1 85
2 25 0 352 507 295 2153 158 433 183 0 7508 12 7 1 81
3 26 0 357 513 302 2082 155 425 181 0 7460 12 7 0 81
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 3 0 3879 3773 2754 1832 61 322 339 0 3424 12 7 0 81
1 2 0 555 544 264 3040 197 670 112 0 4828 15 6 0 78
2 11 0 188 595 269 3141 219 738 121 0 5291 18 6 1 75
3 65 0 185 585 279 2660 211 673 110 0 5420 22 9 0 69
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 6 0 4028 3633 2620 1695 51 287 343 0 2857 12 8 0 80
1 7 0 150 545 265 3044 196 663 117 0 4374 14 4 0 81
2 14 0 226 602 279 2823 225 707 103 0 4715 22 4 1 73
3 2 0 125 600 282 2810 230 699 118 0 4665 18 4 0 78
mpstat可以确定每一个CPU都在花时间做什么:比如,分配给系统、用户、等待、空闲时间、系统调用、锁竞争、中断、错误、交叉调用 。
有关每一列的详细含义请看mpstat(1M)的手册页 。
2.3.3. iostat -使用iostat命令
iostat命令报告磁盘的使用情况 。表格中的每一行代表一个磁盘的活动信息 。常用的选项有这些:
选项
说明
N
按cXtYdZ格式指定磁盘 。
X
报告扩展统计信息 。
z
这个选项在Solaris 8操作环境中是新的 。它使得在采样间隔中没有磁盘活动的那些行被省略掉,这样可以让输出简短一些并且突出那些有活动的磁盘 。
p和P
报告分区前(per-partition)的I/O统计信息,当察看内存交换设备的时候有用 。
E
对于找出产生错误的磁盘有用 。
表1:iostat的选项
iostat也可以透过NFS报告磁盘活动,不过可能产生比较长的报告 。
2.3.4. truss -你的朋友
truss(1M)工具执行制定的命令并且生成一个追踪记录,包括它执行的系统调用、接收到的信号、导致的机器错误(traps/interruptions——译者注) 。
truss也可以用来追踪一个正在退出的进程 。这是一个非常有用的工具,可以定位应用程序向内核请求了哪些变慢了或者是被过度使用的资源 。
如果你不了解truss,那么可以看看手册页并且试一试 。-m选项对于显示例如页面错误这样的错误非常有用 。-c选项可以给出这样一个汇总信息:
系统调用
错误
信号
在每一类型系统调用上累计的时间
失败的系统调用数目
2.3.5. lockstat -资源竞争
内核锁可以保护对数据结构的多重更新,并且控制对诸如磁盘缓存、网络缓存、各种内核缓存这些资源的访问 。
推荐阅读
- 离婚与无效婚姻的区别主要是什么
- 968的优点与不足----优点
- Solaris 系统概念
- Xinetd 在 Solaris 8 安装配置过程
- Sun 的PROM状态命令与参数
- Solaris 安装GCC编译器
- 骑马与砍杀2精炼钢怎么获得
- Sun Solaris 用户手册 -- 九. 数据备份和传输工具
- Solaris Net Install SUNOS
- 酱香型白酒和浓香型白酒的区别 酱香型白酒与浓香型白酒有什么区别
