Я хотел бы отслеживать загрузку системы IO из программы python, обращаясь к статистике, подобной той, что указана в /proc/diskstats
в linux (хотя, очевидно, библиотека с кросс-платформой будет замечательной). Есть ли существующая библиотека python, которую я мог бы использовать для запроса статистики IO на диске в Linux?Python библиотека для мониторинга/proc/diskstats?
ответ
В случае, если кто-то пытается разобрать/Proc/diskstats с Python, как Алекс предложил:
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
Что не так с периодическим чтением /proc/diskstats
, например. используя sched
, чтобы повторять операцию каждую минуту или что-то еще? Linux procfs
хорош именно потому, что он предоставляет текстовый способ для ядра предоставлять информацию для пользовательских программ, так как текст проще всего читать и использовать на огромном множестве языков ...!
Я не видел библиотеки, но вы можете проверить инструмент Python с именем «dstat» [1] для чтения статистики ядра Linux.
PSUtil обеспечивает ряд дисковых и фс статистике, а также кросс-платформенный.
Вы должны смотреть на psutil.disk_io_counters(perdisk=True)
, которая возвращает количество полезных метрик:
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)
Эти показатели приходят от /proc/diskstats
(на Linux)
- 1. библиотека googlesearch для python
- 2. Библиотека upnp для python
- 3. библиотека python для побитового хранения?
- 4. библиотека python для разделения видео
- 5. Библиотека обнаружения математики для Python
- 6. Базовая финансовая библиотека для Python
- 7. Высокоуровневая библиотека IMAP для Python
- 8. Python - библиотека для импорта библиотек
- 9. библиотека python для ввода пользователем
- 10. Библиотека Python для Amazon MWS
- 11. Библиотека Python для подсветки синтаксиса
- 12. Клиентская библиотека Python для WebDAV
- 13. Библиотека изображений для Python 3
- 14. Библиотека API Amazon для Python?
- 15. Нейронная сетевая библиотека для Python?
- 16. Библиотека как fakeweb для Python
- 17. AMQP 1.0 Библиотека для Python
- 18. MS Access библиотека для python
- 19. Библиотека маршрутов для python 3
- 20. Арифметическая библиотека функций для python
- 21. Библиотека Python для фильтрации XSS?
- 22. Музыкальная библиотека Python?
- 23. Библиотека изображений Python 3.1
- 24. Python Библиотека BitTorrent
- 25. библиотека архивации python (jython)
- 26. библиотека регистрации tornado python
- 27. Python библиотека установки MacPorts
- 28. python-нос: библиотека утверждений?
- 29. Библиотека сервера Python XMPP
- 30. Библиотека обработки изображений Python
хотя psutil может использовать '/ Proc/diskstats' она имеет гораздо меньше метрики, чем raw '/ proc/diskstats'. Я лично сталкивался с этим вопросом, потому что мы уже использовали psutil, но, к сожалению, пропустили некоторые важные части. –