Как я могу точно наблюдать и измерять объем использования виртуальной памяти и активности в Linux? Я знаю, что есть vmstat, но как интерпретировать результаты? Или что лучше?
"vmstat" сообщит вам то, что вы хотите знать. Столбцы «si» и «so» показывают объем памяти, загружаемой / выгружаемой за интервал. И vmstat, и free могут показать вам разбивку использования памяти. Вместо того, чтобы копировать и вставлять текст, мой ответ здесь дает вам некоторую справочную информацию о том, что сообщают эти инструменты.
Если сбой вызван перестановкой, эта строка дает хорошее число:
vmstat 10 2 | tail -n1 | awk '{print $7*$8}'
Если компьютер заменяется, возможно, все в порядке. Если компьютер подключается, это тоже может быть нормально. Но если компьютер одновременно подключается и отключается, то это плохо.
Еще один полезный инструмент - atop
, который дает более подробное представление о вводе-выводе, чем обычный старый топ.
Вы прошли через страницу руководства?
man vmstat
Если вам нужна историческая информация, я использую кСар. У него есть дополнительная полезная возможность, заключающаяся в том, что его можно запускать на удаленном компьютере и собирать информацию напрямую через ssh.
Одна из великих дилемм Linux - это знать, какой инструмент использовать. Думаю, это одна из причин, по которой я написал сборник более 5 лет назад. Он сочетает в себе лучшее из большинства других инструментов, чтобы объединить почти все остальные в один. Фактически, он предоставляет альтернативные форматы вывода, поэтому, если вам нравится вывод vmstat, вы просто запускаете "collectl --vmstat". Так почему бы просто не запустить vmstat? Это просто - collectl также может записывать данные, такие как sar, но воспроизводить их, чтобы они выглядели как vmstat! Он даже будет воспроизводить его в формате, который вы можете напрямую передать в gnuplot (см. Collectl-utils), или вы можете загрузить его в exel или даже RRD, если хотите пойти по этому пути.
-отметка