Geschwindigkeit steigern, Opcode APC, Prefork und FCGI

  • Hi,
    ich hoffe jemand kann mit mir mal ein wenig durch meine Einstellungen gehen, bitte.
    Seit ich den Froxlor mit dem Debian Squeeze 64bit auf dem vServer Uranus SE verwende waren bisher noch keine "Tuning"-Massnahmen unternommen worden.
    Ich hatte PHP/ FCGI noch manuell installiert bevor das als fertiges Image mit dem Froxlor hier zur Verfügung stand.
    Leistungen vom Uranus SE:
    Prozessorgarantie: 2 000 MHz Arbeitsspeicher | Flexi-SSD: 4 096 MB | Arbeitsspeicher garantiert: 2 048 MB


    Jetzt benutzt meine Apache zur Zeit, nach Aufruf von

    Code
    apache2 -l

    zu sehen, den Prefork als Multithreader.
    Ausgabe:

    Code
    core.c
      mod_log_config.c
      mod_logio.c
      prefork.c
      http_core.c
      mod_so.c


    Die Einstellungen aus /etc/apache2/apache2.conf:

    Code
    <IfModule mpm_prefork_module>
    	ServerLimit     	110
    	StartServers      	2
    	MinSpareServers   	2
    	MaxSpareServers   	5
    	MaxClients      	100
    	MaxRequestsPerChild   5000
    </IfModule>


    Timeout 300
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 15
    Die MaxClients habe ich so ausgerechnet: (RAM 2000 MB - 512MB System (Beliebig vorsichtig geschätzt)) / Prozesse von 22 MB
    62 war mir zu niedrig also hab ich mal 100 eingestellt. Ich weiss etwas unlogisch, wenn ich dann meiner eigenen Berechnung nicht folge, aber 512 MB fürs System ist doch etwas seeeehr vorsichtig.
    Folgende Module finde ich in mods-enabled:

    Code
    alias.conf	  	autoindex.conf  expires.load	reqtimeout.conf
    alias.load	  	autoindex.load  fcgid.conf	reqtimeout.load
    auth_basic.load   	cgi.load	  	fcgid.load	rewrite.load
    authn_file.load   	deflate.conf	headers.load	setenvif.conf
    authz_default.load	deflate.load	mime.conf		setenvif.load
    authz_groupfile.load  dir.conf	  	mime.load		status.conf
    authz_host.load   	dir.load	  	negotiation.conf	status.load
    authz_user.load   	env.load	  	negotiation.load	suexec.load


    Bin ich noch auf dem richtigen Pfad?
    Weiter gehts mit dem FCGI, dort die fcgi.conf in /etc/apache2/mods-enabled/fcgi.conf



    Den APC richte ich mit zusätzlichen Einstellungen je vhost über das Froxlor - Panel ein, was tatsächlich praktisch ist, da man dann keine globale Einstellung hat.
    Dort ist er auf einer Domain enabled mit

    Code
    extension=apc.so
    apc.shm_size=64M


    in

    Code
    /var/www/php-fcgi-scripts/KUNDE/domain.de/php.ini


    Mehr noch nicht, weil ich erstmal die anderen Sachen regeln wollte.
    Außerdem habe ich gelesen, dass wenn durch PHP/ FCGI eine bestimmte "Prozessverteilung" stattfindet, APC irgendwie auch daran angepasst werden muss.
    Und das ist mir leider im Moment noch zu hoch.
    Hat jemand einen Vorschlag?


    Ich will überhaupt eien Verbesserung erzielen, da bald wieder eine Seite anläuft, (Google News-Lieferant) die höhere Besucherzahlen zu erwarten hat.
    Meist viele gleichzeitig, also 1.000 bis 3.000 Besucher innerhalb von 2 Stunden kann da immer passieren, kommt auf die Meldungen an.


    Außerdem will ich dass auch die Low-Traffic-Seiten fix laden.


    Wer kann mir einen Tipp geben?


    Vielen Dank im Voraus.


    MfG
    Andre

    reboot-the-root-noob.

    2 Mal editiert, zuletzt von webass ()

  • Ich kenne mich mit den Einstellungen leider nicht ausreichend aus, würde aber einmal empfehlen.. bzw.. den Apache für Linux gibts doch seit einiger Zeit auch pre-threaded oder nicht?
    Das ist doch deutlich ressourcensparender als pre-forked.

  • Hi,
    weiss nicht genau was Du meinst.
    Den mpm-worker könnte man auch einsetzen, der etwas anders funktioniert als der prefork.
    Ich weiss halt nicht wie man den aktiviert.


    Ich habe diese Wünsche mal einer befreundeten Firma aus Indien (über 150 Mitarbeiter) gegeben, die auch einige Server-Admins haben.
    Dann werde ich hier mal updaten.


    Leider findet man (zumindest ich) im Netz kaum/ keine Inhalte über Leistungsverbesserungen zu VPS mit den Einstellungen, die konkret an Szenarien gekoppelt sind.
    Irgendwie find ich echt nichts bei Google, außer hier und da, halt zu großen Maschinen. Mit 16 CPU's und weiss der Geier wie viel RAM.


    Da macht es das irgendwie schwierig zu folgen.


    Bis später.
    Andre

  • Kein Wunder!


    Das hängt nunmal von vielen Faktoren ab und dafür gibt es kein Rezept, welches auf jeden Server anwendbar ist.
    Das ist auch der Grund, warum Du keine expliziten Tutorials dafür findest, allenfalls Anhaltspunkte.


    Die Optimierung musst Du, so leid es mir tut, selber austesten und für Deinen Server finden. ^^


    Administration von Servern ist eben nicht nur das stupide befolgen von Tuts, die oftmals nichtmal auf Deine Situation zugeschnitten sind.
    Vor den Gefahren, die ein Halbwissen in der Serveradministration mitbringt, brauche ich, glaube ich, nicht zu warnen.
    Übrigends in vielen Foren oft ein Grund, warum diverse Leute mürrisch auf Anfragen reagieren.
    Die entweder tausendfach besprochen wurden oder aber man der Meinung ist, da ist ein Anfänger am Werk, dem zu raten ist, keine Server zu administrieren.


    Deinen Beiträgen zu Folge, musst Du auch noch einiges lernen.
    Wenn Du das für Deine Firma machen musst, nun, dann hast Du noch einiges vor Dir, vor allem wenn es um sensible Daten geht.
    Wenn es für Dich ist, dann bau Dir eine Kiste, die Du im Heimnetzwerk betreibst und spiel damit rum, bis Du einige Erfahrungen gesammelt hast.
    Es gibt für einen bösen Buben nichts schöneres, eine Kiste im Netz zu finden, die man schön für böse Dinge verwenden kann. :)
    Spam ist da noch eine harmlose Story. ^^

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • Jo,
    bei verschiedenen sicherheitsrelevanten Dingen kümmern sich die richtigen Leute darum.
    Wie gesagt, das eine oder andere teste ich gerne selber aus, wie Du hier mitbekommst und auch kann es sein, dass ich schon von den Partnern in Indien sprach, die führen auch Audits durch und sind sehr erfahren.
    Um meine Webseiten mache ich mir da keine Sorgen. Die Inder sind nur gerade mit der Firma umgezogen, weil die ein Platzproblem hatten. Daher hatte da niemand Zeit einem alten Kollegen bei seinen Spielereien zu helfen.
    Die Tage werden die sich um bestimmte Sachen wieder kümmern.
    Das heißt, bei mir sind die Server die im WEB stehen administriert und gehärtet und die Seiten, die öffentlich sind werden auch sicherheitsgecheckt.
    Als das noch nicht so war und ich auch bei einem schlechteren Hoster gewesen bin, da hatte sich auch mal ein Spammer eingeschlichen, weil irgendwo, ganz unbeachtet noch eien Demoseite mit echt alter Software lief. Ein OS-Commerce.
    Daher leite ich die Planungen nun auch nach dem Grundsatz: Nur soviel laufen lassen, wie wirklich notwendig!
    Bis dann.