Likes Likes:  0
Resultaten 16 tot 25 van de 25
Pagina 2 van de 2 Eerste 1 2
Geen

Onderwerp: Ideale httpd.conf

  1. #16
    Ideale httpd.conf
    3.810 Berichten
    Ingeschreven
    16/05/04

    Locatie
    Middelburg

    Post Thanks / Like
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    130 Berichten zijn liked


    Registrar SIDN: Ja

    Ok, ik wil nog wel even wat bijdragen.

    Ik ga er even vanuit dat je een webserver draait met alleen apache en een kaal OS. Geen MySQL of iets anders.

    Eerst moet je gaan kijken, hoe veel ram heeft mijn systeem? Nou, dat weet je meestal wel, ik zeg nu 2GB.

    Stel nu je systeem even zo in dat je Apache niet on boot start en reboot je systeem.

    Vervolgens doe je: free -m

    Dan komt er bij used iets te staan, ik zeg nu even 195MB. Tel daar nog even 75MB voor de veiligheid bij op, dan zit je op ~ 275MB.

    Heb je 2GB ram heb je dus 2048MB ram. Haal daar 275MB vanaf, dan zit je op 1773MB aan ram dat over is.

    Nu start je Apache en ga je kijken hoe groot je proces is.

    Met "ps aux" of "top" kan je nu inzien hoeveel procent geheugen een proces in neemt.

    Daar kan van alles uit komen, dat ligt aan:
    - Welke modules je in Apache geladen hebt
    - Welke modules je in PHP gecompiled hebt (indien je PHP gebruikt).

    Ga nu even uit van 0.5% ofwel ~ 10MB.

    Je hebt 1773MB aan geheugen over, daar kan je dus 177 httpd processen in kwijt.

    Nu kent Apache (2) MaxClients en ServerLimit. Ik ga er vanuit dat je de prefork mpm gebruikt.

    Lees ook eerst even:
    - http://httpd.apache.org/docs/2.0/mod...tml#maxclients
    - http://httpd.apache.org/docs/2.0/mod...ml#serverlimit

    Er mogen dus niet meer dan 177 processen gestart worden.

    MaxClients en ServerLimit moet je dus niet hoger dan 177 zetten, al raad ik je aan wat veiliger te gaan zitten.

    Nu zal je systeem niet meer dan 177 requests tegelijk verwerken, dat is echt al heel veel!

    Zo zal je systeem nooit gaan swappen als deze onder maximale belasting ligt, je systeem blijft dus werkbaar.

    Maar dat is niet alles, er kan nog veel meer worden getuned.

    Veel sysadmins hebben eigenlijk geen idee wat er gebeurd als zij de AllowOverride op All zetten voor /

    Wat er dan gebeurd is het volgende:

    Je server staat ingesteld dat alle websites staan in /home/gebruiker/domains/domein.tld.

    Apache gaat nu voor ieder request kijken of er een .htaccess bestand staat in:
    - /
    - /home
    - /home/gebruiker
    - /home/gebruiker/domains/domein.tld

    Dat zorgt dus voor 4 I/O's voor elke keer dat er iets geladen wordt van het systeem.

    Het beste is daarom om in elke Vhost een <Directory> blok te zetten met daarin de Options en AllowOverride.

    Voor / raad ik je aan de AllowOverride op none te zetten en deze alleen aan te zetten waar nodig.

    Op kleine schaal zal je de I/O's niet nodig hebben, maar zodra je echt op grote schaal gaat werken scheelt dat echt veel disk I/O's.

    Nu moet je ook uitkijken met mod_rewrite. Mensen vinden het maar al te leuk om hun URL's fancy te hebben, maar dat kan echt voor onnodig veel load op een systeem zorgen. De server moet namelijk iedere keer gaan kijken naar alle regels die er in staan en ze gaan parsen, pas daar dus mee op.

    Laad verder ook geen modules die je niet nodig hebt, ik strip altijd alles en ga vanaf daar kijken heb ik die module wel of niet nodig? Zo ja, dan laad ik hem, zo niet, dan dus niet.

    Het zelfde doe ik met PHP, daar compile ik ook alleen in wat ik nodig hebt.

    Dat scheelt namelijk geheugen en hoe kleiner het Apache proces, hoe meer ik er van kan spawnen (MaxClients en ServerLimit), dus hoe meer requests ik kan afhandelen.

    Dan hebben we nog KeepAliveTimeout. Deze staat standaard op 15 seconde, ik raad iets van 2 a 3 seconde aan.

    Bij KeepAlive blijft het proces wachten op nog extra aanvragen van de bezoeker en dat doet hij zo lang als de KeepAliveTimeout aangeeft. Staat dit dus op 15, dan wacht Apache nog 15 seconde op de bezoeker voor het geval dat hij nog een aanvraag doet.

    Bij veel requests zorgt dat dus voor veel threads/workers/childs die niets te doen staan. Daarom wil je dit zo kort mogelijk houden. 2 seconde is vaak zat, de browser gaat geen 2 seconde wachten om het volgende plaatje op te vragen, zo wel? Dan is het best een vreemde browser.

    Wat ik eigenlijk eerder had moeten behandelen waren de StartServers, MinSpareServers en MaxSpareServers.

    StartServers staat standaard op 5. Indien jij geen 150 concurrent requests doet 24/7, dan zou ik het op 5 laten.

    Indien je dus weet dat zodra je Apache gestart er gelijk 150 requests zullen komen, dan kan je StartServers beter op 125 zetten, echter zal het dan wel langer duren voordat je Apache gestart is.

    MinSpareServers is het aantal processen dat klaar staat om extra aanvragen te behandelen. Stel er worden 100 requests verwerkt en dit staat op 5, dan zijn er 105 processen. Die 5 kunnen dus direct requests verwerken.

    Indien je weet dat je aantal requests gigantisch kan stijgen in een hele korte periode (30 ~ 60 sec), zet dit dan op iets van 25. Gebeurd dit niet? Houdt het dan laag, het kost namelijk alleen maar extra geheugen.

    Apache start maar 1 child per seconde, houdt daar rekening mee.

    MaxSpareServers is het tegenover gestelde. Stel je server verwerkt 100 requests en ineens verwerkt je server er nog maar 10. Dan zal Apache zijn childs gaan doden totdat het aantal childs kleiner of gelijk is aan: aantalactiechilds + maxspareservers.

    Hierbij wordt dan wel weer rekening gehouden met MinSpareServers zodat het aantal childs nooit daar onder komt.

    Zet dit dus ook niet heel erg hoog maar wel hoger dan MinSpareServers.

    Hier kan je dus wel uit afleiden dat er geen ideale httpd.conf is, het is dus echt een spelletje waar je goed in moet worden.

    Zeker op een server die meer doet dan alleen httpd kan het lastig zijn, want daar moet je je geheugen verdelen over alle processen zoals MySQL (en dat is helemaal een kunst!), je mailserver en je controle paneel.

    Met Apache bench (staat in de bin directory van apache onder de naam ab) kan je je server goed stressen en hem aan zijn max brengen.

    Ga daar mee aan de gang en laat hem even 24 uur lekker stressen, lekker aan zijn MaxClients en kijk wat er gebeurd. Gaat hij swappen? Wordt hij traag?

    Succes!

  2. #17
    Ideale httpd.conf
    uh?
    715 Berichten
    Ingeschreven
    26/04/05

    Locatie
    Den Haag

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: 27295404
    Ondernemingsnummer: nvt

    Bedankt voor de uitleg. Ik had zelf al wel eens die Apache documenten doorgekeken, maar het is toch een goed opfrissertje.

  3. #18
    Ideale httpd.conf
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door Wido Bekijk Berichten
    Ok, ik wil nog wel even wat bijdragen.

    Ik ga er even vanuit dat je een webserver draait met alleen apache en een kaal OS. Geen MySQL of iets anders.

    Eerst moet je gaan kijken, hoe veel ram heeft mijn systeem? Nou, dat weet je meestal wel, ik zeg nu 2GB.

    Stel nu je systeem even zo in dat je Apache niet on boot start en reboot je systeem.

    Vervolgens doe je: free -m

    Dan komt er bij used iets te staan, ik zeg nu even 195MB. Tel daar nog even 75MB voor de veiligheid bij op, dan zit je op ~ 275MB.

    Heb je 2GB ram heb je dus 2048MB ram. Haal daar 275MB vanaf, dan zit je op 1773MB aan ram dat over is.

    Nu start je Apache en ga je kijken hoe groot je proces is.

    Met "ps aux" of "top" kan je nu inzien hoeveel procent geheugen een proces in neemt.

    Daar kan van alles uit komen, dat ligt aan:
    - Welke modules je in Apache geladen hebt
    - Welke modules je in PHP gecompiled hebt (indien je PHP gebruikt).

    Ga nu even uit van 0.5% ofwel ~ 10MB.

    Je hebt 1773MB aan geheugen over, daar kan je dus 177 httpd processen in kwijt.

    Nu kent Apache (2) MaxClients en ServerLimit. Ik ga er vanuit dat je de prefork mpm gebruikt.

    Lees ook eerst even:
    - http://httpd.apache.org/docs/2.0/mod...tml#maxclients
    - http://httpd.apache.org/docs/2.0/mod...ml#serverlimit

    Er mogen dus niet meer dan 177 processen gestart worden.

    MaxClients en ServerLimit moet je dus niet hoger dan 177 zetten, al raad ik je aan wat veiliger te gaan zitten.

    Nu zal je systeem niet meer dan 177 requests tegelijk verwerken, dat is echt al heel veel!

    Zo zal je systeem nooit gaan swappen als deze onder maximale belasting ligt, je systeem blijft dus werkbaar.

    Maar dat is niet alles, er kan nog veel meer worden getuned.

    Veel sysadmins hebben eigenlijk geen idee wat er gebeurd als zij de AllowOverride op All zetten voor /

    Wat er dan gebeurd is het volgende:

    Je server staat ingesteld dat alle websites staan in /home/gebruiker/domains/domein.tld.

    Apache gaat nu voor ieder request kijken of er een .htaccess bestand staat in:
    - /
    - /home
    - /home/gebruiker
    - /home/gebruiker/domains/domein.tld

    Dat zorgt dus voor 4 I/O's voor elke keer dat er iets geladen wordt van het systeem.

    Het beste is daarom om in elke Vhost een <Directory> blok te zetten met daarin de Options en AllowOverride.

    Voor / raad ik je aan de AllowOverride op none te zetten en deze alleen aan te zetten waar nodig.

    Op kleine schaal zal je de I/O's niet nodig hebben, maar zodra je echt op grote schaal gaat werken scheelt dat echt veel disk I/O's.

    Nu moet je ook uitkijken met mod_rewrite. Mensen vinden het maar al te leuk om hun URL's fancy te hebben, maar dat kan echt voor onnodig veel load op een systeem zorgen. De server moet namelijk iedere keer gaan kijken naar alle regels die er in staan en ze gaan parsen, pas daar dus mee op.

    Laad verder ook geen modules die je niet nodig hebt, ik strip altijd alles en ga vanaf daar kijken heb ik die module wel of niet nodig? Zo ja, dan laad ik hem, zo niet, dan dus niet.

    Het zelfde doe ik met PHP, daar compile ik ook alleen in wat ik nodig hebt.

    Dat scheelt namelijk geheugen en hoe kleiner het Apache proces, hoe meer ik er van kan spawnen (MaxClients en ServerLimit), dus hoe meer requests ik kan afhandelen.

    Dan hebben we nog KeepAliveTimeout. Deze staat standaard op 15 seconde, ik raad iets van 2 a 3 seconde aan.

    Bij KeepAlive blijft het proces wachten op nog extra aanvragen van de bezoeker en dat doet hij zo lang als de KeepAliveTimeout aangeeft. Staat dit dus op 15, dan wacht Apache nog 15 seconde op de bezoeker voor het geval dat hij nog een aanvraag doet.

    Bij veel requests zorgt dat dus voor veel threads/workers/childs die niets te doen staan. Daarom wil je dit zo kort mogelijk houden. 2 seconde is vaak zat, de browser gaat geen 2 seconde wachten om het volgende plaatje op te vragen, zo wel? Dan is het best een vreemde browser.

    Wat ik eigenlijk eerder had moeten behandelen waren de StartServers, MinSpareServers en MaxSpareServers.

    StartServers staat standaard op 5. Indien jij geen 150 concurrent requests doet 24/7, dan zou ik het op 5 laten.

    Indien je dus weet dat zodra je Apache gestart er gelijk 150 requests zullen komen, dan kan je StartServers beter op 125 zetten, echter zal het dan wel langer duren voordat je Apache gestart is.

    MinSpareServers is het aantal processen dat klaar staat om extra aanvragen te behandelen. Stel er worden 100 requests verwerkt en dit staat op 5, dan zijn er 105 processen. Die 5 kunnen dus direct requests verwerken.

    Indien je weet dat je aantal requests gigantisch kan stijgen in een hele korte periode (30 ~ 60 sec), zet dit dan op iets van 25. Gebeurd dit niet? Houdt het dan laag, het kost namelijk alleen maar extra geheugen.

    Apache start maar 1 child per seconde, houdt daar rekening mee.

    MaxSpareServers is het tegenover gestelde. Stel je server verwerkt 100 requests en ineens verwerkt je server er nog maar 10. Dan zal Apache zijn childs gaan doden totdat het aantal childs kleiner of gelijk is aan: aantalactiechilds + maxspareservers.

    Hierbij wordt dan wel weer rekening gehouden met MinSpareServers zodat het aantal childs nooit daar onder komt.

    Zet dit dus ook niet heel erg hoog maar wel hoger dan MinSpareServers.

    Hier kan je dus wel uit afleiden dat er geen ideale httpd.conf is, het is dus echt een spelletje waar je goed in moet worden.

    Zeker op een server die meer doet dan alleen httpd kan het lastig zijn, want daar moet je je geheugen verdelen over alle processen zoals MySQL (en dat is helemaal een kunst!), je mailserver en je controle paneel.

    Met Apache bench (staat in de bin directory van apache onder de naam ab) kan je je server goed stressen en hem aan zijn max brengen.

    Ga daar mee aan de gang en laat hem even 24 uur lekker stressen, lekker aan zijn MaxClients en kijk wat er gebeurd. Gaat hij swappen? Wordt hij traag?

    Succes!
    En dit is alleen maar apache :P

    Snap nu iedereen waarom een 'managed server' niet te doen is voor 25 euro per maand?
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  4. #19
    Ideale httpd.conf
    3.810 Berichten
    Ingeschreven
    16/05/04

    Locatie
    Middelburg

    Post Thanks / Like
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    130 Berichten zijn liked


    Registrar SIDN: Ja

    Helemaal correct.

    MySQL is nog erger, daar komen nog veel meer variabelen bij kijken, daar kom ik zelfs niet goed uit.

    Het kost dus veel tijd om een server helemaal goed afgesteld te krijgen.

  5. #20
    Ideale httpd.conf
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door Wido Bekijk Berichten
    Helemaal correct.

    MySQL is nog erger, daar komen nog veel meer variabelen bij kijken, daar kom ik zelfs niet goed uit.

    Het kost dus veel tijd om een server helemaal goed afgesteld te krijgen.
    Kun je ook lastig op voorhand doen. Dit zal je in een running environment moeten bekijken. Dan kun je met 'show status'/'show variables' al wat meer te weten komen. En je moest een beetje experimenteren met de buffers voor de sort/read/net en table cache.
    Veel mysql tuning parameters zijn afhankelijk van het aantal tabellen, soort queries e.d. en dat wilt bij een hostingserver wel eens vaak wisselen.
    Blijft werk waarmee beheerders die 2 serviceuren per maand royaal kunnen vullen, hoor
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  6. #21
    Ideale httpd.conf
    a.k.a. Opa-Bullcat-
    1.182 Berichten
    Ingeschreven
    08/04/05

    Locatie
    Haarlem

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: 34223894
    Ondernemingsnummer: nvt

    Daarnaast is het geloof ik ook nog zo dat de Debian kernel maar 864 Mb geheugen gebruikt van hetgeen je erin stopt, tenminste daar was ik enige maanden geleden achter gekomen na een hint. Dit heeft meer met de kernel te maken maar ik zie hierboven geheugen gebruik langskomen die dan niet relevant is als niet alle in gebruik word genomen.

    Voor de rest lees ik met interesse dit topic mee !

    Hans
    Laatst gewijzigd door Bullcat; 17/12/06 om 23:52.

  7. #22
    Ideale httpd.conf
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Kernel moet je natuurlijk al ge-optimized hebben, anders hoef je aan de rest al niet te beginnen. Denk hierbij aan correct gebruik van je geheugen en swapspace, compilatie voor de juiste processor. Heb je ruim voldoende geheugen, maak dan direct een ramdisk voor je temp-dirs. Wil je echt een boel gaan loggen? -> kost een boel performance.

    Maar het belangrijkste blijft: optimaliseren werkt pas als je weet wat er op je server gebeurt. En dat is met met een paar honder klanten op 1 server niet te doen. In dat geval ben je het beste af met een paar extra reepjes ram.
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  8. #23
    Ideale httpd.conf
    Uw partner op ICT gebied
    913 Berichten
    Ingeschreven
    23/05/03

    Locatie
    Lunteren

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: 09138741
    Ondernemingsnummer: nvt

    Citaat Oorspronkelijk geplaatst door Bullcat Bekijk Berichten
    Daarnaast is het geloof ik ook nog zo dat de Debian kernel maar 864 Mb geheugen gebruikt van hetgeen je erin stopt, tenminste daar was ik enige maanden geleden achter gekomen na een hint. Dit heeft meer met de kernel te maken maar ik zie hierboven geheugen gebruik langskomen die dan niet relevant is als niet alle in gebruik word genomen.

    Voor de rest lees ik met interesse dit topic mee !

    Hans
    ff highmen in je kernel aanzetten onder processor.....bla... bijv op 4GB en je hebt max 4gb (kom even niet snel op de exacte benaming)

  9. #24
    Ideale httpd.conf
    a.k.a. Opa-Bullcat-
    1.182 Berichten
    Ingeschreven
    08/04/05

    Locatie
    Haarlem

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: 34223894
    Ondernemingsnummer: nvt

    Ja op mijn servers staat dat ondertussen al aan uiteraard, ik wilde alleen even een hint geven hier voor mensen die dus hun ideale http.conf hier weghalen en dan zien dat ze niet de beschikking hebben over al het geheugen wat erin zit

    Hans

  10. #25
    Ideale httpd.conf
    moderator
    4.784 Berichten
    Ingeschreven
    04/11/05

    Locatie
    Gent

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    12 Berichten zijn liked


    Registrar SIDN: ja
    KvK nummer: nvt
    Ondernemingsnummer: 0475284162

    Wido, bedankt voor een goede uitleg. Ik zou er graag nog wat aan toevoegen. Het is altijd goed een 250MB a 500MB geheugen vrij te houden op een shared hosting server die goed belast wordt, voor de IO buffers. Je zal zien dat, als al je processen het geheugen beginnen in te nemen (dus geen buffers/cache meer), je IO-wait de hoogte zal inschieten.

    Hou je systeem even in de gaten met vmstat en iostat (lees de man pages grondig als je niet weet wat deze doen) onder load...

Pagina 2 van de 2 Eerste 1 2

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics