Berapa banyak domain pada satu server Apache?

9

Saya hosting sekitar 300 domain untuk klien saya di satu server Apache. Mereka semua tidak memiliki banyak lalu lintas, sehingga beban server tidak menjadi masalah.

Secara teoritis seharusnya tidak ada batasan berapa banyak dari domain dengan lalu lintas rendah yang dapat saya miliki di server, tetapi saya khawatir jika saya memiliki terlalu banyak domain di server, daftar domain semata untuk memeriksa setiap permintaan yang masuk akan memperlambat Apache turun.

Apakah ada aturan praktis berapa lama konfigurasi Apache dan berapa banyak domain berbeda yang bisa ditangani tanpa masalah? Apakah 500 baik-baik saja? 5000?

Klarifikasi: Saya tidak bertanya tentang seberapa banyak lalu lintas yang dapat ditangani server. Saya tahu server khusus ini dapat menangani setidaknya dua kali jumlah lalu lintas saat ini. Saya ingin tahu apakah jumlah domain merupakan faktor penting atau tidak.

Gene Vincent
sumber

Jawaban:

9

Saya telah melihat server dengan ribuan domain berjalan tanpa masalah. Performa tidak menurun secara signifikan hanya dengan jumlah situs yang Anda jalankan.

Ini adalah jumlah keseluruhan permintaan dan berapa banyak CPU (dan sumber daya lain seperti bandwidth, IO disk, panggilan basis data, dll.) Diperlukan per permintaan yang memengaruhi respons server.

percikan
sumber
+1 - jumlah waktu CPU yang diperlukan untuk melakukan pemindaian serial terhadap 10.000 entri array yang disimpan dalam RAM dapat diabaikan.
Mark Henderson
4

Tidak ada aturan praktis untuk hal semacam ini. Semuanya didasarkan pada spesifikasi perangkat keras dan penyetelan perangkat lunak. Anda tidak akan menambahkan satu situs baru dan kemudian melihat tip server Anda dan mati tercekik (kecuali itu adalah situs penggunaan yang sangat tinggi keluar dari gerbang dan Anda tidak siap untuk itu). Seperti kebanyakan hal, Anda perlu memantau kinerja server Anda, dan ketika Anda mulai melihatnya melambat, evaluasi pada saat itu dan lihat tentang peningkatan perangkat keras atau server baru untuk menangani hosting domain baru. Dan untuk menjawab poin klarifikasi Anda, ini bukan tentang jumlah domain, ini tentang apa yang dibawa masing-masing domain secara individual sebagai beban ke server. Tidak ada angka ajaib.

Holokriptik
sumber
Sebagai jawaban spesifik untuk pertanyaan ini ...
Nandhini Anand
3
Gene, untuk mencadangkan apa yang dikatakan Holocryptic, bayangkan beban kerja yang dihasilkan oleh 500 (atau 5000) situs web dengan satu atau dua halaman statis di dalamnya. Sekarang bayangkan beban kerja yang dihasilkan jika Anda meng-host hanya satu situs web. Tetapi bagaimana jika situs web itu adalah google.com atau facebook.com - jumlah domain bukanlah masalah, itu pekerjaan yang diminta domain untuk dilakukan oleh server.
Rob Moir
@ Robert Moir: Saya tidak bertanya tentang lalu lintas yang dapat ditangani server. Saya ingin tahu apakah jumlah domain atau panjang file konfigurasi adalah faktor.
Gene Vincent
3

Anda dapat menemukan http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching informatif. Apache menggunakan tabel hash untuk menangani VHost yang tidak dipetakan ke *: 80, kemudian beralih ke daftar tertaut dari semua VHost yang ditugaskan ke IP: port untuk menemukan Server yang cocok (Nama | Alias). Anda mungkin perlu meng-host jutaan domain sebelum proses itu terasa mahal.

Anda juga mungkin ingin melihat http://httpd.apache.org/docs/2.2/vhosts/mass.html dan membandingkannya dengan pendekatan Anda saat ini; setelah Anda mendapatkan VHost yang cukup sehingga traversal daftar-tertaut membutuhkan lebih banyak waktu daripada lstat (), VirtualDocumentRootakan berakhir lebih cepat daripada VHost yang ditentukan secara individual.

BMDan
sumber
Saya menggunakan host virtual berbasis nama dan sepertinya Apache hanya menggunakan tabel hash untuk host virtual berbasis IP, yang menghasilkan pencarian linear.
Gene Vincent
Benar. Maaf jika jawaban saya tidak sejelas pada titik ini: tabel hash digunakan untuk memilih daftar yang ditautkan untuk diulangi, tidak (langsung) untuk memilih VHost mana yang harus melayani permintaan yang diberikan (kecuali ketika tidak berjalan NameVirtualHost).
BMDan
1

Saya memiliki beberapa server VPS yang menampung sekitar 8000+ domain. Server berjalan dengan baik, beban rata-rata selalu di level 0,xx. Saya kira itu bisa menangani lebih banyak tanpa masalah. Diperlukan waktu lebih lama untuk mengkompilasi ulang Apache ketika menambahkan atau menghapus domain. Juga, file httpd.conf cukup besar, sekitar 60 juta. Lebih aman membatasi jumlah domain menjadi sekitar 5.000.

garconcn
sumber