Dalam artikel ini kita akan mencoba sendiri dalam rekayasa terbalik, bisa dikatakan. Kami melihat dengan tangan kotor kami di bawah kap masing-masing server web, mengeksploitasi mereka seolah-olah tidak akan pernah dieksploitasi.
Tes ini adalah pengukuran kuda bulat dalam ruang hampa, tidak lebih dari data yang diterima, dan sekarang kita tidak tahu apa yang harus dilakukan dengan mereka.
Metodologi
Sistem operasi untuk Nginx dan Apache adalah Ubuntu 18.04 LTS, untuk IIS Windows Server Core 2019. Semua sistem operasi sebelum pengujian menerima pembaruan terbaru pada 4 Desember 2019.
Pengujian dilakukan secara eksklusif melalui HTTP. Setiap server web memiliki halaman yang sama, templat gratis untuk Jekyll dari Codrops.
Tautan Pada setiap server web, kompresi gzip dimatikan.
Tes bandwidth dilakukan dengan Httpd-tools dengan argumen:
ab -n 50000 -c 500 http://192.168.76.204:80/
Server ditetapkan pada batas 10, 5 dan 1 persen dari inti pada 8, 4 dan satu inti. Sebagai bangku tes, ada komputer dengan 9900K @ 5400 MHz, yang berarti bahwa server, yang menerima batas 10%, menerima sekitar 540 MHz per inti.
Uji TTFB dilakukan pada boot pertama server dan diukur menggunakan DevTools, setelah menerima hasilnya, server dimatikan dan digulirkan kembali ke titik kontrol sebelumnya untuk mengecualikan penampilan segala jenis cache.
Penguji dan server web berada di host yang sama dan pada switch virtual yang sama.
Untuk segera mengevaluasi subsistem disk, hasil benchmark ATTO dan CrystalDIskMark untuk memahami kemacetan.
Data diambil dari mesin virtual: Hasil:
TTFB:
TTFB rata-rata untuk IIS adalah yang terendah, 0,5 ms, dibandingkan 1,4 ms untuk Apache dan 4 ms untuk Nginx.Throughput:Pertama, pertimbangkan seberapa baik masing-masing server dalam hal jumlah core.
Grafik menunjukkan jumlah panggilan penguji ke server web dan latensi. Grafik menunjukkan bahwa NGINX memenuhi 98% dari semua hit, memberikan situs untuk 20ms atau kurang. IIS dan juga Apache 5% terakhir dari semua panggilan bekerja untuk 76ms dan 14ms, masing-masing.
Grafik menunjukkan waktu pemrosesan rata-rata untuk satu permintaan selama stress test.
Seperti yang dapat Anda lihat dari grafik, IIS meniup Apache dan Nginx, melambat secara signifikan di bawah beban tinggi.
IIS jelas lebih suka 4 core daripada delapan, menunjukkan sedikit penundaan pada empat, tetapi juga tidak sangat mendukung satu inti.
NGINX berskala sempurna untuk semua 8 core, dan untuk Apache, tampaknya skrip satu-inti tampaknya menjadi pilihan terbaik.
Skalabilitas:
Nginx:Sekarang pertimbangkan skalabilitas dalam frekuensi dan jumlah core.
Tes dengan batas 1% pada 4 dan 1 kernel Nginx tidak lulus, meninggalkan 2000 permintaan, terputus dari tester.
Apache:Setelah memproses 2.500 permintaan, Apache sebagai Nginx menyerah dan terputus. Apache tidak lulus tes pada 8, 4 dan 1 kernel dengan batas 1%, tetapi selain itu, tes pada batas 5% pada satu inti tidak lulus, yang lebih buruk dari Nginx
IIS:IIS selama tes mengumpulkan antrian permintaan raksasa tetapi memproses masing-masing. Rupanya, batas waktu untuk memproses permintaan tidak ditentukan di dalamnya.
Diagram menunjukkan waktu yang dibutuhkan untuk menyelesaikan tes. Konfigurasi tes yang absurd dijatuhkan. Diagram menunjukkan bagaimana IIS menuntut pada perangkat keras, dan betapa indahnya NGINX.
Skalabilitas disk:
Nginx:Sekarang pertimbangkan skalabilitas dalam frekuensi dan jumlah core dan kecepatan disk.
Kali ini Nginx gagal 4 tes, bukan dua.
Apache:Apache gagal dalam jumlah tes yang sama, seperti yang terakhir kali.
IIS:IIS menunjukkan grafik yang hampir identik, seolah-olah tidak ada batasan disk. Secara umum, grafik semua server tidak banyak berubah, yang berarti bahwa masing-masing dari mereka men-cache statika ke dalam RAM dan memberikannya dari sana. Di sini kita melihat hambatan utama - server web itu sendiri.
Masih terlalu dini untuk menarik kesimpulan berdasarkan pengujian ini, kami belum menguji HTTPS, kompresi, dan HTTP / 2 dengan sertifikat langsung dari Let's Encrypt. Kita akan membicarakan ini di artikel selanjutnya.
Kami menawarkan tarif UltraDSite
Windows VDS yang diperbarui untuk 99 rubel dengan Windows Server 2019 Core yang diinstal.
