Perbandingan kinerja server web RPi 3: Apache, Nginx, dan Lighttpd

11

Adakah yang melakukan pengujian perbandingan kinerja nyata pada RPi 3 di server web populer:

  1. Apache2 - server yang paling umum
  2. Nginx - server yang mengklaim sebagai pemain terbaik
  3. Lighttpd - server paling ringan
  4. Atau paket yang belum saya dengar

Sesuatu seperti pos 4 tahun ini untuk RPi 2 . Mengikuti saran di pos itu, saya memperluas penelitian saya secara lebih umum dan menemukan artikel ini , tetapi menganggapnya sedikit mencurigakan karena ini adalah perusahaan hosting, dan saya perlu jawaban yang disesuaikan dengan perangkat keras RPi 3.

Sandor Dosa
sumber
4
Off Topic: Saya tidak mengerti mengapa seseorang memilih pertanyaan tanpa memberikan petunjuk apa yang salah dengannya.
Joe Platano
2
Saya tidak agresif pasif atau mencari Anda untuk menghapus pertanyaan Anda. Saya terlalu sibuk saat itu untuk mengirim komentar yang menjelaskan downvote saya. Masalah pertama adalah Anda mengoptimalkan secara prematur. Anda belum secara jelas mendefinisikan use case (modul / fungsi apa yang dibutuhkan, dll.). Saya bisa melanjutkan beberapa paragraf lagi, tetapi saya akan membiarkan kata-kata Anda sendiri berbicara sendiri: "Jika Nginx akan melakukan apa yang saya butuhkan, maka itu tampaknya menjadi yang lebih baik di luar kotak (atau tidak tepat) -get) solusi untuk disatukan sebelum kinerja tweak dimulai. "
Steve Robillard
2
Jika Nginx akan melakukan apa yang saya butuhkan (sehingga Anda mungkin dapat mengesampingkan satu atau lebih dari server berdasarkan persyaratan; maka menjadikan pertanyaan Anda tidak relevan. Anda meletakkan kereta di depan kuda. Dapatkan sistem yang berfungsi kemudian khawatir tentang tweaking kinerja Kedua, untuk menjawab pertanyaan Anda akan tergantung pada beban kerja tertentu, apakah penggunaan DB akan dibaca berat atau menulis berat? apakah sistem akan terikat DB atau IO terikat? Jika DB tidak ada jumlah tala server web Anda kemungkinan besar untuk membantu
Steve Robillard
2
Sekali lagi mengutip Anda "mampu melayani mereka semua sesuatu tanpa jeda besar adalah penting." Berapa banyak keterlambatan? dan Terakhir "Saya telah melihat posting lain tentang cara men-tweak Apache dan Nginx untuk kinerja yang lebih baik, tetapi itu sepertinya banyak pekerjaan hanya untuk membangun sebuah konfigurasi tes untuk menentukan pilihan." Bukankah ini tepatnya yang Anda minta seseorang lakukan untuk Anda dalam pertanyaan ini? Tanpa manfaat data lalu lintas nyata atau spesifikasi lengkap masalah. Tanpa hal-hal ini, mereka sebaiknya berkonsultasi dengan bola kristal.
Steve Robillard
Mempertimbangkan jejak memori dan keterbatasan prosesor PI, bukankah sesuatu seperti setup berbasis node dan juga express dalam IO non-blocking yang didorong server akan lebih bermanfaat? Sekali lagi, tergantung pada kasus penggunaan Anda. Apakah Anda menyajikan file statis atau file dinamis. Apakah pan Anda memiliki aplikasi web atau situs web.
CoderX

Jawaban:

5

Ini seharusnya komentar, tapi agak panjang.

Meskipun saya belum (belum) menguji berbagai webservers pada Pi saya, saya sebelumnya telah menjalankan banyak pengujian pada webservers yang berjalan pada perangkat keras server x86. Yang saya tahu dari sana adalah:

  1. kebanyakan orang bingung tentang perbedaan antara kinerja dan kapasitas - Anda akan melihat banyak posting yang mengklaim nginx lebih cepat daripada (pre-fork) apache, ini tidak benar , kecuali di bawah beban berat. Nginx (dan ringan) keduanya jauh lebih baik dalam kapasitas. Dan itu pada tingkat analisis yang paling sepele.

  2. Hanya sedikit orang yang menyajikan konten statis secara eksklusif dengan server web mereka (dalam skenario ini, tux dan G-Wan meninggalkan server yang Anda sebutkan di dalam debu mereka). Profil kinerja sangat tergantung pada teknologi tingkat logika dan integrasinya dengan server web.

  3. Kinerja (dan kapasitas) tergantung pada semua hal lain yang berjalan pada perangkat.

Ada banyak fitur server pusat data yang sangat mudah dijalani tanpa jika Anda memiliki redundansi tingkat gugus yang tepat (dual psu, jaringan ganda, konsol jarak jauh ...) namun Raspberry PI tidak masuk akal sebagai web melayani platform karena I / O disk yang lambat - Anda benar-benar membutuhkan sesuatu dengan SATA, [i] SCSI, AOE atau konektivitas infiniband ke penyimpanan Anda. Pi tidak memiliki antarmuka SATA, hanya memiliki satu port ethernet dan saya tidak mengetahui adanya antarmuka infiniband atau SCSI.

(ada komputer kecil, papan tunggal yang merupakan pilihan yang lebih masuk akal untuk membangun kemampuan webserving - dan sekelompok ini bisa masuk akal secara ekonomi, tetapi dalam skenario seperti itu Anda melihat beberapa node dengan kemampuan berlapis untuk penghentian SSL, HTTP caching, webserving, logika aplikasi dan manajemen data).

Pertanyaan tercepat sulit untuk didefinisikan, berbeda untuk setiap kasus dan tidak mungkin dijawab.

Namun kesalahan terbesar yang saya lihat berulang kali di IT, adalah orang memilih produk berdasarkan atribut tunggal daripada mempertimbangkan dampak yang lebih luas baik dalam hal teknologi dan orang yang terlibat.

symcbean
sumber
Poin bagus semuanya. Saya khawatir proyek ini telah kembali terbakar.
Sandor Dosa
2

Saya khawatir Anda perlu mencari tahu sendiri. Ketika saya memiliki pertanyaan ini untuk RPi2 saya, saya menemukan Siege dan httperf . Saya mengikuti contoh ini untuk menjalankan benchmark - hanya alih-alih halaman html biasa saya meminta file php. Di sana kinerja server web juga tergantung pada modul cgi yang akan Anda pilih. Lighttpd vanilla biasa mungkin lebih cepat daripada vanilla Apache. Jika Anda memilih / mengkonfigurasi CGI yang tidak tepat, ini mungkin berubah dan Apache dapat mengungguli Lighty.

Joe Platano
sumber
Aku khawatir kamu benar. Saya akan mulai mencoba memilah metode pengujian dan melaporkan kembali.
Sandor Dosa
@SandorDosa, terus perbarui tanggal saya, mohon
Joe Platano
2

Saya telah memilih opsi lighttpd, karena alasan berikut:

  1. ringan
  2. salah satu yang paling mudah dipasang
  3. berjalan pada RPi2 saya selama dua tahun terakhir tanpa masalah (24x7)
  4. diperlukan yang baik dan mudah digunakan sebagai alat uji saya

Saya menggunakannya sebagai:

  1. memonitor suhu cpu sistem saya, suhu sekitar / kamar dan Logger grafik Kelembaban
  2. Server FTP untuk bertukar file dengan mitra bisnis saya dan menghindari penyimpanan data sensitif pada server mail gratis pihak ke-3
  3. Banyak widget web untuk memeriksa indeks pasar seperti forex, obligasi, saham, dll.
  4. uji kode html
  5. jalankan skrip yang saya buat untuk memeriksa surat, karena saya memiliki banyak akun surat, menghindari penguncian penandaan geografis
  6. jalankan blog sederhana (Nibble blog)
  7. bekerja sebagai honeypot untuk mengenali (dan memblokir) peretas di kawat saya

hanya untuk menyebutkan beberapa kegunaan.

JohnBR
sumber