Saya memiliki mesin dengan Ram 128 GB yang menggunakan Apache2 sebagai Webserver (di mesin ini tidak ada Database Server, Mesin Database adalah mesin Ram 64 GB yang dapat menangani 2000 koneksi maks). Saya melihat dengan alat pemantauan bahwa saat ini ada sekitar 44 pekerja sibuk dan 12 pekerja menganggur, apa nilai teoritis terbaik untuk modul prefork saya?
saya mendapat halaman kosong terkadang memuat situs web pada jam buka tinggi dan mendapatkan kesalahan ini di log kesalahan apache saya:
[pemberitahuan] child pid 13595 sinyal keluar Kesalahan segmentasi (11)
bagaimana bisa mengatasi masalah ini juga?
Konfigurasi Modul Prefork Apache2 Saya:
StartServers 3
MinSpareServers 3
MaxSpareServers 5
ServerLimit 3200
MaxClients 3100
MaxRequestsPerChild 0
Bebas-h di Mesin www :
total: 128 G gratis: 97GB (dengan menjalankan apache2) membagikan 0b buffer 1,9G cache 23G
Ram digunakan oleh Apache2 dan Program lainnya:
Private + Shared = RAM used Program
96.0 KiB + 61.0 KiB = 157.0 KiB sh
176.0 KiB + 26.0 KiB = 202.0 KiB atd
176.0 KiB + 35.5 KiB = 211.5 KiB acpid
208.0 KiB + 19.5 KiB = 227.5 KiB mdadm
204.0 KiB + 30.0 KiB = 234.0 KiB init
248.0 KiB + 62.0 KiB = 310.0 KiB sendmail
376.0 KiB + 36.0 KiB = 412.0 KiB dbus-daemon
388.0 KiB + 285.5 KiB = 673.5 KiB cron (2)
820.0 KiB + 42.0 KiB = 862.0 KiB gam_server
920.0 KiB + 108.0 KiB = 1.0 MiB ntpd
968.0 KiB + 243.0 KiB = 1.2 MiB getty (6)
1.3 MiB + 351.5 KiB = 1.6 MiB udevd (3)
1.5 MiB + 343.0 KiB = 1.8 MiB sendmail-msp
2.0 MiB + 910.0 KiB = 2.9 MiB plugin-localresources2
3.4 MiB + 50.0 KiB = 3.4 MiB rsyslogd
3.6 MiB + 68.5 KiB = 3.7 MiB bash
1.9 MiB + 2.1 MiB = 4.0 MiB sendmail-mta (4)
3.8 MiB + 556.0 KiB = 4.3 MiB sshd (2)
3.7 MiB + 1.2 MiB = 4.8 MiB plugin-apache2
5.1 MiB + 1.2 MiB = 6.3 MiB agent-service
7.0 MiB + 654.0 KiB = 7.6 MiB fail2ban-server
9.6 MiB + 2.6 MiB = 12.2 MiB proftpd (8)
59.2 MiB + 70.0 KiB = 59.3 MiB miniserv.pl
96.8 MiB + 3.6 MiB = 100.4 MiB php5-cgi (2)
196.4 MiB + 35.9 MiB = 232.3 MiB apache2 (40)
---------------------------------
tot 450.0 MiB
Jawaban:
Pengaturan prefork Apache, per pedoman penyesuaian kinerja apache
mengutip:
Anda harus mengaturnya seperti ini berdasarkan masukan Anda ke:
Untuk menghitung ini, Anda dapat menggunakan skrip berikut:
Ini adalah perkiraan terbaik tentang berapa banyak proses apache tunggal menggunakan memori saat mencoba membagi secara proporsional penggunaan bersama per jumlah proses apache aktif dan menambahkannya di atas Pss (ukuran set proporsional)
Akhirnya Anda membagi 115 GB dengan angka ini dan Anda dapatkan
MaxClients/ServerLimit
. Dari sini Anda relatif dapat menghitung angka-angka lain sepertiStartServers
30% dari MaxClientsMinSpareServers
5% dari MaxClientsMaxSpareServers
10% dari MaxClientsServerLimit
== MaxClientsMaxConnectionsPerChild
10000 (sebagai alternatif konservatif untuk mengatasi kemungkinan masalah dengan aplikasi yang bocor memori)sumber
/server-info
: i.imgur.com/SS2gIXI.png