← Back to team overview

sslug-teknik team mailing list archive

Re: Apache performance tuning

 

"Troels Arvin" <troels@xxxxxxxx> wrote:
>
> > Problemet er ikke performance, men for mange forbindelser - Nu har jeg
> > downloadet en src.rpm med Apache, og vil prøve at ændre den hard-kodede
> > MaxClients-grænse.
> Hvilket i sig selv er ret let.

Jeps, det gik fint - står nu på 768 i MaxClients, med en maxgrænse på 2048.

> Problemet er, hvis du fx. kører PHP og
> taler til MySQL fra PHP: I sådanne og lignende situationer kan man være
> ude for, at hver enkelt Apache proces står og holder én eller flere MySQL
> forbindelser åbne. - Og desværre er MySQL ikke særlig skalérbar: Alt går
> fint, men pludselig rammer man ude forvarsler (i form af dalende
> performance) én eller anden grænse for dens formåen, hvorefter den
> begynder at stå og tordne ned; herefter bruger man forgæves et par uger på
> at tro, at man kan tune'e sig ud af problemet ved at skrue på MySQL
> options.

Vi har fra starten benyttet mysql_pconnect for at få "persistent"
forbindelser fra php. Endvidere har vi nogle java-servletter kørende som
bare får forwarded requests fra Apache, men de benytter connection-pooling.
Det ser ud til at fungere fremragende.

> Apache+PHP+MySQL er blot én tænkelig situation, hvor hver Apache proces
> har nogle "side-effekter" i form af netværks-, IO, eller anden overhead,
> som man pludselig bliver opmærksom på, når antallet af Apache-børn bliver
> meget højt.
>
> Altså: Pas lidt på.

Du kan tro jeg holder øje med den :-) Men foreløbigt tror jeg på det, for
hverken web-server eller database-server har særligt meget load. Problemet
har udelukkende været at Apache nåede MaxClients-grænsen. Den er sat op, og
jeg har været hård ved KeepAliveTimeout.

Mvh. Lars




Follow ups

References