[apache] Configureren voor minder ram verbruik

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • sdk1985
  • Registratie: Januari 2005
  • Laatst online: 14:43
Mijn vps (CentOS 6.5 Final +Directadmin) heeft tot nu toe met de standaard configuratie gedraaid. Bij een kleine ddos kwam ik er achter dat deze configuratie toch niet helemaal perfect was. Memory liep vol en ondanks <10% cpu usage was niks meer vooruit te branden.

Voorbeeldje
Afbeeldingslocatie: http://i.imgur.com/hTTCM1M.png

Eerste wat ik wil aanpakken is apache. Kwam een aantal suggesties tegen
http://www.narga.net/opti...pmysql-low-memory-server/
http://fuscata.com/kb/set-maxclients-apache-prefork
https://panel.cinfu.com/k...for-MySQL-and-Apache.html
http://serverfault.com/qu...usage-on-a-unix-webserver

Standaard stond het zo
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 450
MaxClients 450
MaxRequestsPerChild 10000
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
ServerLimit 450
MaxClients 450
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 10000
</IfModule>
Heb helaas echter totaal geen ervaring met wat acceptabele waardes zijn. Op de vps draaien een stuk of 5 websites. Allemaal WordPress. Er is één "zware" bij die gemiddeld 2000 bezoekers per dag registreerd. De rest zal factor 10 minder zijn. De mysql database van deze "zware" site is slechts 10 MB groot (loopt weleens op tot 30MB).

Zijn altijd meer hits dan visitors dus even de awstats erbij gepakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Monthly Statistics for August 2014
Total Hits  2554719
Total Files     2508168
Total Pages     118496
Total Visits    62028
Total KBytes    40322237
Total Unique Sites  42669
Total Unique URLs   2354
Total Unique Referrers  1306
Total Unique User Agents    4092
.   Avg     Max
Hits per Hour   3433    12388
Hits per Day    82410   139139
Files per Day   80908   137298
Pages per Day   3822    5049
Sites per Day   1376    2846
Visits per Day  2000    2804
KBytes per Day  1300717     2154242


Is er iemand die mij wil helpen en een concrete suggestie durft te doen?

edit:
Heb zelf een poging gedaan met
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 5000
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
ServerLimit 450
MaxClients 450
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 5000
</IfModule>
Resultaat is minder aantal httpd maar eerder nog meer geheugen.
Afbeeldingslocatie: http://tweakers.net/ext/f/5JVXHeejFlMWVt66s3acfPuL/medium.png

[ Voor 16% gewijzigd door sdk1985 op 23-10-2014 00:55 ]

Hostdeko webhosting: Sneller dan de concurrentie, CO2 neutraal en klantgericht.


Acties:
  • 0 Henk 'm!

  • freggy
  • Registratie: Juli 2002
  • Niet online
Je zou eens moeten kijken om PHP via php-fpm te draaien en apache met de worker of (met Apache 2.4) event mpm. Op die manier gaat je statische content (bijvoorbeeld afbeeldingen) niet via een zwaar apache proces met ingeladen php module geserveerd worden. Zorg ook voor een lage keepalivetimout, zodat je geen apache processen bvb 60 seconden laat onbeschikbaar zijn voor nieuwe clients omdat ze blijven wachten op een nieuwe request van een vorige cliënt.

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 10:44

Kees

Serveradmin / BOFH / DoC
Ik neem aan dat je nu prefork gebruikt (ik zie geen apart php process). Wat je zou kunnen doen is inderdaad wat freggy zegt; worker+fpm, of je kan er een aparte cache voorzetten; Varnish is hier erg geschikt voor.

Apacheprocessen delen geheugen dus je kan niet zomaar de aantallen bij elkaar op tellen.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • init6
  • Registratie: Mei 2012
  • Niet online
Wat is de reden dat je apache draait en geen alternatief zoals nginx, lighttpd etc? Zijn er bepaalde modules welke je nodig hebt welke niet ondersteund worden door deze alternatieven?

Acties:
  • 0 Henk 'm!

  • sdk1985
  • Registratie: Januari 2005
  • Laatst online: 14:43
[root@vps1 ~]# httpd -V | grep MPM
Server MPM:     prefork

Maar ik heb begrepen dat dit tijdens het compilen gebeurd. Directadmin managed eigenlijk alles voor mij dus ik denk niet dat ik eenvoudig kan wisselen.

@init
Ben een beginner. Na ontevreden te zijn over drie verschillende hosters heb ik besloten het zelf te gaan doen. Daar volgt uit dat ik graag DirectAdmin gebruik want daar werk ik al sinds +- 2005 mee op user level. Ik leer langzaam, kost moeite maar is wel leuk. Maar ik moet dus wel een beetje in de buurt blijven van wat standaard aanwezig is anders zit ik weer 8 uur non stop te troubleshooten (zoals de keer dat mysql niet startte omdat innodb tables corrupt waren :+ ).

