Апач с 15k витхостов требует ulimit -s unlimited
Хотя 15k на vps не будут пускать, тем не менее — учтите, что чем больше энтропия, тем выше требования к стеку
Если у вас на апаче 15к виртхостов, то у вас что-то совсем не то с бизнес-логикой. Не представляю ситуации, когда может понадобится даже 50 виртхостов, ну кроме хостинговых серверов.
Хостинговый сервер вполне может быть на VPS, если это сильно начинающий хостер :)
Но согласен. Как только количество пользователей перевалит хотя бы за 100 человек. Уже пора съезжать на отдельный сервер. Пусть даже и на какой-нибудь бюджетный.
50 на сервак? Легко. У меня в университете их примерно 30 (на одной машине). И это мы еще ограничиваем запросы и фантазии руководства и пользователей. Ни разу не хостинговая компания.
а TIME_WAIT там не учитываются, или вообще не поддерживаются? Они же остаются, когда сервер закрывает соединение.
А еще нельзя использовать частые соединения на localhost (то есть не использовать схему фронтенд-бэкенд, использовать только постоянные соединения с БД, итд)
Вот обычный хостинг (порты 81, 85 — это апач)
В результате nginx-apache выливается в
$ netstat -atn | wc -l
1430
Cредняя недельная нагрузка апача 6.08 requests/sec
Но я почти уверен, что в пиковые моменты использованных сокетов до 10 раз больше.
На Virtuozzo/OpenVZ своп доступен, но только по желанию хостера и только по принципу «всем или никому». По крайней мере, два года назад был доступен :) Так что надежнее определять платформу по uname -a.
Хм, по uname -a у меня, например, никакого намека на используемую систему виртуализации.
Насчет свопа — точно. Эмпирическое правило, что я написал, не всегда работает)
Проще узнать у хостера)
моя очередь хмыкать :)
в бытность мою админов VPS-хостинга с виртуозой uname стабильно писал 2.6.9-bla-bla-vz
он ведь отдается с хостовой системы, а под virtuozzo/openvz ядро патчится, и version.h в т.ч.
Применимо аж на все 200%. Но дело в другом: связать-то её ни с чем не свяжут, но в квоту к вам — запишут обязательно. Чтобы не было идиотских ситуаций когда вы успешно выделили 200M, а при попытке использовать 110M — программка в кору падает.
Блин, это не надо пихать в инит-скрипты. Для этого есть /etc/security/limits.conf! Там же можно настроить ограничения по группам, чтобы то, что нужно, точно не упало!
Раз уж второй раз пишут, и эмоционально) Вот что мне по этому поводу думается.
1. Если нужные процессы запускаются через PAM от отдельных пользователей-групп, то решение с limits.conf хорошее.
2. Не везде есть-используется PAM. Если его нет, или где-то права даются минуя PAM, то /etc/security/limits.conf ничего не ограничивает. У меня PAM не установлен, например.
3. «Не надо» — не аргумент) Решение «пихать все в инит-скрипты» — одно из возможных, оно простое, универсальное и работает. +Для применения индивидуальных ограничений процессы не обязательно должны запускаться от разных пользователей-групп. Но я на этом способе не настаиваю, статья не об этом совсем)
Только что прописал ulimit -s 1024 в /etc/init.d/rc До этого VPS висел, жутко не хватало памяти. Сейчас вроде нагрузка упала. Было 250-270 Мб, стало 140-150. Немного растет постепенно, но не смертельно. Спасибо!
Как можно снизить потребление оперативной памяти на VPS в 2 раза, ничего не меняя в настройках программ