Тестування продуктивності популярних(і не дуже) CMS

php script load total time seconds
Вітаю тебе, хабражитель! Розробляючи FFCMS для своїх проектів однією з основних своїх цілей я виділяв швидку швидкість роботи і мінімальне споживання ресурсів обладнання — проте всі значення можна оцінити лише в порівнянні, що я і спробую зробити в даній статті.
У минулій моїй публікації деякі користувачі поцікавилися питанням продуктивності системи і вирішив провести тестування різних популярних і молодих CMS станом на 18 жовтня 2014 року. Хочеться відзначити — тестування системи проводилося відразу ж після її установки і дані можуть суттєво змінитися в ту чи іншу сторону в залежності від періоду використання системи — збільшення бази даних, кількості файлів та інші умови.

Передмова
Перед проведенням такого тестування я хотів подивитися на результати аналогічних тестів — адже найвірогідніше їх уже проводили і до мене. Проте до мого розчарування мені не вдалося знайти жодного розгорнутого тестування, в якому порівнювалися б хоча б 3 або більш систем за багатьма критеріями(можливо я погано шукав?). Це дивно, адже популярними CMS користуються десятки(а то і сотні) тисяч веб-майстрів, програмістів і великих компаній — невже питання споживаних ресурсів системою не цікавить зовсім нікого?

Об'єкти тестування
Для тестування я вибрав ряд популярних на даний момент систем, як комерційних так і безкоштовних. Були обрані 10 систем, нижче наведені їх назви і використовувані версії:
  • Bitrix standart — 14.5.0
  • WordPress 4.0
  • Drupal 7.32
  • Joomla! 3.3.6
  • Umi.cms 2.9.7
  • FFCMS 2.0.3
  • InstantCMS 2.1.1
  • KodiCMS 12.20.37(master)
  • NetCat Standart 5.4
  • HostCMS.Халява 6.1.6
Для платних систем були обрані демонстраційні версії, які можна завантажити на сайті творців.

Методика тестування
Для того, щоб результат тестування був однорідним для всіх продуктів була створена віртуальна машина, на яку був встановлений веб-сервер, база даних та інше необхідне для тестування. Як стенду використовувалися:
  • Apache 2.2.27
  • PHP 5.3.28
  • MySQL Community Server 5.5.38-log
  • Модулі PHP: Zend Engine v2.3.0(ніяких opcache, xcache, acp, eaccelerator)
  • Apache benchmark Version 2.3
