нагрузочное тестирование Drupal и рекомендации по тюнингу

Главные вкладки

Аватар пользователя cvss cvss 11 июня 2009 в 16:43

Добрый день.

Мы проводим нагрузочное тестирование для распространенных CMS, веб-приложений и фреймворков. В том числе планируем тестировать Drupal. Результаты тестирования будут публиковаться открыто.

Приглашаю принять участие в тестировании. В обмен участники получат бесплатно годовой хостинг на VDS.

Цели тестирования.
Главная цель: определить какую посещаемость могут обеспечить заданные аппаратные конфигурации. Или, в обратной формулировке, сколько серверных ресурсов нужно для обеспечения заданной посещаемости.
Дополнительная цель: найти распространенные узкие места, характерные для приложения, чтобы составить общие рекомендации по настройке и оптимизации.

Методика тестирования.
Чтобы получить осмысленный результат, а не сферического коня в вакууме, тестирование нужно проводить в максимально реалистичных условиях. Для этого требуются уже существующие сайты - с сложной структурой, с контентом, с подключеными дополнительными модулями и т.д. В идеале нужно несколько сайтов разной сложности и тяжести.

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

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

Во время теста также замеряется объем используемой памяти, число процессов, потребление процессора и памяти по процессами, дисковый ввод-вывод.

Результаты тестов анализируются, производятся новые настройки и тестирование продолжается до достижения устойчивых результатов.

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

Пожелания к участникам.
Обязательно требуется хорошее знание php, mysql и достаточное понимание устройства Drupal. Тестирование может потребовать от участников заметных затрат времени, поэтому, пожалуйста, трезво оцените возможность своего участия.

Пожелания к сайтам участников.
Сайты не должны нарушать российские и международный законы, это не должен быть поисковый спам, финансовые пирамиды и прочие "серые" проекты. Желательно, чтобы это были общественно-полезные сайты, но также могут быть и коммерческие сайты.

Конфиденциальность данных
Мы относимся к тестируемым сайтам так же, как к серверам обычных платных клиентов. Мы гарантируем конфиденциальность информации на стандартных условиях оператора связи, действия которого регулируются Законом о связи. При необходимости, соглашение о конфиденциальности может быть оформлено в виде договора на бумаге.

Бесплатные VDS для участников тестирования
Квота на бесплатные VDS для участников тестирования: 3 сервера сроком на 1 год. Характеристики серверов: виртуальная машина Xen, 480 MHz CPU, 256 Mb RAM, 8 Gb HDD. Можно будет предоставить сервер и большей мощности, но это нужно обсуждать отдельно. Число участников тестирования не ограничено только тремя, и если вам не нужен бесплатный VDS, вы тоже можете принять участие в тестировании. Максимальное число участников: 20-30 человек.

Тестирование начнется, ориентировочно, 20 июня. Максимальный срок тестирования - месяц, минимальный - как получится. Для тестирования будет предоставлено до 60 виртуальных выделенных серверов различной мощности - от 160 MHz CPU/64 Mb RAM/2 Gb HDD до 2560 MHz CPU/2048 Mb RAM/64 Gb HDD.

Заявки на участие в тестировании принимаются через форму на сайте: http://www.truevds.ru/contacts.form В заявке нужно будет написать "Тестирование Drupal", и дать ссылки на свои сайты. Вопросы и пожелания лучше всего обсуждать здесь.

Если вы сами не будете участвовать в тестировании, но у вас есть знакомые, которым это могло бы быть интересно, дайте, пожалуйста, им ссылку на этот пост.

Комментарии

Аватар пользователя lionell@drupal.org lionell@drupal.org 11 июня 2009 в 16:51

"cvss" wrote:
С тестируемого сайта снимается копия, которая размещается на тестовых серверах разной мощности. На работе оригинального сайта это никак не сказывается, он продолжает работать как прежде.

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

Аватар пользователя cvss cvss 11 июня 2009 в 17:30

<a href="mailto:lionell@drupal.org">lionell@drupal.org</a> wrote:
"cvss" wrote:
С тестируемого сайта снимается копия, которая размещается на тестовых серверах разной мощности. На работе оригинального сайта это никак не сказывается, он продолжает работать как прежде.

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

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

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

