неділя, 4 листопада 2007 р.

Швидкість статичної сторінки: історичний тест nginx на titan-r

У листопаді 2007 року я припускав, що статична сторінка має обслуговуватися значно швидше за динамічну. У нашій тодішній конфігурації її віддавав nginx без передавання запиту до Apache. Для 100 000 запитів журнал показує 13.784814 с і 7254.36 запиту/с.

Умови та журнал вимірювання

Я перевіряв один файл /rus/programs.htm завдовжки 50 823 байти з паралельністю 5. Такий сценарій показував обслуговування повторних запитів до статичного ресурсу, а не виконання різних операцій у CMS. Нижче — повний журнал запуску.

root@titan-r:~# ab -c 5 -n 100000 http://www.rudjuk.kiev.ua/rus/programs.htm
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.rudjuk.kiev.ua (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Finished 100000 requests


Server Software:        nginx/0.4.13
Server Hostname:        www.rudjuk.kiev.ua
Server Port:            80

Document Path:          /rus/programs.htm
Document Length:        50823 bytes

Concurrency Level:      5
Time taken for tests:   13.784814 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      810832704 bytes
HTML transferred:       787332704 bytes
Requests per second:    7254.36 [#/sec] (mean)
Time per request:       0.689 [ms] (mean)
Time per request:       0.138 [ms] (mean, across all concurrent requests)
Transfer rate:          57442.05 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0    0   0.2      0      30
Waiting:        0    0   0.2      0      30
Total:          0    0   0.2      0      30

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      0
  95%      0
  98%      0
  99%      0
 100%     30 (longest request)

Як читати ці результати

За тодішніми підрахунками я отримав різницю приблизно у 600–700 разів щодо свого тесту «Бітрікс» та у 200–250 разів щодо Joomla/Joostina. Але це були різні сценарії: готовий файл і сторінки CMS з іншою роботою на сервері. Такі коефіцієнти характеризували мої конкретні запуски, а не загальну швидкодію продуктів. Лічильник HTML transferred 787332704 bytes не узгоджується з простим множенням Document Length 50823 bytes на 100 000; без перевірки причини його не слід використовувати для висновків про пропускну здатність.

Офіційна документація ApacheBench. Після цього мені було цікаво перевірити значно більшу кількість звернень. Результат окремого тесту на мільйон запитів показує продовження цієї перевірки.

Немає коментарів:

Калькулятор K2: від запитання про ціну до готової комерційної пропозиції

«А скільки коштуватиме інша комплектація?» — природне запитання покупця. Якщо для відповіді менеджер щоразу відкриває таблицю, шукає коефіці...