У овом чланку ћемо се окушати у обрнутом инжењерингу, могло би се рећи. Ставићемо прљаве руке испод хаубе сваког веб сервера, искоришћавајући их на начине које нико никада не би искористио.
Овај тест је мерење сферног коња у вакууму, ништа више од података који су добијени, а сада не знамо шта да радимо са њим.
Методологија
Оперативни систем за Нгинк и Апацхе је Убунту 18.04 ЛТС, за ИИС Виндовс Сервер Цоре 2019. Пре тестирања, сви оперативни системи су добили најновија ажурирања од 04.12.2019. децембра XNUMX. године.
Тестови су вршени искључиво преко ХТТП-а. Сваки веб сервер је водио исту страницу, бесплатни Јекилл шаблон од Цодропс-а.
Тест пропусности је урађен помоћу Хттпд-алата са аргументима:
ab -n 50000 -c 500 http://192.168.76.204:80/
Сервери су били ограничени на 10, 5 и 1 проценат језгра на 8, 4 и једном језгру. Тестни сто је био рачунар са 9900К@5400МХз, што значи да сервер који добија ограничење од 10% добија око 540МХз по језгру.
ТТФБ тест је спроведен када се сервер први пут покренуо и измерен помоћу ДевТоолс-а након што је добио резултат, сервер је искључен и враћен на претходну контролну тачку да би се елиминисао појављивање било које врсте кеша.
Тестер и веб сервер су били на истом хосту и на истом виртуелном прекидачу.
Да одмах процените дисковни подсистем, резултате АТТО и ЦристалДИскМарк бенцхмарк-а како бисте имали представу о уским грлима.
Подаци преузети са виртуелне машине:
Резултати:
ТТФБ:
Просечан ТТФБ за ИИС је најмањи, 0,5 мс, у односу на 1,4 мс за Апацхе и 4 мс за Нгинк.
Пропусност:
Прво, погледајмо колико добро се сваки сервер прилагођава на основу броја језгара.
Графикон приказује број позива тестера ка веб серверу и кашњење. Графикон показује да је НГИНКС обрадио 98% свих захтева, испоручујући сајт за 20 мс или мање. ИИС је, као и Апацхе, завршио последњих 5% свих позива за 76 мс и 14 мс, респективно.
Графикон приказује просечно време обраде једног захтева током стрес теста.
Као што можете видети из графикона, ИИС је одувао и Апацхе и Нгинк, значајно успоравајући под великим оптерећењем.
ИИС је очигледно преферирао 4 језгра у односу на XNUMX, показујући ниже латенције на XNUMX, али такође није фаворизовао једно језгро.
НГИНКС се добро скалира у свих 8 језгара, а за Апацхе сценарио са једним језгром изгледа као најбољи избор.
Прилагодљивост:
Нгинк:
Сада погледајмо скалабилност у смислу фреквенције и броја језгара.
Нгинк није прошао тестове са ограничењем од 1% за 4 и 1 језгра када је премашио 2000 захтева, прекинуо је везу са тестером.
Апацхе:
Апацхе је, као и Нгинк, након што је обрадио 2500 захтева, одустао и затворио везу. Апацхе је пао на тесту на 8, 4 и 1 језгри са ограничењем од 1%, али је поред тога пао и на тесту са ограничењем од 5% на једном језгру, што је горе од Нгинк-а
ИИС:
Током тестова, ИИС је нагомилао огроман ред захтева, али је обрадио сваки од њих. Очигледно, ван кутије нема подешених временских ограничења за обраду захтева.
Графикон приказује време потребно за завршетак теста. Потпуно апсурдне конфигурације тестирања су одбачене. Дијаграм показује колико је ИИС захтеван када је у питању хардвер и колико је НГИНКС диван.
Скалабилност са диска:
Нгинк:
Сада погледајмо скалабилност у смислу фреквенције и броја језгара и брзине диска.
Овог пута Нгинк је пао на 4 теста уместо на два.
Апацхе:
Апацхе је пао на истом броју тестова као прошли пут.
ИИС:
ИИС показује скоро идентичан графикон, као да нема ограничења за диск. Генерално, графика свих сервера се није много променила, што значи да је сваки од њих кеширао статичке податке у РАМ-у и одатле их сервирао. Овде видимо главно уско грло - сам веб сервер.
Прерано је доносити закључке на основу овог тестирања, још нисмо тестирали ХТТПС, компресију и ХТТП/2 са живим сертификатом из Лет'с Енцрипт. О томе ћемо говорити у следећем чланку.
Извор: ввв.хабр.цом