Это связано с: Недостаточно памяти при использовании 72%
Похоже, проблема та же, но вопрос немного другой: Куда уходит моя память? У меня 18% использования памяти, и мой OOM Killer убивает mysqld каждые 10 минут.
Мне удалось собрать некоторую информацию:
1 - Благодаря https://serverfault.com/a/619681/182343 Я обнаружил, что отчет OOM Killer показывает, что DMA35 + DMA + Нормальное использование составляет 96% (отчет https://pastebin.com/UJUiSsSi ) ... так что есть проблема ...
2 - Список процессов от OOM Killer: https://pastebin.com/yYTD4QzW
3 - Бесплатные, верхние, htop и другие инструменты показывают максимальное использование оперативной памяти 18%. Вот пример использования оперативной памяти верхней сортировки ( https://pastebin.com/DEDV1HWb )
4 - free -m ничего не говорит о проблеме с оперативной памятью:
total used free shared buff/cache
available
Mem: 6809 414 470 201 5924 5825
(Я добавил немного подкачки поскольку у меня не было свопа на этой виртуальной машине, но ничего не изменилось, своп не используется)
5 (РЕДАКТИРОВАТЬ): Благодаря Даниэлю Горди я очищаю свой буфер / кеш бесплатно && sync && echo 3> / proc / sys / vm / drop_caches && free
и запустил oom-killer вручную с помощью echo f> / proc / sysrq-trigger
. И, черт возьми, отчет по оперативной памяти (DMA35 + DMA + Normal) показывает мое ожидаемое использование оперативной памяти: 18%! Я всегда думал, что buff / cache
означает доступный, когда ОС требует - это ...
Почему и где съедают барана?
(Я очень надеюсь, что мне там помогут, поскольку мой рабочий сервер действительно нестабилен, так как появляется эта проблема :( Спасибо)
На случай, если кто-то придет сюда за решением, это обновление:
Я откатил все изменения конфигурации и перезагрузил сервер заново. За 2 месяца сервер выглядит хорошо, и проблема исчезла.
Не знаю, что здесь произошло ...
Попытайтесь найти, какой процесс использует вашу оперативную память, с помощью ps aux --sort -rss
.
Что касается вывода сервера для free -m
большая часть RAM была буферизована / кэширована. Попробуйте очистить кеши с помощью этой команды:
# free && sync && echo 3> / proc / sys / vm / drop_caches && free