我想知道如何監視哪個進程取出所有I/O帶寬。我知道的唯一命令是gstat
,但它顯示累積信息。是否有任何工具可用於檢查正在運行的進程以瞭解其I/O使用情況?該系統是FreeBSD 8.3。使用重磁盤I/O尋找過程
回答
根據快速調研,網絡分析:您可以使用lsof -i
或sockstat
(http://www.freebsd.org/cgi/man.cgi?query=sockstat & sektion = 1),以確定插座由特定進程打開,那麼您可以使用tcpdump
來檢查該連接的詳細信息(http://www.thegeekstuff.com/2010/08/tcpdump-command-examples/#more-5676)。您也可以嘗試trafshow
和iftop
。
對於磁盤I/O:在Linux上我使用sar -q
,必須有類似的東西。
$ ktrace -ti -p PID
務必閱讀manual for ktrace讓你知道如何使用前禁用的ktrace:
是不是網絡連接,而不是磁盤I/O? – eis
我沒有網絡問題,只有高I/O的磁盤(從gstat看) –
我的不好,我看到「帶寬」在你的問題,並感到困惑。這裏有一篇有趣的文章:http://www.bsdnewsletter.com/bsda-book/Monitor_disk_input--output.html,希望它有幫助。 – theMarceloR
,如果你想跟蹤單個進程可以使用的ktrace。例如:
$ ktrace -p PID -f debug.txt
$ ktrace -C
$ kdump -f debug.txt
kdump,因爲輸出不是人類可讀的。
是的,我知道ktrace,但它不顯示每個請求的權重。 –
等,體重?那麼像WireShark或Fiddler這樣的一些包嗅探程序怎麼樣? – theMarceloR
不,網絡沒有問題。我的意思是磁盤通道帶寬的百分比 –
的答案是使用「頂」然後點擊「M」顯示每個進程/線程IO個
'top'是什麼版本?在我的'米'切換內存使用情況摘要。 –
@DanielKitachewsky - 適用於我的FreeBSD:'$ top -v'給出'top:version 3.5beta12'。 FreeBSD *不會使用與大多數Linux distrubitions不同的功能。在我的Linux機器上,'m'像您提到的那樣切換內存使用情況。 – tjameson
按內存百分比嘗試「shift + m」。 'shift + p'代表cpu和'shift + t'的時間 –
- 1. Cassandra磁盤io
- 2. EJB 1.1和磁盤IO
- 3. SQLite的磁盤IO錯誤
- 4. 磁盤io隊列溢出
- 5. 高磁盤IO速率
- 6. 尋找.Net磁盤緩衝流
- 7. 如何利用磁盤IO排隊
- 8. 現有應用程序的磁盤IO分析器
- 9. Linux上C++應用程序的磁盤IO分析器
- 10. MongoDB GridFS VS直接磁盤IO
- 11. 磁盤IO與PHP中的MySQL查詢
- 12. 磁盤IO在百分之OS
- 13. 獲取磁盤IO性能計數器
- 14. 磁盤IO操作如何通常在內核級程序集中查找?
- 15. Cpanel磁盤使用
- 16. PowerShell中尋找重複的過程
- 17. 表使用過多的磁盤空間
- 18. 在Android中尋找磁鐵
- 19. Appfog - Spring應用程序 - 磁盤使用
- 20. 尋找一個基於磁盤的類似redis的數據庫
- 21. 尋找鍵盤API
- 22. 我應該使用什麼線程模塊來防止磁盤IO阻塞網絡IO?
- 23. 暫停過程之前磁盤已滿
- 24. Python找到設備磁盤
- 25. 使用Java通過SSH安裝遠程磁盤
- 26. InnoDB磁盤使用開銷
- 27. mysql - 磁盤使用優化
- 28. Memcache使用磁盤存儲?
- 29. 磁盤使用條7
- 30. 磁盤使用格式
http://serverfault.com/questions/169676/howto-check-disk-i-o-utilisation-per-process –
@確信只是說它是相關的; - )但是,百分之99的谷歌將在這裏爲Linux下載:-) –