Në këtë artikull ne do të përpiqemi të bëjmë inxhinierinë e reversit, mund të thuhet. Ne do të hedhim një vështrim me duar të ndyra nën kapakun e çdo serveri web, duke i testuar ato në një mënyrë që askush nuk do ta bënte ndonjëherë.
Ky test është një matje e një kali sferik në vakuum, nuk janë asgjë më shumë se të dhëna që u morën, dhe tani nuk dimë çfarë të bëjmë me to.
Metodika
Sistemi operativ për Nginx dhe Apache është Ubuntu 18.04 LTS, për IIS është Windows Server Core 2019. Të gjitha sistemet operative morën azhurnimet e fundit para testeve deri më 04.12.2019.
Testet u kryen ekskluzivisht përmes HTTP. Në çdo server web u rrotullua e njëjta faqe, një shabllon falas për Jekyll nga Codrops. . Në çdo server web ishte e çaktivizuar kompresimi gzip.
Testi i kapacitetit u krye me Httpd-tools me argumentet:
ab -n 50000 -c 500 http://192.168.76.204:80/Në serverë u vendos një kufi prej 10, 5 dhe 1 përqind nga bërthama në 8, 4 dhe një bërthamë. Si bazë testi u përdor një kompjuter me 9900K@5400Mhz, që do të thotë se serveri që mori kufizimin prej 10%, merr rreth 540Mhz për bërthamë.
Testi TTFB u krye gjatë ngarkesës së parë të serverit dhe u mat me DevTools, pas marrjes së rezultatit serveri u çaktivizua dhe u rikthye në pikën e kontrollit të mëparshme, për të përjashtuar shfaqjen e ndonjë lloj cache.
Testuesi dhe serveri web ishin në të njëjtin host dhe në të njëjtin switch virtual.
Për të vlerësuar menjëherë sistemin e diskut, rezultatet e benchmark-ut ATTO dhe CrystalDiskMark, për të pasur një ide mbi ngushticat.
TĂ« dhĂ«nat janĂ« marrĂ« nga njĂ« makinĂ« virtuale:



Rezultatet:
TTFB:

TTFB i mesëm për IIS është më i ulët se të gjithë, 0.5ms, krahasuar me 1.4ms për Apache dhe 4ms për Nginx.
Kapaciteti:
Fillimisht do të shqyrtojmë se sa mirë çdo server skalon sipas numrit të bërthamave.

Në grafik është paraqitur numri i kërkesave të testuesit në serverin web dhe latenca. Në grafik duket që NGINX ka përfunduar 98% të të gjitha kërkesave, duke dorëzuar faqen brenda 20ms dhe më pak. IIS si dhe Apache, 5% e fundit të të gjitha kërkesave i përfunduan përkatësisht në 76ms dhe 14ms.



Në grafik është paraqitur koha mesatare e përpunimit të një kërkese gjatë testit të stresit.
Ashtu siç mund tĂ« vĂ«reni nga grafikat, IIS e humbi ndjeshĂ«m ndaj Apache dhe Nginx, duke u ngadalĂ«suar shumĂ« nĂ«n ngarkesĂ« tĂ« lartĂ«.Â
IIS me sa duket preferoi 4 bërthama mbi tetë, duke treguar vonesa më të ulta me katër, por ashtu si nuk e miratoi shumë as një bërthamë.
NGINX shkallëzohet mrekullisht në të gjitha 8 bërthamat, ndërsa për Apache, një skenar me një bërthamë duket se është zgjedhja më e mirë.
Shkallëzimi:
Nginx:
Tani do tĂ« shqyrtojmĂ« shkallĂ«zimin sipas frekuencĂ«s dhe numrit tĂ« bĂ«rthamave.Â

Testet me kufizim në 1% në 4 dhe 1 bërthamë Nginx nuk kaluan, duke kaluar 2000 kërkesa ndërsa ndërpreu lidhjen me testuesin.
Apache:

Apache si Nginx, pas përpunimit të 2500 kërkesave u dorëzua dhe ndërpreu lidhjen. Apache nuk kaloi testin në 8, 4 dhe 1 bërthamë me një kufizim në 1%, por përveç kësaj nuk kaloi as testin me kufizim në 5% në një bërthamë, gjë që është më e keqe se Nginx.
IIS:

IIS gjatë testeve grumbulloi një radhë të madhe kërkesash por përpunoi çdo nga ato. Me sa duket, në të nuk ka kufizime të instaluara për përpunimin e kërkesave.

Në diagram është paraqitur koha në të cilën testi u përfundua. U përjashtuan konfigurimet krejtësisht absurde të testimit. Nga diagrami është e dukshme sa kërkuese është IIS ndaj harduerit, dhe sa i shkëlqyer është NGINX.
Shkallëzimi nga disku:
Nginx:
Tani do tĂ« shqyrtojmĂ« shkallĂ«zimin sipas frekuencĂ«s, numrit tĂ« bĂ«rthamave dhe shpejtĂ«sisĂ« sĂ« diskut.Â

Këtë herë Nginx nuk kaloi 4 testet, në vend të dy.
Apache:

Apache dështoi në të njëjtin numër testesh si herën e kaluar.
IIS:

IIS tregon njĂ« grafik pothuajse identik, sikur nuk kishte kufizime pĂ«r disk. NĂ« pĂ«rgjithĂ«si, grafikĂ«t e tĂ« gjithĂ« serverĂ«ve nuk u ndryshuan shumĂ«, dhe kjo do tĂ« thotĂ« se secili prej tyre e kishte cache statikĂ«n nĂ« memorie dhe e dorĂ«zonte nga aty. KĂ«tu e shohim ngushticĂ«n kryesore â vetĂ« serverin web.
TĂ« nxjerrim pĂ«rfundime nga kjo testim Ă«shtĂ« ende herĂ«t, ne ende nuk e kemi testuar HTTPS, kompresimin dhe HTTP/2 me njĂ« certifikatĂ« tĂ« gjallĂ« nga Letâs Encrypt. KĂ«tĂ« do ta diskutojmĂ« nĂ« artikullin tjetĂ«r.
Burimi: habr.com
