Как я могу контролировать скорость записи в раздел tmpfs. Он не отображается в выводе vmstat или iostat.
Я запускаю несколько процессов Python, которые много пишут в tmpfs и вносят свой вклад в загрузку. Нагрузка высока, но ЦП, память, дисковый ввод-вывод и т. Д. Все в штатном режиме. Кажется, что нагрузка каким-то образом косвенно учитывает этот тяжелый ввод-вывод tmpfs. Я хотел бы знать скорость записи, чтобы иметь представление о верхних пределах для каждого хоста. Я вслепую, любая помощь будет оценена по достоинству.
tmpfs
не является блочным устройством, поэтому обычные инструменты мониторинга ввода-вывода вам не подходят.
Один из способов контролировать скорость записи - использовать pv
команда. pv
, Просмотрщик труб позволяет вам видеть статистику текущего процесса в ситуациях, когда вы обычно попадаете в черный ящик, например, при сжатии огромного файла журнала или создании tar-файла.
Типичные варианты использования pv
включить такие вещи:
pv /path/to/your/log | gzip >/logarchivedir/log.gz
tar cvfz - /your/directory | pv >/outputdir/yourdir.tar.gz
Я надеюсь, это поможет вам; вы не сказали нам ничего подробного.
У меня было такое же желание мониторинга - мне приходит в голову /dev/shm
может быть установлен на петлевое устройство (т.е. /dev/loop0
) и это устройство петли можно контролировать [1]. Проблема в том, что устройству цикла потребуется статический файл, отформатированный с его собственной файловой системой, и который побеждает точку скорости с tmpfs.
Но обратите внимание, хотя tmpfs нелегко отслеживать, /dev/ram0
и т.д. может быть по умолчанию.
Возможно, эксперт по Linux может прокомментировать, можно ли установить tmpfs напрямую на устройство цикла, я не уверен.
[1] iostat, похоже, не сообщает статистику по устройствам с петлями (проверено на linux 3.14.27 / fedora 19).