- 论坛徽章:
- 0
|
感觉象应用编程的问题:
CPU idle time 空闲时间很多:38% - 87% //系统运行时,越少idle越好
系统自身CPU消耗不大:3% - 8% //系统运行时,负载所占比例越少越好
应用CPU负载也不大:17% - 53% //系统运行时,70-80%较好,毕竟是花钱所在
有不少pi/po,即内存与硬盘交互:
假定8KB/pages
内存从硬盘读入(pi): 从13136 pages/s * 8 == 100MB/s 到 24979 pages/s * 8 == 200MB/s, 大规模读入啊!
内存写回硬盘(po) : 从 0 MB/s 到 590 pages/s * 8 == 4MB/s, 小写硬盘输出,
内存扫描速度sr0常为0,无变化,且内存pi/po为非对称读入读出,非正常物理内存与硬盘虚拟内存交互,即在该32GB内存的系统未觉内存短缺,而为应用正常的pi/po,是典型大量读硬盘数据产生小量结果的应用,属于类似CRM/DSS等决策分析的应用。
CPU上线程等待b>0,w>0, 即常有应用线程阻塞,是否程序进程的各LWP存在大量互锁?即一个LWP线程的执行需与另一LWP线程有交互,没得到结果,系统时间片到了,系统自动切换到另一排队的LWP线程,即会存在大量content switch, cs数值变大, 与你的vmstat cs部分一致。
如真是这样,则为编程问题,非系统(内存或I/O)的问题,可将程序尽量并行处理,进程间不要依赖,进程间通讯通过共享内存或IPC,而线程间也不要互相依赖,线程间通讯最好通过共享的全局变量,。。。就这些喽, |
|