Как мне определить максимальную нагрузку, которую могут обрабатывать мои серверы? - PullRequest
4 голосов
/ 07 ноября 2008

В статье Джоэла для Inc. под названием Как трудно это может быть ?: Нераспознанный путь , он написал:

... оказывается, что Джефф и его программисты были так хороши, что они построил сайт, который может обслуживать 80000 посетителей в день (примерно 755 000 страниц просмотры)

Как мне определить максимальную нагрузку, которую может обрабатывать мой сервер (-ы)?

Ответы [ 6 ]

3 голосов
/ 07 ноября 2008

JMeter, ab или httperf

3 голосов
/ 07 ноября 2008

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

Чтобы создать надежный эталон того, что могут обрабатывать ваши серверы, вам сначала нужно выяснить, каковы модели использования ваших пользователей. Если ваш сайт уже запущен, вы можете легко собрать эти данные из ваших журналов. Затем вам нужно создать симуляцию, которая будет подражать тем же шаблонам, что и ваши реальные пользователи ... то есть - просматривать первую страницу, вход в систему, просматривать страницу статуса и так далее. Разные страницы будут создавать различную нагрузку на серверы, требуя, чтобы вы фактически выбирали правильный набор страниц при моделировании нагрузки на ваши серверы. Наконец, вам нужно выяснить, какие ресурсы кэшируются вашими пользователями, вы можете сделать это снова, просматривая журнал доступа или используя такой инструмент, как firebug.

2 голосов
/ 07 ноября 2008

Вы можете создать несколько «стресс-тестов» и запустить их, как говорят другие постеры.

Apache имеет инструмент под названием JMeter, в котором вы можете создавать эти тесты и запускать их несколько раз.

http://jmeter.apache.org/

Привет.

1 голос
/ 07 ноября 2008

Джейсон, вы смотрели на нагрузочный тест, встроенный в Visual Studio 2008 Team System? Проверьте это видео , чтобы увидеть демо.

Редактировать: Вот другое видео с лучшим разрешением.

1 голос
/ 07 ноября 2008

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

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

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

1 голос
/ 07 ноября 2008

В Apache есть инструмент под названием ab, который вы можете использовать для тестирования сервера. Он может моделировать запросы на загрузку и ситуации параллелизма для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...