сервер с CentOS 5.7 падает. Скорее всего, проблемы с RAM

12 3
S
На сайте с 01.01.2014
Offline
13
2206

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

Есть у меня VPS с CentOS 5.7, падает стабильно два раза в день. Конфиг такой- 2 ГБ оперативки, 50 ГБ жесткий диск, процессор 2 ГГЦ. На нем висит порядка 20 сайтов (посещаемость несущественная, не больше 200чел в день).

Я в администрировании ничего не понимаю, помогите разобраться почему падает. Я предполагаю что из-за утечки памяти, ибо top и free -m нам показывают вот что:

Пробовал остановить апач (apachectl -k stop). Ничего не поменялось. В mysql конфиге уменьшил max_connections до 150 (было 1000)- никаких изменений.

Куда копать? Спасибо.

K5
На сайте с 21.07.2010
Offline
209
#1

мда, просто наймите человека, ибо total mem = used, а вы еще разрешаете 1к пользователей )))

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

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
S
На сайте с 01.01.2014
Offline
13
#2
kgtu5:
тупо умножте общий объем баз данных на 150 пользователей и получите объем требуемой вам памяти только под mysql

а это точно делается так?

я хочу сам во всем разобраться

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Похвальное желание исправить проблему самому. Начните тогда читать книги по Linux, Apache и MySQL.

Не стоит плодить сущности без необходимости
S
На сайте с 01.01.2014
Offline
13
#4
Andreyka:
Начните тогда читать книги по Linux, Apache и MySQL.

Какую-то конкретную можете посоветовать? Чтобы она была не отвлеченная от темы, а помогла вникнуть в суть и одновременно найти решение моей практической задачи.

K5
На сайте с 21.07.2010
Offline
209
#5
spiidal:
а это точно делается так?

в пики посещаемости будет именно так...

ТС изучать и вникать долго придется, вы сейчас спеца озадачьте чтобы испаравить текущее плачевное состояние, а потом изучайте на основе результатов настройки...

S
На сайте с 23.05.2004
Offline
315
#6
kgtu5:
тупо умножте общий объем баз данных на 150 пользователей и получите объем требуемой вам памяти только под mysql
kgtu5:
в пики посещаемости будет именно так

Ерунда полнейшая. Размер потребляемой памяти зависит от структуры таблиц, запросов, настроек самого sql сервера. А не от размера базы.

spiidal:
Куда копать? Спасибо.

На скрине куча php процессов. Почему ? Если апаче, то php должен работать через mod_php. А если уж cgi - то тогда php-fpm + nginx или тонкая сборка апача без кучи лишних модулей.

Плюс опять же по скрину, php забрал весь процессор и скорее всего и всю память.

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

Установите в апача максимально число запросов в 20, перегрузите сервер, смотрите как потом будет потребление памяти. Если памяти куча, а вэб сервер стал выдавать ответы медленно - можно еще чуть увеличить процессов, скажем до 25. И так пока не дойдете до 90% занятости памяти.

Ну а дальше уже свои скрипты оптимизировать.

Это просто подпись.
S
На сайте с 01.01.2014
Offline
13
#7

Stek, спасибо большое! Стал играться с MaxRequestsPerChild - стало больше свободной оперативки. В среднем сейчас показывает 200МБ free (почему-то не переводит в swap, просто free).

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

---------- Добавлено 02.01.2014 в 12:16 ----------

А не, рано радуюсь.

Просто раньше сразу после перезагрузки сервера память пропадала, в течении минуты. А теперь на это требуется около 15мин- и снова у меня 0.

Сайты все работают как php+fastCGI

S
На сайте с 23.05.2004
Offline
315
#8

А в апаче какие настройки ?

MaxRequestsPerChild - это через сколько запросов перегружать процесс.

"apachectl -V" в консоли, что бы выяснить, какой именно модуль включен. Ну и уже того модуля конфигурацию смотреть, сколько разрешено процессов и т.п.

S
На сайте с 01.01.2014
Offline
13
#9

Выключил mem_cache посмотрю как сейчас в ближайший час себя поведет. В апаче такие настройки теперь:

KeepAlive Off
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 128
MaxClients 128
MaxRequestsPerChild 20
</IfModule>

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so
LoadModule rpaf_module modules/mod_rpaf-2.0.so

Вот тут вот всякого барахла можно поотключать подумать что не надо, мне кажется

---------- Добавлено 02.01.2014 в 13:04 ----------

Stek:

MaxRequestsPerChild - это через сколько запросов перегружать процесс.

А что тогда имелось в виду, MaxClients ? Тоже уменьшил до 20, понаблюдаю сейчас

K5
На сайте с 21.07.2010
Offline
209
#10

Stek, скажите простой, подчеркиваю простой, для незнающего ничего человека, способ, рассчитать размер необходимой оперативной памяти при 150 посетителях, думаю ваш метод будет не меньшим бредом.

ТС не знаючи, отключать модули не советую...

И ТС - подсказываю: ограничивать надо ServerLimit MaxClients

12 3

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