1

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

У меня есть VPS (Ubuntu 14.04 32bit, 2 Гб памяти), который является моей "песочницей". Я тестирую свое приложение PHP/MySQL и учусь использовать и управлять сервером Linux. Примерно неделю MYSQL работал довольно медленно. Это заняло несколько секунд для SELECT (без JOIN) в таблице ~ 2 миллиона записей.

Сегодня я нашел время, чтобы позаботиться об этом и найти проблему. Я прочитал несколько дискуссий по оптимизации MySQL. Через панель управления SolusVM я узнал, что сервер использует 100% памяти. Я попробовал top, чтобы проверить, какой процесс потребляет большую часть памяти, но это не до 100%. Самым крупным процессом был MySQL с около 33% памяти.

Я перезагрузил сервер и после первой перезагрузки он закрывает все соединения через ~ 2 минуты. После каждой перезагрузки через ~ 2 минуты я получаю:

  • ошибка в Putty " Сервер неожиданно закрыл соединение по сетевому слову ".
  • Любой домен, размещенный на этом сервере, возвращает « ошибка тайм-аута соединения »
  • WinSCP пытается подключиться к серверу и не возвращает ошибку, запускается снова и снова, чтобы установить соединение

В файле системного журнала у меня нет информации о проблемах - просто информация о том, что таблицы MySQL нуждаются в обновлении.

За эти 2 минуты между входом в систему (через Putty) и закрытием соединения сервером я попытался остановить некоторые службы, такие как mysql, cron, postfix, apache и proftpd. После каждого теста один за другим сервер закрывал соединение через ~ 2 минуты после перезагрузки - так что это не влияло на поведение сервера.

Что я заметил, наблюдая за использованием памяти в панели управления SolusVM. Когда соединения закрыты, использование памяти уменьшается с ~ 40% до ~ 20%, а затем через несколько секунд увеличивается до ~ 50%, а через несколько минут достигает 100%.

Что еще можно проверить, чтобы узнать, что происходит через эти 2 минуты после перезагрузки?


РЕДАКТИРОВАТЬ:

Мне также нужно добавить, что со времени моего последнего входа на сервер в корневом каталоге появились файлы «aquota.group» и «aquota.user». Я пока не понимаю, почему. Но попробовал команду quotaoff . После этого сервер закрыл соединения через ~ 2 минуты после перезагрузки - так что ... ничего не изменилось.

1 ответ1

0

Примерно через час с момента последней перезагрузки сервер начал повторять и принимать подключения, но использование памяти было на уровне 100%. Я только что нашел проблему. Один из скриптов, выполняемых CRON каждую минуту, сохраняет свой результат в лог-файл, который вырос почти до 8 ГБ. Я удалил содержимое файла и использование памяти сократилось до ~ 50%.

Я только что перезагрузил сервер еще раз и ... кажется, все работает нормально. Похоже, что скрипт, о котором я упоминал ранее, пытался открыть большой файл, но серверу не хватило памяти для этого. Мне просто интересно, как он смог открыть его раньше и позволить ему вырасти до такого большого размера ...

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