2

Я использую сервер Linux, который показывает странные закономерности использования памяти, которые я пытаюсь исследовать.

По словам Мунина, во время нормальной работы около 200 МБ памяти используется для приложений, но время от времени (возможно, каждые пару дней) происходит внезапное увеличение примерно на 1 ГБ, как видно на этом графике:

график памяти Мунина, показывающий внезапное увеличение использования памяти

Я пытался найти причину этого, но я не уверен, что это может быть. Тот факт, что munin приписывает эту память «приложениям», подсказывает мне, что один из запущенных процессов просто использует много памяти, но если посмотреть на это сверху, видно, что ни один из процессов не использует почти столько же памяти; на самом деле, топ-15 процессов, потребляющих память, вообще не меняются, когда это происходит, а топ-15 использует только 2,2% памяти. Кроме того, информация о памяти от ps почти не добавляет столько памяти, а скорее что-то около 200 МБ.

Высота увеличения обычно одинакова, и, как видно в этом примере, она просто исчезает через несколько часов.

Я обнаружил, что надежным способом вызвать такое поведение является загрузка большого файла (1.4G) с помощью wget через туннель ssh по сети на локальный диск (одна только сетевая активность не запускает его).

Чтобы более детально рассмотреть использование памяти, я начал регистрировать /proc/meminfo каждые 10 секунд и создал архив с графиками из этих данных. Загрузка, вызывающая рассматриваемое поведение, началась в 10:35:32 и была завершена в 10:38:53. Исходные данные журнала также включены в архив.

В /proc/meminfo нет значения, которое возрастает настолько, чтобы объяснить такое огромное уменьшение свободной памяти (это, по сути, то, что munin приписывает «приложениям»), что оставляет меня в неведении. Объем используемой памяти, о котором сообщает munin, также сообщается free и top, но в списке процессов нет процессов, которые бы объясняли такое высокое использование памяти или внезапное увеличение при загрузке файла.

Я пытаюсь понять это:

  • Это нормально, что использование памяти ведет себя таким образом без какого-либо конкретного процесса, использующего увеличенную память?
  • Какие могут быть другие источники памяти, которые не учитываются в /proc/meminfo?

Или это может быть признаком взлома системы?

2 ответа2

1

munin отлично подходит для графиков, но не показывает, какое приложение вызвало нагрузку.

Можно использовать поверх - продвинутый топ.

поверх записей необработанный лог-файл, после чего можно открыть такой файл и в интерактивном режиме перейти назад и вперед во времени и посмотреть, что происходит в определенный момент.

ator -r /var/log/atop_oame_date чем с помощью клавиш t и T вы можете вернуться ко времени подозрительной активности и посмотреть, что там происходит.

0

Ваша система не находится под давлением физической памяти. Поэтому, когда вы пытаетесь передать файл объемом 1,4 ГБ, он использует 1,4 ГБ памяти. У вашей системы есть два варианта: она может либо полностью тратить память, либо использовать ее неэффективно. Он выбирает последнее. Это нормальное поведение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .