如何在solaris中查看进程线程?

时间:2013-09-01 02:01:33

标签: solaris

我在T3体系结构中遇到问题,db进程没有充分利用cpu的线程功能。我想了解11g和10g如何利用线程以及我是否可以从系统验证这些查询。

如何判断solaris进程是否并行化并利用cpu中的线程?

1 个答案:

答案 0 :(得分:7)

只需运行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/LWPIDLWPID是线程ID。如果多个线程显示重要活动,您的流程将积极利用多线程。