Жуткие тормоза на новом VPS

rustelekom
На сайте с 20.04.2005
Offline
541
#11

а что там понимать- есть же расшифровка директивы: http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients

The MaxClients directive sets the limit on the number of simultaneous requests that will be served.

только клиенту (простому вебмастеру) абсолютно до лампочки весь впс у него сдох или только апач не пыхтит. сайт то работать не будет по любому.

60% скидка на VPS в США, 20% скидка в Нидерландах и 40% в Финляндии. Новые тарифы на AMD Ryzen 9950x с частотой до 5.7 ГГц со скидкой 40% RoboVPS https://www.robovps.biz
Fire Sphere
На сайте с 22.03.2008
Offline
28
#12
myhand:
256 апачей в пике с 10Mb RSS - съедят всю память и добавки попросят

Я извинясь, сам давно пытаюсь понять - от чего зависит объём занимаемой процессом apache2 RSS памяти? На одном vds это числа в пределах 1Мб, на другом 10-15Мб. Хотя на обоих апач одинаковой версии, одинаковая ОС. Я сперва думал что это зависит от количества и вида подключенных модулей апача, но убрав всё лишнее изменений хоть немного существенных не увидел. Да, и размер такой у процессов сразу-же после перезапуска а не после долгой работы.

Что влияет на размер RSS памяти занимаемой процессами апача? (обычный prefork, запросы к php-страницам)

Здесь (http://www.sape.ru/r.b5b0035ccd.php) можно неплохо заработать
NetSky
На сайте с 05.04.2008
Offline
104
#13

Может стоит отказатся от использования апача ?

ставил по вот этой схеме

Адаптация верстки сайта под мобильные устройства. .Скорая помощь для ваших сайтов- Wordpress, DLE, Joomla, Drupal
Andreyka
На сайте с 19.02.2005
Offline
822
#14
Fire Sphere:
Я извинясь, сам давно пытаюсь понять - от чего зависит объём занимаемой процессом apache2 RSS памяти?

От подключенных модулей и их настроек

Не стоит плодить сущности без необходимости
N
На сайте с 06.05.2007
Offline
419
#15

На практике, объем RSS зависит в первую очередь от сложности скриптов php. Интерпретатор запрашивает память и не отдает обратно в операционную систему, с расчетом на то, чтобы при повторном запуске скрипта уже иметь выделенную память.

Остальные модули не так уж много жрут, поэтому и кажется что отключение модулей не влияет. Ну разве что в плеске какой-нибудь mod_ldap монстрообразный.

Раз уж снизить RSS никак, проверьте можно ли еще уменьшить параметр MaxRequestsPerChild. Думаю, на сложных скриптах даже 100 поставить не грех. В этом случае апачи будут чаще завершаться и шансов разрастись у них будет меньше.

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

Было бы интересно найти такую схему, где каждый апач обрабатывает свою группу URL. Ведь все скрипты с разным потреблением памяти и вызов маленького скрипта сразу после большого "задерживает" много памяти впустую.

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#16
[B:
Andreyka;5737445]От подключенных модулей и их настроек

не попали :D

больше от того, что эти самые модули делают:

память не сразу освобождается free, особенно если

модуль - "любимый" libphp с кучей сложных скриптов

кстати, такое поведение контролируется

Andreyka ведь знает про соответствующую директиву апача? :)

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Fire Sphere
На сайте с 22.03.2008
Offline
28
#17
NetSky:
Может стоит отказатся от использования апача ?
ставил по вот этой схеме

Увы. На VDS работает около сотни сайтов, с кривонаписанным кодом от разных программистов и "программистов". Переписать это всё с учётом nginx+FastCGI некому да и нереально. Поэтому если только nginx как фронтэнд только под статику.

netwind:
На практике, объем RSS зависит в первую очередь от сложности скриптов php. Интерпретатор запрашивает память и не отдает обратно в операционную систему, с расчетом на то, чтобы при повторном запуске скрипта уже иметь выделенную память.
Остальные модули не так уж много жрут, поэтому и кажется что отключение модулей не влияет. Ну разве что в плеске какой-нибудь mod_ldap монстрообразный.
Раз уж снизить RSS никак, проверьте можно ли еще уменьшить параметр MaxRequestsPerChild. Думаю, на сложных скриптах даже 100 поставить не грех. В этом случае апачи будут чаще завершаться и шансов разрастись у них будет меньше.

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

Плеска нету, только VDSManager.

Количество запросов на процесс 512, я почему-то думал что так будет лучше. Но да, если процессы будут чаще обновляться то есть вероятность что они будут весить поменьше. Хотя наверное так будет работать помедленнее.

Опять всё упёрлось в кривость кода :) Глвной казус в том, что прозводительности требуют от меня, путём волшебства над апачем. При этом то что сайты криво сделаны никого не волнует - "раньше всё работало!". Ну ладно, я списываю это на национальные особенности...

Вобщем я всё понял. Спасибо ответившим. :)

A9
На сайте с 26.08.2008
Offline
38
#18

Я, кстати, первоначальную проблему решил установив значения Maxclients и server limit на 512, установкой nginx для отдачи статики и установкой eaccelerator. Все залетало, и тьфу тьфу тьфу работает без сбоев уже 2 дня :)

M
На сайте с 16.09.2009
Offline
278
#19
Fire Sphere:
Поэтому если только nginx как фронтэнд только под статику.

Не нужно им статику отдавать - поставьте как прозрачный прокси. Апачи

в итоге меньше памяти сожрут.

Fire Sphere
На сайте с 22.03.2008
Offline
28
#20

Да, получается как прокси. Но nginx будет отдавать статику какую увидит, а все остальные запросы отправлять к апачу. Обычно сайт лежит в /var/www/sitename.ru/ но не всегда. Плюс поддомены, которые лежат вообще как бог на душу положит. Поэтому статика отдаётся не в полном объёме.

Плюс приходится учитываеть хитрые реврайты, которые заменяют обращение не только к /page.html но и порой к /images/small/img015.jpg, вычисляя реальный это файл или реврайт на какой-либо скрипт. Но это я сделал.

А вот с поддоменами и прочим нестандартным расположением пока ничего придумать не смог. Это надо какой-то внешний парсер, который возьмёт конфиг апача, и по нему соберёт статичный набор правил (на каждый домен и поддомен). Тогда у nginx будет здоровый конфиг но там будет учтено все домены/поддомены. nginx вообще критично относится к сложным конфигам?

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