Как узнать кто жрет память?

J
На сайте с 18.06.2007
Offline
158
1481

Здравствуйте.

На VDS пара десятков мелких сайтов почти без посещаемости, но сервер периодически падает из-за нехватки памяти. После перезагрузки свободно 3гб из 4х, но потихонечку MySQL начинает "толстеть"...

Сам мало чего понимаю в адмистве, погуглил, поставил Zabbix, но "из коробки" не могу найти там, где глянуть что сожрало память перед падением...

Evas EvaSystems
На сайте с 31.05.2012
Offline
104
#1

Что это у вас? VPS или же выделенный сервер? Если первое, то быть может вы столкнулись с недобросовестным хостером, который сдал вам памяти больше, чем у него есть.

А вообще, как минимум, mysql на каждое соединение расходует n памяти. Чем больше таких соединений одновременно, тем больше памяти он начинает кушать.

Более того, после работы соединение ещё какое-то время висит в ожидании активности (28800 секунд по умолчанию) прежде чем закрывается.

Вам необходимо грамотно настроить mysql основываясь на количестве памяти, которую имеет ваш сервер.

Также возможно утечки памяти есть и в коде. Пока видно, что память у вас жрёт именно mysql, который занят обработкой запросов...

Поставьте mysqltuner, с помощью него сможете увидеть достаточно детальную статистику работы mysql, по которой станет понятнее что происходит.

Также тюнер даст базовые рекомендации, что необходимо исправить в конфигурации мускл, правда слепо следовать его рекомендациям нельзя...

Системный администратор Linux. Настройка, сопровождение и оптимизация серверов. Отзывы - searchengines.guru/ru/forum/1017473
J
На сайте с 18.06.2007
Offline
158
#2
Evas:
Что это у вас? VPS или же выделенный сервер? Если первое, то быть может вы столкнулись с недобросовестным хостером, который сдал вам памяти больше, чем у него есть.

VPS облако от Hetzner.

На втором графике видно моментальное падение свободной памяти до нуля, мне бы понять, что вызвало его. Гугл говорит, что Zabbix может подсказать, но я не пойму как там посмотреть... в mysqltuner есть история?

lealhost
На сайте с 07.06.2014
Offline
136
#3

Ищите историю здесь:

/var/log/messages

или здесь:

/var/log/syslog

Zabbix. хватит пользоваться детскими игрушками :)

Evas EvaSystems
На сайте с 31.05.2012
Offline
104
#4
падение свободной памяти до нуля, мне бы понять, что вызвало его

Вызвано это перезагрузкой либо падением... самого сервера либо службы mysql, которая была убита oom killer'ом из за нехватки памяти.

/var/log/messages
или здесь:
/var/log/syslog

Посмотрите в этих логах информацию говорящую о том, что сработал oom killer


cat /var/log/messages | grep -i "oom"
cat /var/log/syslog | grep -i "oom"

И это всё лишь следствие, не более. Вам надо найти и устранить причину нехватки памяти...

J
На сайте с 18.06.2007
Offline
158
#5
Evas:
Посмотрите в этих логах информацию говорящую о том, что сработал oom killer

Спасибо. Глянул, есть какая-то "абракатабра", :)

но по времени не совпадает с данными мониторинга...

---------- Добавлено 22.10.2018 в 15:25 ----------

Похоже, проблема вне зоны моей компетенции, даже с помощью гугла и "лечения по фото" на серче... требуется колдунство от спецов :)

Всем спасибо, коллеги.

Evas EvaSystems
На сайте с 31.05.2012
Offline
104
#6

Ясно, что ничего не ясно... Одно срабатывание и то на apache... В общем гадать по фотографии тут трудно. И да, вам надо обратиться к соответствующему специалисту раз знаний у вас самого маловато.

Как минимум это грамотно настроить Mysql, как максимум - проанализировать код на предмет утечек памяти. Возможно что-то ещё...

J
На сайте с 18.06.2007
Offline
158
#7
duckmarchenko:
Лучше всего найдите специалиста, который вам поможет. Если мало что знаете, то мало что сделаете

Да, уже договорился со спецами.

Просто, странно, что нужно обладать сакральными знаниями, чтобы просто посмотреть какой именно сайт или какая именно БД грузит сервер.:)

Evas EvaSystems
На сайте с 31.05.2012
Offline
104
#8

Недостаточно просто узнать какой именно сайт или какая бд. Это лишь первый шаг) Вторым шагом уже следует оптимизация кода или же конкретной бд, её структуры, индексов, быть может и самих запросов если возможно.

J
На сайте с 18.06.2007
Offline
158
#9

Понимаю. Но все зависит от сайта (если проблема в сайте), может я его на чистый html переведу, или на шаред перекину, или даже просто грохну :)

C1
На сайте с 23.10.2018
Offline
0
#10

В linux команда htop

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий