是否有可以告訴我Solaris運行隊列中有什麼的命令? 我可以使用vmstat獲得計數,但我需要知道哪些進程/線程在那裏。Solaris CPU運行隊列
1
A
回答
4
運行隊列總是在變化,所以幾乎不可能在當前運行隊列中獲取進程集。
也就是說,您可以通過查看ps
的進程列表的STAT
(狀態)字段來獲得近似值。當運行以下命令:
$ ps aux
...的,如果STAT
場R
開頭,這個過程被標記爲內核,這在大多數操作系統意味着它在運行隊列RUNNABLE
。以下是一個可運行的過程看起來像我的機器上:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 78179 0.0 0.0 599828 480 s003 R+ 7:51AM 0:00.00 ps aux
在Solaris上,您還可以使用prstat
命令,並期待在STATE
列。值run
指示進程在運行隊列上。 (另請注意,值cpuN
表示該進程目前處理器N.
運行,例如:
$ prstat -s cpu -n 5
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
13974 kincaid 888K 432K run 40 0 36:14.51 67% cpuhog/1
27354 kincaid 2216K 1928K run 31 0 314:48.51 27% server/5
14690 root 136M 46M sleep 59 0 0:00.59 2.3% Xsun/1
14797 kincaid 9192K 7496K sleep 59 0 0:00.10 0.9% dtwm/8
14851 kincaid 24M 14M sleep 48 0 0:00.03 0.3% netscape/1
Total: 97 processes, 190 lwps, load averages: 2.18, 2.15, 2.11
1
我正要糾正0xFE的答案,當我看到你已經做到了運行隊列包含的不是進程,所以如果你想讓「狀態運行」行的數量與運行隊列的匹配程度更多或更少,那麼-L選項對於prstat命令是強制性的。注意採樣工件可能會阻止獲得準確的匹配。
在任何情況下,如果您想要精確知道哪些進程/線程是sitti在運行隊列中,假設您運行的是Solaris 10或更新的版本,則寧願採用dtrace方式。
可能已經在/ usr /演示/ DTrace的目錄你的機器上的whoqueue.d腳本將是一個良好的開端:
# dtrace -s /usr/demo/dtrace/whoqueue.d
Run queue of length 1:
24349/1 (dtrace)
Run queue of length 3:
0/0 (sched)
0/0 (sched)
0/0 (sched)
Run queue of length 4:
22468/30 (java)
22468/17 (java)
22468/23 (java)
22468/10 (java)
看一看this page瞭解詳情。
+0
謝謝。我不需要非常高的準確度,1秒內的prstat對我來說已經足夠了。我無法在Solaris 9上使用dtrace。 – Vasu 2010-02-17 13:15:08
相關問題
- 1. 扭曲CPU隊列任務的隊列
- 2. Solaris進程佔用大CPU
- 3. 確定CPU utilization-在solaris UNIX
- 4. 不斷運行的隊列
- 5. 運行在CPU
- 6. 隊列在Laravel隊列上運行X個下一個任務
- 7. Oracle高級隊列:運行時更改隊列屬性
- 8. 拆分隊列並始終運行
- 9. 在運行時創建JMS隊列
- 10. 在運行Jars中連接JMS隊列
- 11. Laravel一次運行所有隊列
- 12. 讓隊列作業始終運行
- 13. 從Solaris KornShell運行.ksh腳本
- 14. 以100%CPU運行的Netty
- 15. C# - 隊列管理,它總是運行和出隊
- 16. 執行隊列
- 17. 高CPU使用並行運行
- 18. Solaris OS x86。我可以運行在Solaris Sparc上運行的舊應用程序嗎?
- 19. 在運行時找出特定線程的CPU內核
- 20. 雙陣列隊列add(i,x)的運行時間
- 21. 多個串行調度隊列沒有運行Concurrentl?
- 22. 如何創建始終串行的GCD隊列,即使在多核CPU上?
- 23. 如何在給定的負載下運行CPU(%CPU利用率)?
- 24. 在solaris上運行一個可執行的C++程序
- 25. 使用EC2運行CPU-任務重
- 26. Python的Tensorflow運行在GPU代替CPU
- 27. 部分代碼的CPU運行時間
- 28. 雙核CPU利用率W¯¯運行
- 29. OpenCL:運行CPU/GPU多個設備
- 30. MSBUILD是否在ARM-CPU上運行?
謝謝。我會嘗試使用prstat -n 1000 -acL 1,並檢查它是否給出了運行隊列的準確信息。 – Vasu 2010-02-14 09:07:50
@Vasu:在這種情況下什麼是「準確的運行隊列信息」?我認爲這很難找到合理的含義。 – miracle173 2017-12-05 09:32:59