WEB serverlar jangi. 1-qism – HTTP aloqada emas:

Ushbu maqolada biz teskari muhandislikda qo'limizni sinab ko'ramiz, deyish mumkin. Biz iflos qo'llarimizni har bir veb-serverning qopqog'i ostiga olamiz va ulardan hech kim foydalana olmaydigan tarzda foydalanamiz.

Ushbu test vakuumda sharsimon otning o'lchovidir, olingan ma'lumotlardan boshqa narsa emas va endi biz u bilan nima qilishni bilmaymiz.

WEB serverlar jangi. 1-qism – HTTP aloqada emas:

Metodologiya

Nginx va Apache uchun operatsion tizim Ubuntu 18.04 LTS, IIS Windows Server Core 2019 uchun. Sinovlar oldidan barcha operatsion tizimlar 04.12.2019-yil XNUMX-dekabr holatiga ko‘ra so‘nggi yangilanishlarni oldi.

Sinovlar faqat HTTP orqali o'tkazildi. Har bir veb-server bir xil sahifani ishga tushirdi, Codrops-dan bepul Jekyll shabloni. aloqa. Har bir veb-serverda gzip siqish o'chirilgan.

O'tkazish qobiliyati testi argumentlar bilan Httpd-vositalari bilan amalga oshirildi:

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

Serverlar 10, 5 va bitta yadroda yadroning 1, 8 va 4 foizi bilan cheklangan edi. Sinov dastgohi 9900K@5400MHz chastotali kompyuter edi, ya'ni 10% chegarani qabul qiluvchi server har bir yadro uchun taxminan 540MGts oladi.

TTFB testi server birinchi marta ishga tushirilganda va DevTools yordamida o'lchanganida amalga oshirildi; natijani olgandan so'ng, server o'chirildi va har qanday keshlarning ko'rinishini yo'q qilish uchun oldingi nazorat punktiga qaytarildi.

Sinovchi va veb-server bir xil xostda va bir xil virtual kalitda edi.

To'siqlar haqida tasavvurga ega bo'lish uchun diskning quyi tizimini, ATTO va CrystalDIskMark benchmarklarining natijalarini darhol baholash uchun.

Virtual mashinadan olingan ma'lumotlar:WEB serverlar jangi. 1-qism – HTTP aloqada emas:
WEB serverlar jangi. 1-qism – HTTP aloqada emas:
WEB serverlar jangi. 1-qism – HTTP aloqada emas:
WEB serverlar jangi. 1-qism – HTTP aloqada emas:

Natijalar:

TTFB:

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
IIS uchun o'rtacha TTFB eng kichik, 0,5 ms, Apache uchun 1,4 ms va Nginx uchun 4 ms.

O'tkazish vaqti:

Birinchidan, har bir server yadrolar soniga qarab qanchalik yaxshi o'lchaganini ko'rib chiqaylik.

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Grafikda testerning veb-serverga qo'ng'iroqlar soni va kutish vaqti ko'rsatilgan. Grafik shuni ko'rsatadiki, NGINX barcha so'rovlarning 98 foizini qayta ishlagan va saytni 20 ms yoki undan kamroq vaqt ichida etkazib bergan. IIS, Apache kabi, barcha qo'ng'iroqlarning oxirgi 5% ni mos ravishda 76 ms va 14 ms larda yakunladi.

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
WEB serverlar jangi. 1-qism – HTTP aloqada emas:
WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Grafik stress testi paytida bitta so'rov uchun o'rtacha ishlov berish vaqtini ko'rsatadi.

Grafiklardan ko'rinib turibdiki, IIS ham Apache, ham Nginx-ni portlatib yubordi va yuqori yuk ostida sezilarli darajada sekinlashdi. 

IIS 4 yadrodan ko'ra XNUMX yadroni afzal ko'rdi, bu XNUMX yadroda past kechikishlarni ko'rsatdi, lekin ayni paytda bitta yadroga unchalik yoqmadi.

NGINX barcha 8 yadrolari bo'ylab yaxshi o'lchaydi va Apache uchun bitta yadroli stsenariy eng yaxshi tanlov bo'lib tuyuladi.

Masshtablilik:

nginx:

Endi chastota va yadrolar soni bo'yicha miqyoslilikni ko'rib chiqaylik. 

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Nginx 1 va 4 yadrolar uchun 1% chegarasi bilan sinovlardan o'ta olmadi; 2000 ta so'rovdan oshib ketganda, u tester bilan ulanishni to'xtatdi.

Apache:

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Apache, Nginx kabi, 2500 ta so'rovni ko'rib chiqdi va ulanishni yo'qotdi. Apache 8% chegarasi bilan 4, 1 va 1 yadrolarida sinovdan o'ta olmadi, ammo qo'shimcha ravishda u bitta yadroda 5% chegarasi bilan sinovdan o'ta olmadi, bu Nginx-dan ham yomonroqdir.

IIS:

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Sinovlar davomida IIS so'rovlarning ulkan navbatini to'pladi, lekin ularning har birini qayta ishladi. Ko'rinishidan, qutidan tashqarida so'rovni qayta ishlash uchun hech qanday taym-aut o'rnatilmagan.

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Jadvalda testni bajarish uchun qancha vaqt sarflanganligi ko'rsatilgan. To'liq absurd sinov konfiguratsiyalari bekor qilindi. Diagramma apparatga kelganda IIS qanchalik talabchanligini va NGINX qanchalik ajoyib ekanligini ko'rsatadi.

Diskdan o'lchash imkoniyati:

nginx:

Endi yadrolarning chastotasi va soni va disk tezligi bo'yicha miqyoslilikni ko'rib chiqaylik. 

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Bu safar Nginx ikkita test o'rniga 4 ta sinovdan o'ta olmadi.

Apache:

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
Apache oxirgi marta bo'lgani kabi bir xil miqdordagi testlardan o'ta olmadi.

IIS:

WEB serverlar jangi. 1-qism – HTTP aloqada emas:
IIS deyarli bir xil grafikni ko'rsatadi, go'yo diskda cheklovlar yo'q. Umuman olganda, barcha serverlarning grafikasi unchalik o'zgarmadi, ya'ni ularning har biri statik ma'lumotlarni operativ xotirada keshlashdi va u erdan xizmat qilishdi. Bu erda biz asosiy to'siqni ko'ramiz - veb-serverning o'zi.

Ushbu test asosida xulosa chiqarishga hali erta; biz hali HTTPS, siqish va HTTP/2 ni Let's Encrypt-dan jonli sertifikat bilan sinab ko'rmadik. Bu haqda keyingi maqolada gaplashamiz.

WEB serverlar jangi. 1-qism – HTTP aloqada emas:

Manba: www.habr.com

a Izoh qo'shish