- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Эксклюзивно для Се-Форума
Мне было интересно знать, сколько посетителей может выдержать сайт на движке Drupal, если разместить его на VPS с 512Mb RAM?
Сначала я подготовил VPS: взял шаблон Gentoo, собрал там GCC 4.4.1 и весь софт собрал этим GCC архитектуры i686 с безопасными флагами оптимизации под процессор (Quad Xeon):
Соответственно, этот софт уже заработал на максимальную производительность - осталось дело за малым, настроить сам сервер.
Для боевой проверки я сделал копию сайта dedic.ru, отключив все исходящие коннекты. Для мониторинга в я поставил phpsysinfo - весит мало, показывает достаточно.
Сначала я сделал нагрузку с помощью siege. Что и говорить - результат был плачевным, не потянуло даже 128 посетителей в минуту - много отказов в соединениях.
Конечно, виноват был mysql. С помощью mysqltuner.pl я изменил рекомендуемые параметры и после этого mysql перестал быть проблемой.
Проблемой стал php. Уже на 150 посетителях в минуту он начал тормозить. Решением проблемы стал eAccelerator с выделенной памятью под кеш 128Mb.
После этого на VPS стало возможно запустить 250 посетителей, однако иногда коннекты внезапно обрывались. Причин тому было две - иногда "сдыхал" процесс php и mysql не вытягивал, забирая на себя 30% CPU.
Финальное решение выглядело так:
Апстрим из 2-х пулов по 2 php процесса в каждом - для отказоустойчивости
В php 128Mb на процесс и 128Mb на eaccelerator
mysql - настроен по рекомендациям mysqltuner.pl
Был установлен memcache с настройками по умолчанию
В результате система в состояние готовности занимает 73-77%, в состояние "осады" на 250 посетителей в минуту - один раз скакнуло до 84%.
Ну а вот показатели siege, тестировалось с другой VPS на этом-же сервере, команда: siege -c 250 -i -t 1m -d 5 -f urls.txt:
А это кусок top'а в момент "осады":
Обратите внимание - в максимально отлаженной системе процессом, потребляющим больше всего CPU должен быть php, но не mysql.
А вот с памятью наоборот - лучше дать ее сколько надо, как советует mysqltuner.pl и потратив немного RAM свести потребление CPU mysql'ом к минимуму. У меня это 25Mb, совсем немного.
Да - реальный расход оперативки в колонке RES.
Так что если у вас есть проект на Drupal'е с высокой посещаемостью - можете настроить себе VPS по такой системе.
Будут вопросы - задавайте.
Сначала я подготовил VPS: взял шаблон Gentoo, собрал там GCC 4.4.1 и весь софт собрал этим GCC архитектуры i686 с безопасными флагами оптимизации под процессор (Quad Xeon):
Соответственно, этот софт уже заработал на максимальную производительность - осталось дело за малым, настроить сам сервер.
1. Было бы интересно, что дала гента (помимо того, что дистрибутив, видимо Вам привычный).
Т.е. аналогичный конфиг на бинарном дистрибутиве с софтом из коробки.
2. memcache - оно что-то дало? (подробностей нет)
3. Что в urls.txt?
360000 уников - порядка 10 нестатических реквестов в секунду, верно? Прям как у Вас
в тесте. Но при этом - Response time: 16.98 secs, что черезчур уж много. Неживое
оно уже. Мораль - такую нагрузку сервер не держит.
А вот сколько система может в штатном режиме? Чтобы отклик был порядка 1-5 сек.
siege - это не показатель.
Как правило реальтные юзеры намного больше нагружают сервер.
1. Меньшее потребление памяти, немного шустрее работает. Но это не привычный для меня дистр - я больше по CentOS/RHEL :)
2. Да, дало - меньшая нагрузка к mysql
3. Карта сайта - каждый url в одну строку
-c 250 - это значит 250 реквестов в секунду :)
Оно живое, ибо Availability: 100.00 %, но медленное.
Если делать 100 реквестов в секунду, то скорость будет вполне нормальной:
Andreyka добавил 30.09.2009 в 19:12
siege - это не показатель.
Как правило реальтные юзеры намного больше нагружают сервер.
При просмотре сайта - идентично, при постинге - конечно больше. Это тест - чисто на отдачу контента друпалом.
Если есть утилита которая регается, вводит капчу и постит - с удовольствием потестирую ;)
siege - это не показатель.
Как правило реальтные юзеры намного больше нагружают сервер.
Что мешает Вам моделировать siege нагрузку "реальных юзеров"?
По собственному опыту, siege сервер выдерживает проще, чем юзеров...
siege только скорость ответа от сервера замеряет, а всё со страницы не скачивает... (на сколько я знаю).
Могу ошибаться, в тонкости настройки не вникал.
Вообще такой тест - не показатель. Ибо на продакшн-проекте, которому реально необходима ЦМС такое не возможно. Вы бы впихнули туда хотя бы Views и поквключали бы модули, поставили бы галерею фото и т.п. Тогда можно было бы смотреть... А без модулей... Нафига оно нужно? Тем более, вы тестируете OpenVZ... А какие там параметры - йа хз... М.б. там нода ненагружена и ресурсы не жестко ограничены...
По собственному опыту, siege сервер выдерживает проще, чем юзеров...
siege только скорость ответа от сервера замеряет, а всё со страницы не скачивает... (на сколько я знаю).
Могу ошибаться, в тонкости настройки не вникал.
Тогда вникните. Обучить его "все скачивать" с нужных страниц - не составляет труда.
Т.е. в большинстве случаев - можно даже взять статистику запросов из реального access_log и скормить siege.
Тогда вникните. Обучить его "все скачивать" с нужных страниц - не составляет труда.
Т.е. в большинстве случаев - можно даже взять статистику запросов из реального access_log и скормить siege.
Стоп. Так подскажите как, если знаете?
Статистика запросов из access_log даст только то, что запросы будут к разным url'ам.
А не при каждом запросе разных url'ов он ещё и будет всё со страницы скачивать.
P.S.: иначе получится 250к запросов к web-серверу - это реальных 50-100к. (т.к. фактически при каждом заходе юзера на страницу запрос выполняется далеко не один)
Да и вопрос не в том, можно ли научить. Дело в том, что Andreyka скармливал только карту сайта, получается это не совсем "реальные" заходы на сайты.
Вообще такой тест - не показатель. Ибо на продакшн-проекте, которому реально необходима ЦМС такое не возможно. Вы бы впихнули туда хотя бы Views и поквключали бы модули, поставили бы галерею фото и т.п. Тогда можно было бы смотреть... А без модулей... Нафига оно нужно? Тем более, вы тестируете OpenVZ... А какие там параметры - йа хз... М.б. там нода ненагружена и ресурсы не жестко ограничены...
Почему это такое невозможно? Возможно. Сайт dedic.ru - вполне себе продакшн сайт 😂
Если у тебя есть такой сайт, то скинь архив - я его поставлю вместо своего и прогоню со всеми модулями.
Теперь про openvz. Я лимитирую только оперативку на своих VPS, как сообщалось по ссылке. Вывод лимитов:
Пример куска url.txt:
1. Меньшее потребление памяти, немного шустрее работает. Но это не привычный для меня дистр - я больше по CentOS/RHEL :)
Debian/CentOS был бы интереснее. Есть подозрение, что "компиляция" и "оптимизация" с гентой связанные - мало что дали в итоге в цифирах. // Был где-то стенд с друпалом в qemu - надо его будет помучать на досуге.
-c 250 - это значит 250 реквестов в секунду :)
Оно живое, ибо Availability: 100.00 %, но медленное.
1. Человеки обычно считают > 16 сек отклик уже неживым. А ведь есть еще статика,
картинки, лаги сети...
2. Ни разу не 250 реквестов в секунду, Вас абманули :D.
Не на 250 смотрите - скорее, на Transaction rate. Вот у Вас сколько в первом тесте было: 10.17 trans/sec. А -с ключик - это не совсем то ;-) В тесте - у Вас _всего_ в минуту 287 реквестов.
При просмотре сайта - идентично, при постинге - конечно больше. Это тест - чисто на отдачу контента друпалом.
Если есть утилита которая регается, вводит капчу и постит - с удовольствием потестирую ;)
Есть, которая умеет с зареганых пользователей постить ;-)
myhand добавил 30.09.2009 в 19:52
Стоп. Так подскажите как, если знаете?
Статистика запросов из access_log даст только то, что запросы будут к разным url'ам.
А не при каждом запросе разных url'ов он ещё и будет всё со страницы скачивать.
Ну идея проста - создать необходимую "статистическую" картину заходов на сайт. Т.е. в единицу времени спрашивать, скажем, 100 реквестов, из них 33 - url1, 31 - url2 и т.п. Для siege скармливают список url - они и повторяться могут.
Да и вопрос не в том, можно ли научить. Дело в том, что Andreyka скармливал только карту сайта, получается это не совсем "реальные" заходы на сайты.
Это да - я потому и задал вопрос про urls.txt в первом посте.