Аватар пользователя axel axel 11 июня 2009 в 22:25

<a href="mailto:lionell@drupal.org">lionell@drupal.org</a> wrote:
интересно, кто даст копию хорошего сайта..я бы не дал
тоже самое, что и уникальный сценарий..
Ну так вообще тогда сайты на хостинги не размещать, а только на собственные сервера и с шифрованной файловой системой )

Аватар пользователя axel axel 11 июня 2009 в 17:03

Хорошее начинание!

Quote:
Тестирование выполняется одновременным обращением с нескольких машин с помощью программы siege, которая прогонятеся в цикле по составленному списку запросов. Список запросов для siege формируется либо из лог-файлов веб-сервера оригинально сайта, либо по логу, полученному рекурсивным обходом сайта с помощью wget.

Планируется ли имитация залогиненных пользователей и запросы на запись данных (заполнение форм, закачка файлов)? Потому как иначе получится измерение только скорости работы кешей разного уровня - системного, кеша mysql, кеша скрипта. Скажем в друпале (и не только в нём) кеширование для анонимных посетителей гораздо эффективнее, чем для залогиненных - повторные чтения страниц без имитации cookies залогиненного пользователя будут браться из кеша и отрабатываться с минимальной нагрузкой на систему. Это не покажет реальной нагрузки на сайты. Может быть стоит задействовать более гибкие инструменты? Что-нибудь вроде pushtotest к примеру.

Аватар пользователя cvss cvss 11 июня 2009 в 17:22

axel wrote:
Хорошее начинание!

Планируется ли имитация залогиненных пользователей и запросы на запись данных (заполнение форм, закачка файлов)? Потому как иначе получится измерение только скорости работы кешей разного уровня - системного, кеша mysql, кеша скрипта. Скажем в друпале (и не только в нём) кеширование для анонимных посетителей гораздо эффективнее, чем для залогиненных - повторные чтения страниц без имитации cookies залогиненного пользователя будут браться из кеша и отрабатываться с минимальной нагрузкой на систему. Это не покажет реальной нагрузки на сайты. Может быть стоит задействовать более гибкие инструменты? Что-нибудь вроде pushtotest к примеру.

С одной стороны, для большинства сайтов основное число посетителей - анонимные, поэтому результат такого тестирования скорее будет достаточно адекватным для этого большинства. Конечно, в идеале хотелось бы иметь и авторизованных пользователей, и запросы с записью. Но это делает процедуру тестирования намного более трудоемкой. Поэтому, как обязательное условие тестирования это не ставилось. Но если кто-нибудь из участников будет готов сделать такое более глубокое тестирование, мы только за.

С pushtotest у нас никто дела не имел. Я по сайту не смог понять, каким образом он делает нагрузочное тестирование. Есть какие-нибудь рекомендации по его использованию?

Аватар пользователя axel axel 11 июня 2009 в 22:20

cvss wrote:
С одной стороны, для большинства сайтов основное число посетителей - анонимные, поэтому результат такого тестирования скорее будет достаточно адекватным для этого большинства. Конечно, в идеале хотелось бы иметь и авторизованных пользователей, и запросы с записью. Но это делает процедуру тестирования намного более трудоемкой. Поэтому, как обязательное условие тестирования это не ставилось. Но если кто-нибудь из участников будет готов сделать такое более глубокое тестирование, мы только за.

С pushtotest у нас никто дела не имел. Я по сайту не смог понять, каким образом он делает нагрузочное тестирование. Есть какие-нибудь рекомендации по его использованию?

По-моему опыту не всё так счастливо в этой статистике. Соцсети, форумы и пр. где подразумевается общение знакомых друг с другом людей - подразумевает авторизацию и работу под постоянным логином. На сайтах с которыми довелось работать это грубо половина посетителей. Для drupal.ru тоже кстати справедливо.

