Tôi muốn sử dụng/proc để tìm cách sử dụng tài nguyên của một quy trình cụ thể mỗi giây. Các tài nguyên bao gồm cputime, sử dụng đĩa và sử dụng mạng. Tôi đã xem/proc/pid/stat, nhưng tôi không chắc liệu tôi có nhận được các chi tiết cần thiết hay không. Tôi muốn tất cả 3 tài nguyên sử dụng và tôi muốn theo dõi chúng mỗi giây.Sử dụng tài nguyên quy trình Linux (cpu, đĩa, mạng)
Trả lời
Đừng nghĩ rằng có cách để lấy thông tin về ổ đĩa và mạng trên cơ sở từng quy trình.
Điều tốt nhất bạn có thể có là ổ đĩa và mạng toàn cầu và thời gian xử lý cho mỗi CPU.
Tất cả các tài liệu trong man proc
Bạn có thể theo dõi một số thông tin IO (xem tiện ích 'iotop' cho một ví dụ), nhưng nó không có sẵn trên tất cả các hạt nhân. – duskwuff
iotop cần phiên bản mới hơn của hạt nhân. Tôi thấy iotop cho io và nethog cho thống kê mạng nhưng tôi cần phải biên dịch lại phiên bản hạt nhân mới hơn cho điều đó. Tôi đã có điều đó như là phương sách cuối cùng. – sethu
Một số kernel mới có /proc/<pid_of_process>/io
tập tin. Đây là nơi mà số liệu thống kê IO là. Nó không phải là tài liệu trong proc người đàn ông, nhưng bạn có thể cố gắng tìm ra con số chính mình.
Hy vọng điều đó sẽ hữu ích. Alex.
Tôi đang sử dụng centos 5.6 và nó là một hạt nhân khá cũ. Tôi không tìm thấy số liệu thống kê io ở đó !! – sethu
getrusage()
hoàn CPU, bộ nhớ và đĩa vv
man 2 getrusage
Tôi không biết về mạng.
Cách tốt nhất để tiếp cận vấn đề như thế này là để tìm kiếm mã nguồn của công cụ mà thực hiện giám sát và báo cáo tương tự. Mặc dù không đảm bảo rằng họ đang sử dụng/proc trực tiếp, họ sẽ dẫn bạn đến một cách hiệu quả để giải quyết vấn đề. Đối với trường hợp của bạn, đầu (1), iotop (8) và nethogs (8) đến tâm trí.
Bạn có thể sử dụng SAR
-x thống kê báo cáo cho một quy trình nhất định.
Xem này để biết thêm chi tiết: http://www.linuxcommand.org/man_pages/sar1.html
Ví dụ: sar -u -r -b 1 -X PID | grep -v Trung bình | grep -v Linux
Kỹ thuật này yêu cầu khởi động lại hệ thống và root phải bật bộ sưu tập thống kê toàn hệ thống. –
Với tùy chọn '-x' hoặc' -X', tôi chỉ thấy số liệu thống kê cho 'minflt/s majflt/s% người dùng% hệ thống nswap/s CPU', không phải là số liệu thống kê trên đĩa hoặc mạng. Ví dụ: nếu tôi cũng chỉ định '-n DEV' để xem thống kê mạng, sar cung cấp các dòng riêng biệt với các tiêu đề riêng biệt. Tôi đã thử nghiệm nó trên RHEL 5.7. – haridsv
chế độ xem kiểm tra.
Có ổ đĩa và mạng cpu trên cùng một màn hình. Nó không phải cho mỗi quá trình nhưng nó tốt hơn so với nhìn vào 3 công cụ riêng biệt.
- 1. Tài nguyên lập trình mạng Android (Java)
- 2. Cách hạn chế sử dụng CPU của một quy trình
- 3. Cách sử dụng mạng của quy trình sử dụng Powershell
- 4. Cách sử dụng CPU cho mỗi quy trình trong Python
- 5. Hiểu Linux đầu CPU sử dụng đầu ra
- 6. Quy trình nào đang sử dụng tất cả đĩa của tôi IO
- 7. Theo dõi tài nguyên (mạng) tài nguyên và hiệu suất của ứng dụng cửa sổ
- 8. Xác định sử dụng CPU
- 9. Lọc theo tên quy trình và sử dụng CPU đăng nhập
- 10. Java đang sử dụng 100% cpu trên linux
- 11. Cách hạn chế sử dụng bộ nhớ quá trình trên Linux (ví dụ: sử dụng BSD :: Tài nguyên)
- 12. Tệp đĩa Linux AIO
- 13. Cách lấy CPU, RAM và sử dụng mạng của ứng dụng Java7
- 14. Cách sử dụng CPU trong C?
- 15. Cách tính CPU Sử dụng ứng dụng đa xử lý trong Linux
- 16. Sử dụng CPU với golang
- 17. Theo thống kê CPU luồng trong Linux
- 18. Một số tài nguyên tốt để học lập trình mạng là gì?
- 19. Tên của quy trình có mức sử dụng CPU cao nhất
- 20. Chương trình treo biểu thức chính quy (sử dụng CPU 100%)
- 21. nanosleep sử dụng cpu cao?
- 22. script để ánh xạ ổ đĩa mạng
- 23. Gradient trong hồi quy liên tục sử dụng mạng nơron
- 24. Python - lấy tên quy trình, sử dụng CPU, Mem và sử dụng Mem cao nhất trong windows
- 25. Sử dụng tài nguyên trong Exceptions
- 26. Sử dụng tài nguyên trong windows
- 27. modrails - rogue ruby quy trình tiêu thụ 100% cpu
- 28. Vista UAC - Sự cố khi ánh xạ ổ đĩa mạng
- 29. Giám sát việc sử dụng mạng của quá trình?
- 30. Làm cách nào để ghi lại quá trình hoặc hoạt động hạt nhân đang sử dụng đĩa trong GNU/Linux?
Tôi muốn thông tin cho tất cả 3 tài nguyên (cpu, đĩa và mạng) – sethu
/proc/pid/stat cung cấp cho tôi CPUtime nhưng tôi chỉ có thể thu thập tổng số mạng và số liệu thống kê đĩa của toàn bộ máy chứ không phải quy trình cụ thể – sethu
Đừng nghĩ rằng có một cách để thu thập số liệu thống kê trên đĩa và mạng trên cơ sở mỗi quá trình - phần lớn là cách thức lưu lượng truy cập của ổ đĩa và mạng được thực hiện dưới dạng công việc hạt nhân. Ví dụ, việc đọc ans ghi vào đĩa là thông qua bộ đệm hạt nhân, và do đó nhiều quá trình có thể truy cập vào cùng một bộ đệm trước khi nó thực sự được flushed vào đĩa. Tương tự cho đọc, nhiều quá trình có thể đọc cùng một tập tin, chỉ có một đầu tiên sẽ gây ra một truy cập đĩa thực tế với thứ hai chỉ nhận được một con trỏ đến bộ đệm hạt nhân. – Soren