• Нагрузочное тестирование игрового сервера на SmartFox?

    sch1z0phr3n1a
    @sch1z0phr3n1a
    На самом деле зависит от протокола и целей тестирования. Как работает SmartFox? Просто общение поверх обычного HTTP? Тогда подойдут стандартные средства (ab/siege/yandex-tank). Если есть сценарии, которые нужно эмулировать (пользователь зашел, нажел эту кнопку, потом ту, потом третью, и все в рамках одной сессии) — однозначно, Apache Jmeter. Если протокол более сложный, то все равно можно воспользоваться JMeter, он очень гибкий. Можно встраивать свои протоколы. Если нужна помощь по конкретным инструментам, готов помочь, но задавайте конкретные вопросы. Можно в личку:)
    Ответ написан
    Комментировать
  • Нагрузочное тестирование сайта

    @cbx
    Если хочется просто и быстро, то вполне сгодится Apache Benchmark идущий в комплекте с веб-сервером Apache. Как-то так:

    ab -n 1000 -c 10 http://my.site.dot.com/url/path/

    Варьируя число одновременных соединений (-c 10) и общее количество запросов (-n 1000) можно примерно прикинуть когда сайт начнёт загибаться. Тестировать лучше с другой машины. Также стоит учесть, что если контент страницы меняется от запроса к запросу (динамика), то AB посчитает такие ответы сервера как Failed: www.celebrazio.net/tech/unix/apache_bench.html

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

    Если захочется большего — смотрите более богатые по возможностям Apache JMeter или Tsung (первый графический, второй консольный). Оба умеют кластеризоваться и генерировать нагрузку с нескольких машин (для этого удобно арендовать инстансы в Amazon EC2), имеют встроенный прокси для записи пользовательских сессий и позволяют задать скорость клиентского соединения (актуально для имитации медленных клиентов и оценки влияния того же nginx). UPD: ещё неплох Yandex Tank

    В любом случае, перед тем как измерять производительность сайта, озаботьтесь мониторингом серверов на которых этот сайт крутится. Без этого смысла в бенчмарках очень мало — они дадут вам какие-то цифры, но дальнейшего плана действий у вас не будет. Как минимум — запустите на машинах утилиту top и смотрите загрузку CPU, потребление памяти и дисковую активность. Также после тестирования просматривайте логи на предмет появившихся ошибок (нехватку сокетов, памяти, ошибки веб-сервера или БД). Полезно включить логгирование медленных запросов в MySQL.

    Дальше — устраняйте выявленные узкие места и повторяйте процесс заново, до тех пор пока не выйдете на приемлемый уровень производительности.
    Ответ написан
    Комментировать