Ik merk overigens dat apache veel modules laad (meer dan ik op internet als 'default' tegen kom;
[root@vps1 ~]# httpd -M
[Thu Oct 23 01:12:24.036644 2014] [so:warn] [pid 29404] AH01574: module php5_module is already loaded, skipping
Loaded Modules:
 core_module (static)
 authn_file_module (static)
 authn_dbm_module (static)
 authn_anon_module (static)
 authn_dbd_module (static)
 authn_socache_module (static)
 authn_core_module (static)
 authz_host_module (static)
 authz_groupfile_module (static)
 authz_user_module (static)
 authz_dbm_module (static)
 authz_owner_module (static)
 authz_dbd_module (static)
 authz_core_module (static)
 access_compat_module (static)
 auth_basic_module (static)
 auth_form_module (static)
 auth_digest_module (static)
 allowmethods_module (static)
 file_cache_module (static)
 cache_module (static)
 cache_disk_module (static)
 cache_socache_module (static)
 socache_shmcb_module (static)
 socache_dbm_module (static)
 socache_memcache_module (static)
 so_module (static)
 macro_module (static)
 dbd_module (static)
 dumpio_module (static)
 buffer_module (static)
 ratelimit_module (static)
 reqtimeout_module (static)
 ext_filter_module (static)
 request_module (static)
 include_module (static)
 filter_module (static)
 substitute_module (static)
 sed_module (static)
 deflate_module (static)
 http_module (static)
 mime_module (static)
 log_config_module (static)
 log_debug_module (static)
 logio_module (static)
 env_module (static)
 expires_module (static)
 headers_module (static)
 unique_id_module (static)
 setenvif_module (static)
 version_module (static)
 remoteip_module (static)
 proxy_module (static)
 proxy_connect_module (static)
 proxy_ftp_module (static)
 proxy_http_module (static)
 proxy_fcgi_module (static)
 proxy_scgi_module (static)
 proxy_wstunnel_module (static)
 proxy_ajp_module (static)
 proxy_balancer_module (static)
 proxy_express_module (static)
 session_module (static)
 session_cookie_module (static)
 session_dbd_module (static)
 slotmem_shm_module (static)
 ssl_module (static)
 lbmethod_byrequests_module (static)
 lbmethod_bytraffic_module (static)
 lbmethod_bybusyness_module (static)
 lbmethod_heartbeat_module (static)
 mpm_prefork_module (static)
 unixd_module (static)
 dav_module (static)
 status_module (static)
 autoindex_module (static)
 info_module (static)
 suexec_module (static)
 cgi_module (static)
 dav_fs_module (static)
 dav_lock_module (static)
 vhost_alias_module (static)
 negotiation_module (static)
 dir_module (static)
 actions_module (static)
 speling_module (static)
 userdir_module (static)
 alias_module (static)
 rewrite_module (static)
 php5_module (shared)


Zit daar nog iets bij wat zeker weten nutteloos is voor mijn setup (DirectAdmin, Installatron, Wordpress, Joomla)?

Hostdeko webhosting: Sneller dan de concurrentie, CO2 neutraal en klantgericht.


Acties:
  • 0 Henk 'm!

Verwijderd

Zoals al eerder gezegd is: Waarom kijk je niet naar een alternatief zoals NGINX? Deze heeft een lager geheugen verbruik dan Apache en is ook sneller. Daarnaast doe je sowieso verstandig aan om het aantal modules te minimaliseren. Verder zou ik mod_security aan willen raden ter voorkoming van verdere (pogingen tot) aanvallen.

Acties:
  • 0 Henk 'm!

  • sdk1985
  • Registratie: Januari 2005
  • Laatst online: 14:43
Er is nog een bepaalde systemathiek die efficiënter is dan random modules uitzetten en dan checken met "apachectl -t"?

@typnix
Alles werkt nu stabiel zonder errors. Voor NGINX moet ik upgraden naar custom build 2.0 en opnieuw directadmin compilen. Vanuit mijn beperkte ervaring is dat dus meer een last resort optie dan de logische volgende stap.

Een configuratie tweak is relatief snel getest zonder (serieuze) downtime. Als het niet werkt dan zet je gewoon de originele config terug.

mod_security ga ik op googlen :). Gebruik overigens wel CSF/LFD. Toe ik connection tracking aanzette was de overlast meteen weg.

Hostdeko webhosting: Sneller dan de concurrentie, CO2 neutraal en klantgericht.


Acties:
  • 0 Henk 'm!

Verwijderd

Uhm, begrijp wel dat met het gebruik van DirectAdmin, dat je al een directe security leak binnenhaalt. Ik weet dat het niet altijd even praktisch is maar je doet er verstandig aan om gewoon direct op de console in te loggen via SSH en DirectAdmin te laten voor wat het is.

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Ik heb geen ervaring met deze plugin maar Google gaf me met "directadmin nginx" deze plugin, misschien een optie? http://danginx.com/

Voor static files is Apache niet de beste keuze, het zuipt nogal veel geheugen en cpu in verhouding tot Nginx. Voor PHP is het wel veruit de makkelijkste keuze maar fpm zou een betere optie zijn. Al kan een goed geconfigureerde Nginx ook al helpen een DDOS te stoppen.

Maar let er op dat een zwaar PHP script altijd tot op zekere hoogte gevoelig kan zijn voor een DOS aanval. Dat is niet eenvoudig op te lossen helaas.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Blokker_1999
  • Registratie: Februari 2003
  • Laatst online: 04:23

Blokker_1999

Full steam ahead

nginx met php-fpm is ook zeer eenvoudig op te zetten. Het enige wat soms wil tegenwerken is de juiste scriptdirectory. Ben er nog nooit in geslaagd om deze in de config dynamisch toe te kennen.

Verder heb ik zelf Apache al bijna 10 jaar geleden buiten gegooid om gelijkaardige redenen als de OP hier. Apache kon het niet bijhouden van zodra de belasting omhoog ging. Het is een enorm krachtige en veelzijdige webserver, maar als je enkel wat eenvoudige sites wenst te serveren is een lichtgewicht webserver zeker aan te raden.

No keyboard detected. Press F1 to continue.

Pagina: 1