我想使用/ proc每秒鐘查找特定進程的資源使用情況。資源包括cputime,磁盤使用情況和網絡使用情況。我查看了/ proc/pid/stat,但我不確定我是否獲得了所需的詳細信息。我希望全部3資源的使用,我想每秒鐘監控它們。獲取Linux進程資源使用情況(CPU,磁盤,網絡)
回答
全部記錄了一些新的內核具有/proc/<pid_of_process>/io
文件。這是IO統計數據的地方。 它沒有記錄在man proc中,但你可以嘗試自己找出數字。
希望它有幫助。 Alex。
我使用的是centos 5.6,它是一個很老的內核。我沒有找到io統計數據! – sethu
getrusage()
實現CPU,內存和硬盤等
man 2 getrusage
我不知道網絡。
接近問題,像這樣的查找的執行類似的監測和報告工具的源代碼的最好方法。 儘管不能保證他們直接使用/ proc,但他們會引導您採取有效的方法來解決問題。 爲你的情況,頭腦(1),iotop(8)和nethogs(8)浮現在腦海。
您可以使用SAR
-x給定進程的報告統計信息。
詳情請參閱此: http://www.linuxcommand.org/man_pages/sar1.html
實施例: SAR -u -r -b 1個-X PID | grep -v平均值| grep -v Linux
此技術需要重新啓動系統,root必須啓用系統範圍的統計信息收集。 –
使用'-x'或'-X'選項,我只能看到'minflt/s majflt/s%user%system nswap/s CPU'的統計數據,而不是磁盤或網絡統計數據。例如,如果我還指定'-n DEV'來查看網絡統計信息,則sar會給出單獨的標題單獨的行。我在RHEL 5.7上測試過它。 – haridsv
checkout glances。
它有一個屏幕上的CPU磁盤和網絡。這不是每個過程,但它比看3個單獨的工具更好。
- 1. 獲取紗線應用程序的內存,CPU和磁盤使用情況
- 2. 獲取iPhone應用程序的磁盤使用情況
- 3. 分析Linux上長時間運行的進程的資源使用情況--CPU,內存,硬盤驅動器?
- 4. 獲取C#中當前CPU,RAM和磁盤驅動器的使用情況
- 5. 使用java獲取虛擬機(linux)的CPU使用情況
- 6. 如何顯示JProgressBar中的CPU和磁盤使用情況?
- 7. 從wmi獲取每個進程的CPU使用情況
- 8. 在Ubuntu中進程的磁盤空間使用情況12.04
- 9. 如何使用.NET CORE獲取C#Web應用程序當前的CPU/RAM /磁盤使用情況?
- 10. 如何獲取遠程網絡共享的磁盤使用情況統計信息?
- 11. 如何跟蹤linux中進程的cpu /內存使用情況?
- 12. 如何記錄Linux進程的RAM和CPU使用情況
- 13. 從SoftLayer API獲取磁盤使用情況
- 14. 如何使用MySQL記錄Windows 7網絡流量和磁盤使用情況?
- 15. 靜態網絡服務器的資源使用情況
- 16. 獲取CPU和RAM的使用情況
- 17. Linux服務器不能正確顯示磁盤使用情況
- 18. 如何知道未安裝磁盤的磁盤使用情況?
- 19. VB.NET:監控磁盤使用情況
- 20. 碼頭磁盤使用情況
- 21. SQLite表磁盤使用情況
- 22. netbeans優化磁盤使用情況
- 23. cassandra磁盤空間使用情況
- 24. 在Android上獲取CPU,RAM和網絡使用情況統計信息
- 25. 獲取內存使用率,CPU使用率,在Windows 10中的磁盤使用情況UWP C#
- 26. 如何在容器上的特定進程上獲取RAM,CPU和網絡使用情況
- 27. Linux的CPU使用情況工具
- 28. Grep資源使用情況
- 29. MySQL資源使用情況
- 30. 使用WMI獲取C#中每個進程的CPU和RAM使用情況?
我想要所有3個資源(CPU,磁盤和網絡)的信息 – sethu
/proc/pid/stat給我CPUtime,但我只能收集整個機器的總網絡和磁盤統計信息,而不是特定進程 – sethu
不要認爲有一種方法可以按進程收集磁盤和網絡統計信息 - 主要取決於如何在內核工作時完成磁盤和網絡通信。例如,寫入磁盤的讀操作是通過內核緩衝區進行的,因此多個進程在實際刷新到磁盤之前可能訪問同一個緩衝區。相同的讀取,多個進程可能會讀取同一個文件,只有第一個會導致實際的磁盤訪問,第二個只是獲得一個指向內核緩衝區的指針。 – Soren