Tôi muốn theo dõi tải hệ thống IO từ một chương trình python, truy cập số liệu thống kê tương tự như được cung cấp trong /proc/diskstats
trong linux (mặc dù rõ ràng là một thư viện đa nền tảng sẽ là tuyệt vời). Có một thư viện python hiện có mà tôi có thể sử dụng để truy vấn số liệu thống kê đĩa IO trên Linux?Thư viện Python để theo dõi/proc/diskstats?
Trả lời
Trong trường hợp bất cứ ai khác đang cố gắng để phân tích/proc/diskstats với Python như Alex gợi ý:
def diskstats_parse(dev=None):
file_path = '/proc/diskstats'
result = {}
# ref: http://lxr.osuosl.org/source/Documentation/iostats.txt
columns_disk = ['m', 'mm', 'dev', 'reads', 'rd_mrg', 'rd_sectors',
'ms_reading', 'writes', 'wr_mrg', 'wr_sectors',
'ms_writing', 'cur_ios', 'ms_doing_io', 'ms_weighted']
columns_partition = ['m', 'mm', 'dev', 'reads', 'rd_sectors', 'writes', 'wr_sectors']
lines = open(file_path, 'r').readlines()
for line in lines:
if line == '': continue
split = line.split()
if len(split) == len(columns_disk):
columns = columns_disk
elif len(split) == len(columns_partition):
columns = columns_partition
else:
# No match
continue
data = dict(zip(columns, split))
if dev != None and dev != data['dev']:
continue
for key in data:
if key != 'dev':
data[key] = int(data[key])
result[data['dev']] = data
return result
Có gì sai khi chỉ đọc định kỳ /proc/diskstats
, ví dụ: sử dụng sched
để lặp lại thao tác mỗi phút hoặc bất cứ thứ gì? Linux procfs
là tốt đẹp chính xác bởi vì nó cung cấp một cách văn bản cho hạt nhân để cung cấp thông tin cho các chương trình userland, như văn bản là dễ đọc và sử dụng trong một loạt lớn các ngôn ngữ ...!
Tôi chưa thấy thư viện, nhưng bạn có thể muốn xem công cụ Python có tên "dstat" [1] để đọc số liệu thống kê hạt nhân Linux.
PSUtil cung cấp một số số liệu thống kê đĩa và fs và cũng là đa nền tảng.
Bạn nên nhìn vào psutil.disk_io_counters(perdisk=True)
mà trả về một số số liệu hữu ích:
read_count: number of reads write_count: number of writes read_bytes: number of bytes read write_bytes: number of bytes written read_time: time spent reading from disk (in milliseconds) write_time: time spent writing to disk (in milliseconds)
Những số liệu đến từ /proc/diskstats
(trên Linux)
- 1. Cách cài đặt thư viện python theo cách thủ công
- 2. Thư viện theo dõi khuôn mặt cho Java hoặc Python
- 3. Thư viện Python BitTorrent
- 4. Thư viện Python của Twitter: thư viện nào?
- 5. Thư viện Python để lọc XSS?
- 6. Thư viện Python để tạo tệp VCF?
- 7. Thư viện Java theo GPL
- 8. Python Subversion wrapper thư viện
- 9. Đường dẫn thư viện Python
- 10. Thư viện API Amazon cho Python?
- 11. Có thư viện Python để tạo các tệp .ico không?
- 12. Nhập lớp thư viện trong Python
- 13. Thư viện hình ảnh cho Python 3
- 14. Bất kỳ thư viện python dhcp nào?
- 15. Thư viện an toàn Markdown Python
- 16. Thư viện như fakeweb cho Python
- 17. Python - Vấn đề về Thư viện
- 18. thư viện python cho người dùng nhập
- 19. Thư viện AJAX phía máy chủ Python?
- 20. Thư viện Git cho Ruby hoặc Python?
- 21. Phóng to Thư viện ảnh Python
- 22. Thư viện ActiveSync của Python Exchange
- 23. Thư viện Python tốt để đồng bộ hóa iPod
- 24. thư viện python để tạo tệp video từ hình ảnh
- 25. Thư viện python tốt để tạo tệp âm thanh?
- 26. Thư viện Python/Khung để viết các ứng dụng P2P
- 27. Thư viện Python để hiển thị bản đồ động
- 28. thư viện salesforce python để nhận dữ liệu salesforce?
- 29. Thư viện Python thuần túy để tạo Identicons?
- 30. Thư viện thực tế để tạo Python Daemons
mặc dù psutil có thể sử dụng '/ proc/diskstats' nó có ít hơn nhiều số liệu so với nguyên '/ proc/diskstats'. Cá nhân tôi đi qua câu hỏi này, bởi vì chúng tôi đã sử dụng psutil, nhưng buồn bã bỏ lỡ một số phần quan trọng. –