Это связано с: Недостаточно памяти при использовании 72%
Похоже, проблема та же, но вопрос немного другой: куда уходит моя память? У меня 18% использования памяти, и мой OOM Killer убивает mysqld каждые 10 минут.
Мне удалось собрать некоторую информацию:
1 - Благодаря https://serverfault.com/a/619681/182343 Я обнаружил, что отчет OOM Killer показывает, что использование DMA35 + DMA + Normal составляет 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 (РЕДАКТИРОВАТЬ): Благодаря Даниэлю Горди я очищаю свой бафф / кеш free && 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