Кожна CMS була встановлена у віртуальному середовищі стенду після чого в її код (найчастіше index.php було додано декілька рядків, які дозволили зберігати результат виконання скрипта і обсязі витраченої пам'яті:
$_test_loadstart = microtime(true);
// код CMS
$_test_loadend = microtime(true);
$_test_loadtime = number_format($_test_loadend - $_test_loadstart, 3);
$_test_memory = number_format(memory_get_usage()/1048576, 3);
@file_put_contents($_SERVER['HTTP_HOST'] . 'Txt', $_test_loadtime . ';' . $_test_memory . "\n", FILE_APPEND);

В результаті на виході був отриманий файл domain.local.txt в якому містилися дані про час завантаження скрипта і споживання оперативної пам'яті.
Для створення запитів на сайті був використаний ab (Apache benchmark) без створення паралельних запитів — метою не було тестування apache, метою було отримати середні результати для кожної CMS:
ab-n 1000 http://domain.local/ > ~/bench/ab/domain.local.txt


Методика оцінки результатів
Всього по вище описаній технології проведення тестування була дана оцінка за такими розділами:
  • Описова оцінка(Basic) — розмір дистрибутива, кількість файлів, розмір і характеристики бази даних
  • Оцінка швидкості завантаження скрипта(phpload_time)
  • Оцінка розміру спожитої оперативної пам'яті(phpload_memory)
  • Оцінка результатів тестування Apache benchmark (apache_benchmark)
У кожному розділі тестування для кожної CMS були виставлені оцінки (-2 <= x <= +2) в залежності від отриманих результатів (особистих) і середніх (avg) всієї вибірки:
  • -2 — найгірший результат у даному тесті
  • -1 — результат, гірший ніж середня в даному тесті
  • +0,5 — результат близький до середнього в межах standart devination
  • +1 — результат, кращий, ніж середня в даному тесті
  • +2 — кращий результат в даному тесті
За результатами тестування у всіх категоріях за всіма критеріями була складена результуюча таблиця, в якій вказані сумарні результати по всім тестам.
* так Хочеться зупинитися на 1 моменті — UMI.CMS при тестуванні показувала позамежні результати по швидкості завантаження, тому її результати були виключені з розрахунку AVG у деяких категоріях тестування.

Тестування
Раз з матеріалом і методикою тестування ми ознайомились — перейдемо безпосередньо до самого тестування. Нижче надані підсумкові результати по кожній з категорій тестування.
Результати тестування в зручному форматі: Google spreadsheet
Описова оцінка








Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX Installed size(MB) 191 18,5 11,7 20,1 105 18,9 11,9 23,4 98,4 17,5 51,64 11,7 191 File count 29908 1175 1074 5267 7128 1682 1650 3009 6391 2919 6020,3 1074 29908 Mysql table count 241 11 74 68 97 22 84 33 155 114 89,9 11 241 Mysql table rows 21918 126 1421 461 14616 187 12587 46 31467 20302 10313,1 46 31467 Mysql database size(MB) 11 0,56 4,6 3,9 6,2 0,356 6,8 0,948 2,7 1,9 3,8964 0,356 11 SUMMARY POINTS -9 6 5 5,5 -5 6 1 6 -4 1
Оцінка швидкості завантаження скрипта






Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX AVG loadtime (sec)
0,50 0,497733 0,210623 0,325381 2,99 0,090089 0,548239 0,213725 0,3279 0,70523 0,38 0,09 0,71 MIN loadtime (sec)
0,45 0,467 0,19 0,305 2,9 0,083 0,518 0,194 0,304 0,144 0,30 0,08 0,52 MAX loadtime (sec)
0,69 0,661 0,317 0,489 3,218 0,135 0,851 1,387 2,076 0,91 0,83 0,14 2,08 SUMMARY POINTS -1 -1 3 2,5 -6 6 -2,5 1 -4 -2


Оцінка розміру спожитої оперативної пам'яті






Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX AVG memory(mb)
28,944115 22,992 18,144003 12,556 23,089791 3,181 5,953808 6,485019 13,696 10,789239 14,5830975 3,181 28,944115 MIN memory(mb) 28,942 22,992 18,144 12,556 22,784 3,181 5,951 6,485 13,696 4,213 13,8944 3,181 28,942 MAX memory(mb)
29,177 22,992 18,147 12,556 23,095 3,181 6,885 6,504 13,696 10,848 14,7081 3,181 29,177 SUMMARY POINTS -6 -3 -3 3 -3 6 3 3 3 -1


Оцінка Apache benchmarks









Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS AVG MIN MAX Time taken for tests(sec) 527,433 520,498 230,91 340,219 13 032,86 97,178 555,886 224,176 343,965 727,217 396,3868889 97,178 727,217 Complete requests 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 Failed requests 965 0 0 0 697 0 0 0 0 955 213,3333333 0 965 Requests per second(#/sec) 1,9 1,92 4,33 2,94 0,08 10,29 1,8 4,46 2,91 1,38 3,547777778 1,38 10,29 Time per request(ms) 527,433 520,498 230,91 340,219 13032,857 97,178 555,886 224,176 343,965 727,217 396,3868889 97,178 727,217 Transfer rate 69,51 14,9 32,99 28,61 2,28 105,48 92,36 13,33 31,74 23,98 45,87777778 13,33 105,48 SUMMARY POINTS -4 -2 4 2 -12 10 0 4 2 -6


Підсумкові результати







Test/CMS Bitrix
Wordpress Drupal Joomla Umi.CMS FFCMS InstantCMS KodiCMS
NetCat
HostCMS Basic -9 6 5 5,5 -5 6 1 6 -4 1 phpload_time -1 -1 3 2,5 -6 6 -2,5 1 -4 -2 phpload_memory -6 -3 -3 3 -3 6 3 3 3 -1 Apache benchmark -4 -2 4 2 -12 10 0 4 2 -6 SUMMARY RESULT
-20 0 +9 +13 -26 +28 +1,5 +14 -3 -8


Підсумки тестування
Тепер настав час підбити підсумки нашого тестування і коротко оцінити отриманий результат. Всі наші результати — розташовані від 0 до 2 сторони: ті, що отримали негативний результат я б не рекомендував нікому використовувати зовсім, якщо ви дорожите обчислювальними ресурсами(це лише моя особиста думка — я прекрасно розумію що функціональні можливості таких систем можуть бути на порядок вище, ніж у інших).
Одним з важливих результатів тестування стало те, що ні 1 відкрита система не отримала негативної оцінки, а всі комерційні продукти виявилися за цією межею(+6 / -4 на користь open source).
Інші висновки мені б не хотілося я лише надам вам підсумкові графіки важливих тестів, висновки робіть самі(всі картинки клікабельні):
load memory avg graphload time avg graphsummary statistic graph

Післямова
Я ні в якому разі не хотів нікого образити — я лише надав результати суб'єктивного тестування різних CMS. Ви завжди в праві вирішувати, чи має споживання ресурсів для вас велике значення, можливо більше, ніж зручність розробки/управління сайтом.
Результати в зручному форматі: Google spreadsheet
Тестування в plain-text: Забрати з Яндекс.диска

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.