Apache berhenti melayani setelah mencapai pengaturan MaxClients


11

Saya memiliki server apache saya yang dikonfigurasi dengan MPM pekerja sebagai berikut:

<IfModule mpm_worker_module>
    ServerLimit         20
    ThreadLimit         50
    StartServers        3
    MaxClients          1000
    MinSpareThreads     50
    MaxSpareThreads     200
    ThreadsPerChild     50
    MaxRequestsPerChild 10000
</IfModule>

Server membutuhkan sekitar 2 juta permintaan setiap hari. Ketika permintaan muncul, server apache akan berhenti menerima koneksi baru (browser tidak dapat terhubung). Dan prosesnya akan tetap dalam daftar proses. Penggunaan memori sekitar 10% dan CPU 0%. Tampaknya server apache tidak dapat mendaur ulang proses ketika seharusnya.

Saya telah menemukan sesuatu yang terkait dengan crash di log kesalahan:

[Mon Aug 15 12:36:24 2011] [error] child process 11444 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12090 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10698 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12144 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12032 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10699 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:25 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 15 12:37:31 2011] [notice] mod_python: Creating 8 session mutexes based on 20 max processes and 50 max threads.
[Mon Aug 15 12:37:31 2011] [notice] mod_python: using mutex_directory /tmp 
[Mon Aug 15 12:37:31 2011] [notice] Apache/2.2.17 (Ubuntu) mod_python/3.3.1 Python/2.7.1+ mod_ssl/2.2.17 OpenSSL/0.9.8o configured -- resuming normal operations
[Mon Aug 15 15:36:46 2011] [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting
[Mon Aug 15 15:38:48 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Mon Aug 15 16:17:31 2011] [warn] child process 766 still did not exit, sending a SIGTERM
[Mon Aug 15 16:17:31 2011] [warn] child process 767 still did not exit, sending a SIGTERM

Ada Ide? Terima kasih!


apa yang kamu simpan pengaturan? Apakah Anda melakukan semacam polling panjang dengan aplikasi Anda?
regilero

Jawaban:


7

Anda mungkin ingin memeriksa status server Anda menggunakan mod_status. Anda mungkin memiliki koneksi yang tidak memutuskan dan terjebak dalam keadaan "mengirim balasan" (W). Lihatlah artikel ini tentang cara mendiagnosis laporan penyelesaian dan modstatus httpd ini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.