Terkadang, di log kesalahan Apache saya, saya akan menemukan:
[error] server reached MaxClients setting, consider raising the MaxClients setting
Saya sengaja menurunkan MaxClients di masa lalu (ke 60) karena masalah dengan kehabisan memori, tapi saya ingin tahu persis apa yang terjadi pada pengguna saat batas ini tercapai di server. Apakah halaman yang mereka akses hanya membutuhkan waktu lebih lama untuk dimuat? Apakah mereka mendapatkan semacam pesan kesalahan?
apache-2.2
performance
performance-tuning
runningonplants
sumber
sumber
Jawaban:
Pada awalnya, permintaan klien akan antri, sampai ada proses / utas yang mendapat gratis di server apache. Jadi, klien akan melihat penundaan dalam memuat halaman. Lihat
MaxClients
dokumentasi parameter untuk informasi lebih lanjut.Ketika ditempatkan dalam antrian backlog, permintaan klien akhirnya dapat waktu habis di sisi klien. Kemudian pengguna akan melihat halaman kesalahan di browser-nya yang mengatakan bahwa server terlalu lama untuk memberikan jawaban. Nilai batas waktu default adalah 300 detik di Firefox , misalnya. Atau pengguna akan membatalkan permintaan sebelum batas waktu ...
Kemudian, jika server mendapat lebih banyak permintaan dan tidak bisa mendapatkan proses / utas gratis tepat waktu,
ListenBacklog
antrian dapat diisi (standarnya adalah 511 permintaan yang antri) dan permintaan berikutnya tidak akan dilayani sama sekali. Browser kemudian akan memberi tahu pengguna itu tidak dapat terhubung ke situs web, seperti jika situs web benar-benar turun.Antrian backlog ini dikelola pada level OS, dalam implementasi TCP. Di linux,
listen
halaman manual akan memberi Anda lebih banyak informasi tentang cara pengelolaannya. Berikut ini adalah bacaan yang sangat mendalam tentang antrian backlog TCP di sistem linux dan BSD .sumber
listen
halaman manual. Saya tidak yakin ada cara langsung untuk mengetahui apa isi antrian ini. Juga, lihat pertanyaan SO ini . Saya telah menambahkan lebih banyak info ke jawaban saya.