1.
/etc/httpd/conf/httpd.conf oder /etc/apache2/server-tuning.conf Einstellungen ändern.
Code:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 2 [COLOR="Red"](eventuell auch auf 1)[/COLOR]
HostnameLookups off
und Apache neu starten /etc/init.d/httpd restart
2.
mit
oder
ermitteln wir wieviele
httpd Prozesse wir haben und wieviel RAM diese benötigen.
Code:
S UID PID PPID C PRI NI [COLOR="Red"]RSS[/COLOR] SZ WCHAN TTY TIME CMD
S 48 27683 32483 0 76 0 11576 8011 semtim ? 00:00:00 httpd
S 48 27734 32483 0 76 0 11956 8018 - ? 00:00:00 httpd
S 0 32483 1 0 76 0 15796 7985 - ? 00:00:46 httpd
der Wert
RSS ist der Speicherverbrauch in KB, hier also 11 MB und 15 MB
3.
nun müssen wir Apache RAM zuweisen. 1 GB stehen zur Verfügung, davon ziehen wir pauschal 125 MB ab für Qmail + Apache (ohne Plesk, Bind, Spamassassin, Dr. Web!). Bleiben noch 875 MB für Apache httpd Prozesse und MySQL.
Angenommen du benötigst 50 httpd Prozesse, dann wären das 55 * 15 ~ 825 MB RAM. Deine /etc/httpd/conf/httpd.conf oder /etc/apache2/server-tuning.conf
könnte dann so aussehen.
Code:
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 50
MaxClients 50 [COLOR="Red"](httpd Prozesse)[/COLOR]
MaxRequestsPerChild 4000
<IfModule>
4.
Für MySQL blieben dann noch ~ 50 MB RAM übrig. Auch hierzu ein Beispiel für die /etc/my.cnf
Code:
[mysqld]
key_buffer = 15M
net_buffer_length = 8K
sort_buffer_size = 32K
myisam_sort_buffer_size = 32K
read_buffer_size = 16K
read_rnd_buffer_size = 32K
join_buffer_size = 512K
query_cache_size = 4M
thread_cache = 32
table_cache = 512
max_allowed_packet = 256K
max_connections = 50
wait_timeout = 30
low_priority_updates = 1
long_query_time = 2
diese Konfiguration benötigt ~ 41 MB RAM
5.
alle nicht benötigten Apache Module mit
# ausklammern damit diese nicht mehr beim Start von Apache geladen werden und Resourcen verbrauchen.