WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:

Бул макалада биз тескери инженерияда күчүбүздү сынап көрөбүз, деп айтууга болот. Биз кир колдорубузду ар бир веб-сервердин капкагын астына алып, аларды эч ким эч качан колдонбогон жолдор менен пайдаланабыз.

Бул тест вакуумда сфералык атты өлчөө, алынган маалыматтардан башка эч нерсе эмес, эми аны менен эмне кылууну билбейбиз.

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:

техника

Nginx жана Apache үчүн иштөө тутуму Ubuntu 18.04 LTS, IIS Windows Server Core 2019 үчүн. Сыноолорго чейин бардык операциялык системалар 04.12.2019-жылдын XNUMX-декабрына карата акыркы жаңыртууларды алган.

Сыноолор HTTP аркылуу гана жүргүзүлдү. Ар бир веб-сервер бир эле баракчаны иштеткен, Codrops акысыз Jekyll шаблону. байланыш. Ар бир веб-серверде gzip кысуу өчүрүлгөн.

Өткөрүү жөндөмдүүлүгүн текшерүү Httpd куралдары менен аргументтер менен жасалган:

ab -n 50000 -c 500 http://192.168.76.204:80/

Серверлер 10, 5 жана бир өзөктөгү өзөктүн 1, 8 жана 4 пайызына чектелген. Сыноочу стенд 9900K@5400MHz менен компьютер болгон, бул 10% чекти алган сервер ар бир ядродо болжол менен 540МГц алат дегенди билдирет.

TTFB тести сервер биринчи жолу жүктөлүп, натыйжаны алгандан кийин DevTools аркылуу өлчөнгөндө аткарылган, сервер өчүрүлгөн жана кэштердин көрүнүштөрүн жок кылуу үчүн мурунку текшерүү пунктуна кайтарылган;

Сыноочу жана веб-сервер бир хостто жана бир виртуалдык которгучта болгон.

Дароо диск подсистемасына баа берүү үчүн, ATTO жана CrystalDIskMark көрсөткүчтөрүнүн натыйжалары тоскоолдуктар жөнүндө түшүнүккө ээ болуу үчүн.

Виртуалдык машинадан алынган маалыматтар:WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:

жыйынтыгы:

TTFB:

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
IIS үчүн орточо TTFB эң кичине, 0,5 мс, Apache үчүн 1,4 мс жана Nginx үчүн 4 мс.

Өткөрүү жөндөмү:

Биринчиден, ар бир сервер өзөктөрдүн санына жараша канчалык деңгээлде масштабдуу экенин карап көрөлү.

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
График тестердин веб-серверге чалууларынын санын жана күтүү убактысын көрсөтөт. График NGINX бардык суроо-талаптардын 98% иштетип, сайтты 20 мс же андан азыраак убакытта жеткиргенин көрсөтүп турат. IIS, Apache сыяктуу, бардык чалуулардын акыркы 5% ын тиешелүүлүгүнө жараша 76 мс жана 14 мс аяктады.

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
График стресс-тест учурунда бир суроону иштетүүнүн орточо убактысын көрсөтөт.

Графиктерден көрүнүп тургандай, IIS Apache менен Nginxти тең учуруп, жогорку жүктөмдө бир топ жайлады. 

IIS 4ден XNUMX өзөктү артык көргөн, XNUMXтө төмөнкү кечигүүлөрдү көрсөткөн, бирок бир өзөктү анча жактырган эмес.

NGINX бардык 8 өзөктө жакшы таразаланган жана Apache үчүн бир ядролуу сценарий эң жакшы тандоо болуп көрүнөт.

Масштабдуулук:

nginx:

Эми өзөктөрдүн жыштыгы жана саны боюнча масштабдуулукту карап көрөлү. 

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Nginx 1 жана 4 өзөктөр үчүн 1% чеги менен тесттерден өткөн жок, ал 2000 суроодон ашса, ал тестирлөөчү менен байланышты токтотту.

Apache:

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Apache, Nginx сыяктуу, 2500 өтүнүчтү иштеп чыгып, баш тартты жана байланышты жапты. Apache 8% чеги менен 4, 1 жана 1 өзөктөрүндө сыноодон өтпөй калды, бирок андан тышкары ал Nginxтен да начар бир өзөктө 5% чек менен сыноодон өтпөй калды.

IIS:

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Сыноолордун жүрүшүндө IIS суроо-талаптардын эбегейсиз кезегин топтоп, бирок алардын ар бирин иштеп чыкты. Сыягы, кутудан тышкары суроо-талаптарды иштетүү үчүн коюлган тайм-ауттар жок.

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Диаграмма тестти бүтүрүү үчүн кеткен убакытты көрсөтөт. Толугу менен абсурддук тест конфигурациялары жокко чыгарылды. Диаграмма аппараттык камсыздоого келгенде IIS канчалык талапты жана NGINX канчалык сонун экенин көрсөтүп турат.

Дисктен масштабдуулук:

nginx:

Эми өзөктөрдүн жыштыгы жана саны жана дисктин ылдамдыгы боюнча масштабдуулукту карап көрөлү. 

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Бул жолу Nginx эки эмес, 4 сыноодон өтпөй калды.

Apache:

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
Apache өткөн жолкудай эле сандагы сыноолордон өтпөй калды.

IIS:

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:
IIS дискте чектөөлөр болбогондой, дээрлик бирдей графикти көрсөтөт. Жалпысынан алганда, бардык серверлердин графикасы анча деле өзгөргөн жок, бул алардын ар бири статикалык маалыматтарды оперативдүү эс тутумга сактап, ошол жерден тейлегендигин билдирет. Бул жерде биз негизги кыйынчылыкты көрөбүз - веб-сервердин өзүн.

Бул тесттин негизинде жыйынтык чыгарууга али эрте, биз HTTPS, кысуу жана HTTP/2ди Let's Encrypt'тин жандуу тастыктамасы менен сынай элекпиз; Бул тууралуу кийинки макалада сүйлөшөбүз.

WEB серверлердин согушу. 1-бөлүк – HTTP байланышта эмес:

Source: www.habr.com

Комментарий кошуу