我在T3体系结构中遇到问题,db进程没有充分利用cpu的线程功能.我想了解11g和10g如何利用线程以及我是否可以从系统验证这些查询.
如何判断solaris进程是否并行化并利用cpu中的线程?
只需运行prstat并查看最后一列,标记为PROCESS/NLWP.
NLWP 表示轻量级进程的数量,这正是进程当前在Solaris中使用的线程数,因为lwp和用户线程之间存在一对一的映射.
单线程进程将显示1在那里,而多线程进程将显示更大的数字.
例如:
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP ... 12905 root 4472K 3640K cpu0 59 0 0:00:01 0.4% prstat/1 18403 monitor 474M 245M run 59 17 1:01:28 9.1% java/103 4102 oracle 12G 12G run 59 0 0:00:12 4.5% oracle/1
这里prstat和oracle是单线程的,而java是多线程的(它总是)
您可以使用-L和-p选项深入了解多线程进程的各个线程活动,例如 prstat -L -p pid
这将按CPU活动排序的每个线程显示一行.在这种情况下,最后一列将被标记PROCESS/LWPID,LWPID是线程ID.如果多个线程显示重要活动,您的流程将积极利用多线程.
| 归档时间: |
|
| 查看次数: |
12473 次 |
| 最近记录: |