Ich habe eine Maschine mit 128 GB RAM, die Apache2 als Webserver verwendet (auf dieser Maschine gibt es keinen Datenbankserver, die Datenbankmaschine ist eine 64 GB RAM-Maschine, die maximal 2000 Verbindungen verarbeiten kann). Ich sehe mit einem Überwachungstool, dass es derzeit etwa 44 beschäftigte Arbeiter und 12 nicht beschäftigte Arbeiter gibt, welche theoretischen Werte für mein Prefork-Modul am besten sind.
Ich habe leere Seiten bekommen, die manchmal Websites mit hoher Auslastung laden, und diesen Fehler in meinem Apache-Fehlerprotokoll bekommen:
[notice] child pid 13595 exit signal Segmentierungsfehler (11)
Wie kann auch dieses Problem gelöst werden?
Meine Konfiguration des Apache2 Prefork-Moduls:
StartServers 3
MinSpareServers 3
MaxSpareServers 5
ServerLimit 3200
MaxClients 3100
MaxRequestsPerChild 0
Kostenlos -h auf der www-Maschine :
gesamt: 128 G frei: 97 GB (bei laufendem Apache2) freigegebene 0b-Puffer 1,9 G Cache 23 G
RAM verwendet von Apache2 und anderen Programmen:
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
Antworten:
Apache-Prefork-Einstellungen gemäß den Richtlinien zur Leistungsoptimierung für Apache
Zitat:
Sie sollten es folgendermaßen einrichten, basierend auf Ihren Eingaben zu:
Um dies zu berechnen, können Sie folgendes Skript verwenden:
Dies ist die beste Schätzung der Speicherauslastung eines einzelnen Apache-Prozesses, während versucht wird, die gemeinsame Nutzung proportional nach der Anzahl der aktiven Apache-Prozesse aufzuteilen und über Pss zu addieren (proportionale Satzgröße ).
Schließlich dividieren Sie 115 GB mit dieser Zahl und Sie erhalten
MaxClients/ServerLimit
. Von hier aus können Sie relativ andere Zahlen wie berechnenStartServers
30% von MaxClientsMinSpareServers
5% von MaxClientsMaxSpareServers
10% von MaxClientsServerLimit
== MaxClientsMaxConnectionsPerChild
10000 (als konservative Alternative zur Behebung möglicher Probleme mit speicherverlustbehafteten Apps)quelle
/server-info
: i.imgur.com/SS2gIXI.png