Назад | Перейти на главную страницу

анализ теста веб-сервера

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

Мы изменили my.cnf на my-large.cnf (http://fts.ifac.cnr.it/cgi-bin/dwww/usr/share/doc/mysql-server-5.0/examples/my-large.cnf.gz) и установите максимальное количество подключений на 350

Проблема в том, что я не уверен, означают ли результаты, что он может обрабатывать много (1000 одновременных пользователей) или нет?

если запустить такой тест:

 ab -n 10000 -c 100 www.mysite.com 

Я получаю такой результат

Server Software:        Apache/2
Server Hostname:        www.mysite.com
Server Port:            80

Document Path:          /
Document Length:        29311 bytes

Concurrency Level:      100
Time taken for tests:   704.062 seconds
Complete requests:      10000
Failed requests:        1634
   (Connect: 0, Receive: 0, Length: 1634, Exceptions: 0)
Write errors:           0
Non-2xx responses:      1634
Total transferred:      255952902 bytes
HTML transferred:       251613362 bytes
Requests per second:    14.20 [#/sec] (mean)
Time per request:       7040.615 [ms] (mean)
Time per request:       70.406 [ms] (mean, across all concurrent requests)
Transfer rate:          355.02 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       11   16   3.1     15     105
Processing:    91 6998 16245.3   5384  237924
Waiting:       90 6814 15642.3   5296  237923
Total:        105 7014 16245.3   5399  237939

Означает ли это, что сервер должен иметь возможность обрабатывать 10000 пользователей?

Наши спецификации сервера:

Я думаю, это должно справиться с некоторым трафиком?

если запустить такой тест:

Затем, в зависимости от того, насколько плохо настроен ваш веб-сервер, вы можете каждый раз получать разные результаты. В самом деле, вы можете захотеть установить цель настройки, чтобы уменьшить разброс между последовательными запусками. И вы действительно не хотите делать это на своем реальном сервере.

Означает ли это, что сервер должен иметь возможность обрабатывать 10000 пользователей?

Нет. Количество пользователей не имеет отношения к объему трафика, который может обработать веб-сервер - ограничение - это количество одновременных запросов. Если вы хотите знать, сколько пользователей может обрабатывать сервер, вам придется провести очень серьезное моделирование, включая рассмотрение таких вещей, как пропускная способность и RTT (запись и воспроизведение сеанса не дает точной картины, хотя это лучше, чем просто ударяя по единственному URL-адресу).

Я не уверен, означают ли результаты, что он может справиться со многими или нет

Сколько это много?

Мы изменили некоторые настройки

Теперь мы к чему-то приближаемся годный к употреблению. Как соотносятся показатели с показателями до применения изменений?

ab - отличный инструмент, если вам нужно выполнить простые тесты.

Если ваш сайт статический и содержит только один html-документ, вы можете положиться на ab. Но я не думаю, что это так.

Если ваш сайт динамический, он содержит файлы css, javascript, изображения, ajax, кеш заголовков и т.д. ... Итак ab неправильно имитирует пользователей и ваш тест не имеет отношения.

Как сделать соответствующий тест?

Ты можешь использовать Jmeter например. Jmeter предлагает прокси которые могут записывать трафик в вашем браузере. Затем вы можете сыграть в нее X раз, чтобы смоделировать количество пользователей.

Конечно, есть также много коммерческих решений (бытовая техника, облако и т. Д.).