Подготавливаю сайт своего маленького свечного заводика к ожидаемому в связи с парой событий росту кол-ва посетителей. Сделал связку apache2+nginx, настроил раздачу статики, сжатие стилей, прочую разность, местами прокрутил оптимизацию.
Прогнал ab — примерно 1700 rps, прогнал LoadImpact — дилэй около 2 сек при 50 клиентах, 1.2 с при 30 и 40 клиентах. Средняя загрузка камня на 30-40 клиентах — около 35%, памяти — в пределах 280-290 Мб на всю машину.
Ось — Сквиз, камень — два ядра от Ксеона E5420 (сижу на VPS), оперативки — гиг.
Что я мог пропустить, и в какую сторону копать? Стоит ли больше загружать оперативку, чтобы разгрузить камень, или при планируемом старте в 3k юников (10-15 просмотров на штуку) проще переехать на нормальный сервер?
На немного лучшей конфигурации оборудования стоит:
StartServers 50
MinSpareServers 50
MaxSpareServers 200
MaxClients 256
MaxRequestsPerChild 500
Оперативки съедается почти гиг при минимальных нагрузках. Но 3-4 SpareServer-а явно мало
У меня помимо прочего на той же машине стоит сабвёржен, да и в целом к апачу модулей подключено немало, поэтому если оставлять больше 5 инстансов на простой, память будет течь рекой.
Ну так тут уже дилема между проивзодительностью и загруженностью) Играйтесь тогда с цифрами пока не найдете оптимальное для себя решение. Тут уже подсказать сложно. Но как минимум я бы начал с увеличения MaxSpareServers
Тут конечно зависит от того, что у вас за приложение, но по идее такую нагрузку с классическим сайтом на борту может выдержать любой shared хостинг, так что зря паритесь. Вот если 1,5к в час, тогда можно и призадуматься)
Самопальный скрипт с периодическим обращением к вложенным zip-архивам и генерацией PNG по данным графиков из этих архивов, две доски (IPB2+phpBB3), Вордпресс, SVN, кое-что еще по мелочи.
первый пункт я бы переписал на что то более системноориентированное (си, перл, смотря что у вас там установлено и потом только собирал графики веб сервером). Ну это так рекомендация для совершенно правильной конфигурации. Сами подумайте — 2 секунды при где то 10 обращений в секунду (это когда у вас тест на 50 пользователей онлайн) это 400-600 в минуту, 20к в час. Так что нужно ли оно вам?
Смотря что вы считаете средней волной) тут все очень относительно. В любом случае я бы не заморачивался, пока не будут заметны тормоза. Просто нужно знать что при этом делать)
Какой наплыв посетителей вы ожидаете?
Если идет речь о хабраэффекте или аналогичном количестве трафика — крутить настройки апача на VPS с гигом памяти бесполезно. Сдует вместе с хостингом.
Ну, когда планировался ресурс, наплыва не ожидалось. Вместе с тем, ввиду некоторых договорённостей, достигнутых касательно тематики его развития, ожидается резкий рост в течение короткого времени.
Навскидку — около 2-4k уников для начала, и где-то по 5-15 просмотров на каждого.
Я имею ввиду — 2-4к уников за какой период? Если за секунду — это одно, если за месяц — совсем другое.
Я так понимаю, что речь идет о униках в сутки. Из описания видно, что нагрузка на проц большая, в то время как памяти еще много. Это можно решить, убрав MaxRequestsPerChild до 1000, и утроив SpareServers. Но настройками апача мало что можно решить. Так же будет разумным попробовать убрать апач вообще (php-fpm, например, если речь идет о PHP). Нагрузку в 2-4к уников должно держать без проблем, если, конечно, нет явных тормозов в коде.
У меня шаред-хостинг, два раза Хабраэффект без задержек и проблем — 10 000 уников в день + 3-4 просмотров на каждого (в пиковый день). Что я делаю не так?)
Посмотреть бы на сайт — если он не слишком динамичный или можно просто переделать — отделить динамичесике и как бы статические части страниц — то можно сделать так, что сайт будет отдавать столько, сколько позволяет канал. Главное — пропустить как можно меньше запросов к apache, по максимуму обрабатывать nginx.