[apache2] enorm traag, maar geen hoge load.

Pagina: 1
Acties:

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
We hebben een debianserver draaien, met daarop apache2 met de prefork module.
Nu het aantal websites op die server toeneemt wordt de server onacceptabel traag.
Het duurt tussen de 5 en de 30 seconden voor een pagina geserveerd wordt. Toch is de load heel laag: ergens tussen de 0.1 en 0.3.
Het lijkt wel alsof 'ie ergens op wacht voordat 'ie de pagina serveert, maar ik kan niets vinden dat het zou kunnen veroorzaken. Omdat zowel statische als dynamische content die vertraging ondervindt, neem ik ook aan dat het niet aan php of aan mysql ligt - die worden voor statische content immers niet aangesproken.

Relevant stukje uit httpd.conf:
code:
1
2
3
4
5
6
7
<IfModule prefork.c>
StartServers         5
MinSpareServers      5
MaxSpareServers     10
MaxClients          40 # was 20
MaxRequestsPerChild  10000 # was 0
</IfModule>


Heeft iemand een idee waar ik moet zoeken voor die vertraging?

Localhost, sweet localhost


  • Maxxi
  • Registratie: Mei 2004
  • Laatst online: 21-11-2025
We hebben bij ons hetzelfde probleem gehad, iemand heeft toen ik d8 aantal clients op unlimited gezet.
Toen begon de CPU ineens pas te werken.

Maar ik zal dit morgen even navragen en posten wat het percies was.

Het probleem was namelijk dat de wachtrij harder opgebouwd werd dan afgebroken.
Door deze instelling werdt dit verholpen.

[ Voor 24% gewijzigd door Maxxi op 30-05-2005 22:28 ]


  • Maxxi
  • Registratie: Mei 2004
  • Laatst online: 21-11-2025
Heb hem even gevraagd, het ging hier om Apache 1.3.
Hij heeft MaxRequestsPerChild op 0 gezet (unlimited)

En clients op 250.

Hoeveel slots zijn er bij jou ingebruik bij een normale load?

  • Hans
  • Registratie: Juni 1999
  • Niet online
heb je HostnameLookups aan of uit staan?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Ik heb twee wijzigingen uitgevoerd:
1 Ik heb de cachingtype van phpads van sql naar files gezet. Daardoor hoeft 'ie niet te wachten op de limiet voor concurrent queries. Ik had namelijk het idee dat de apache-processen bijna allemaal bezig waren met hits van phpads, die op hun beurt weer wachtten op de database.

2 Ik heb de max clients wat omhoog gezet, van 20 naar 40. (had ik al gedaan net voor mijn topic).

Na deze wijzigingen is het aantal apache2 processen minder: het was altijd 20, nu is het rond de 13, met uitschieters naar de 25. De load is ongeveer verdubbeld, maar belangrijkst van alles: de vertragingen zijn verdwenen. Ik ben benieuwd hoe dit zich houdt tijdens de piekuren, vanavond na het eten. (de meeste traffic krijgen we van een nederlandse "vrije-tijd site").
heb je HostnameLookups aan of uit staan?
Stond al uit. Had ik inderdaad even mogen vermelden.

[ Voor 10% gewijzigd door kvdveer op 31-05-2005 14:36 ]

Localhost, sweet localhost


  • Arnout
  • Registratie: December 2000
  • Laatst online: 10-02 17:38
Dan heb je wel een erg trage database in verhouding.

Daarnaast is het verlagen van de MaxRequestsPerChild wel degelijk zinvol, als je veel dynamische content serveert zul je zien dat bij een laag getal, er meer geheugen beschikbaar is, vooral als er geheugen 'lekt' door fout geheugengebruik.

MaxClients van 40 is ook niet echt veel, dat zijn 20 simultane users. De 21e moet sowieso wachten.

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Via mod_status kun je zien wat elk Apachechild doet. Ik zou ook kijken of je verbinding en je harddisk alles bij kunnen houden.
Pagina: 1