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

Energine на titan-r: навантажувальний тест 2007 року

У листопаді 2007 року я перевіряв Energine на сервері titan-r. Очікував, що використані в системі технології дадуть перевагу у швидкодії, але отриманий результат мене розчарував.

За моїми тодішніми тестами Energine виявилася повільнішою за Joomla; в тих самих нотатках я згадував і швидші результати phpNuke та Drupal. Водночас вона випередила протестований мною «Бітрікс». Щоправда, обсяг інформації на сайтах був неспівмірним — і це суттєво обмежувало таке порівняння.

Що саме вимірювалося

ApacheBench звертався до головної сторінки i1.kiev.ua. Параметр -n 100000 задавав кількість запитів, а -c 5 — п’ять одночасних запитів. У відповідях сервер представлявся як nginx/0.4.13, довжина документа становила 4023 байти.

Журнал тесту

root@titan-r:~# ab -c 5 -n 100000 http://i1.kiev.ua/
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 i1.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:        i1.kiev.ua
Server Port:            80

Document Path:          /
Document Length:        4023 bytes

Concurrency Level:      5
Time taken for tests:   4574.631725 seconds
Complete requests:      100000
Failed requests:        5
   (Connect: 0, Length: 5, Exceptions: 0)
Write errors:           0
Non-2xx responses:      5
Total transferred:      446779435 bytes
HTML transferred:       402280850 bytes
Requests per second:    21.86 [#/sec] (mean)
Time per request:       228.732 [ms] (mean)
Time per request:       45.746 [ms] (mean, across all concurrent requests)
Transfer rate:          95.38 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     0  228 106.2    205    1613
Waiting:        0  227 106.1    204    1613
Total:          0  228 106.2    205    1613

Percentage of the requests served within a certain time (ms)
  50%    205
  66%    228
  75%    240
  80%    250
  90%    296
  95%    429
  98%    591
  99%    726
 100%   1613 (longest request)

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

На 100 000 запитів пішло 4574.631725 секунди, а середня пропускна здатність становила 21.86 запиту за секунду. Половина запитів уклалася у 205 мс, 95% — у 429 мс; найдовший тривав 1613 мс.

Два рядки Time per request описують різні способи усереднення: 228.732 мс враховує рівень паралельності, а 45.746 мс — загальний час, поділений на кількість запитів. Друге число не означає, що окремий відвідувач чекав лише 45.746 мс.

Окремо зафіксовано п’ять невдалих запитів із відмінною довжиною відповіді та п’ять відповідей поза діапазоном 2xx. За підсумковим журналом не можна визначити їхні точні HTTP-коди чи причину зміни довжини. Опис цих полів наведено в документації ApacheBench.

Який висновок я зробив

Очікуваної переваги Energine у цій перевірці я не побачив. Але результат стосується конкретної сторінки, вмісту й серверного оточення 2007 року. Для висновку про самі CMS потрібне зіставлення однакового навантаження й однакових даних, а в моєму порівнянні ці умови не були витримані.

1 коментар:

dr. Pavka сказав...

По определению использование связки XML+XSLT не может быть быстрым

если стоит проблема с производительностью то единственным реальным решением является кеширование

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

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