Упс, а я до pushtotest.com вообще не могу достучаться Sad Но вообще там на сайте была подробная документация. Софтина комплексная с кучей возможностей, больше ориентированная на функциональное тестирование, но с поддержкой стресс-тестов (тесты можно распределять между несколькими серверами, для создания высокой нагрузки на тестируемый ресурс). Есть ещё проект jmeter - похожая штука.

Аватар пользователя cvss cvss 11 июня 2009 в 23:16

axel wrote:

По-моему опыту не всё так счастливо в этой статистике. Соцсети, форумы и пр. где подразумевается общение знакомых друг с другом людей - подразумевает авторизацию и работу под постоянным логином. На сайтах с которыми довелось работать это грубо половина посетителей. Для drupal.ru тоже кстати справедливо.

Согласен, остается только убедить тестеров, чтобы они писали полноценные сценарии тестирования Smile

Quote:
Есть ещё проект jmeter - похожая штука.

C jmeter дело приходилось иметь. А у pushtotest есть какие-нибудь преимущества?

Аватар пользователя axel axel 12 июня 2009 в 13:48

cvss wrote:

Quote:
Есть ещё проект jmeter - похожая штука.

C jmeter дело приходилось иметь. А у pushtotest есть какие-нибудь преимущества?
Из опенсорсного софта в этой области pushtotest по-моему самый функциональный. Можно писать тесты на java, jython, php. Интегрирован с Testgen4Web - плагином для FF, который позволяет записывать действия пользователя на сайте (клики мышки, переходы, ввод форм). Можно организовывать распределённые тесты для создания большой нагрузки - созданный в TestMaker тест размещается на нескольких серверах с TestNode, которые обращаются к тестируемому серверу. Отдельный агент меряет нагрузку на CPU, память и сеть на тестируемом сервере. Вообще весь этот комплекс хорошо применять при разработке сайтов, когда пишутся проверки функционала, они же потом используются для стресс-тестов, а в продуктиве те же тесты позволяют мониторить корректность повседневной работе сайта на разных задачах.

Для целей такого глобального тестирования разных скриптов по-моему можно ограничиться несколькими общими тестами. Ну хотя бы имитировать куки залогиненных пользователей при получении страниц. Иначе, вся эта затея даст очень однобокие результаты - оценку эффективности кешей для анонимов в скриптах и эффективность настройки ОС на ваших серверах )

Аватар пользователя cvss cvss 12 июня 2009 в 14:48

axel wrote:

Из опенсорсного софта в этой области pushtotest по-моему самый функциональный. Можно писать тесты на java, jython, php. Интегрирован с Testgen4Web - плагином для FF, который позволяет записывать действия пользователя на сайте (клики мышки, переходы, ввод форм). Можно организовывать распределённые тесты для создания большой нагрузки - созданный в TestMaker тест размещается на нескольких серверах с TestNode, которые обращаются к тестируемому серверу. Отдельный агент меряет нагрузку на CPU, память и сеть на тестируемом сервере. Вообще весь этот комплекс хорошо применять при разработке сайтов, когда пишутся проверки функционала, они же потом используются для стресс-тестов, а в продуктиве те же тесты позволяют мониторить корректность повседневной работе сайта на разных задачах.

Ок, попробуем.

axel wrote:

Для целей такого глобального тестирования разных скриптов по-моему можно ограничиться несколькими общими тестами. Ну хотя бы имитировать куки залогиненных пользователей при получении страниц. Иначе, вся эта затея даст очень однобокие результаты - оценку эффективности кешей для анонимов в скриптах и эффективность настройки ОС на ваших серверах )

Не только на наших серверах, если бы было так, пользы в тестировании было бы совсем мало.

Настраивать ОС можно для каждого сайта и эти настройки будут одинаковые что у нас, что на VDS других хостеров с Xen, включая Amazon EC2, что на обычных выделенных серверах. Соответственно, эти настройки будут тоже публиковаться вместе с тестами.

Аватар пользователя Valeratal Valeratal 16 июня 2009 в 16:18

мне вот не понятно, зачем человеку отдающего дамп, нужно разбираться в php и SQL
Дали дамп - можете варьировать настройки php и SQL самостоятельно