[Tipp] Optimierung Apache/MYSQL auf vServer Aluminum

  • Hallo,


    vielleicht habe hier ja einige andere wie ich den kleinsten allen vServer, den vServer Alumnium. Für alle die jenige hier eins zwei kleine Kniffe um die LAMP-Konfiguration zu "perfektionieren". Mit dieser Konfiguration könnt ihr etwa die hälfte des Rams wie benötigt sparen.


    Zuerst einmal folgendes in die Datei /etc/apache2/httpd.conf


    Code
    StartServers 1
    MinSpareServers 1
    MaxSpareServers 3


    Danach navigiert ihr in die Datei /etc/mysql/my.cnf


    Und fügt bzw. ersetzt folgendes:


    Code
    key_buffer = 2M
    myisam_sort_buffer_size = 4M
    read_buffer_size = 512K
    read_rnd_buffer_size = 4M


    Wer jetzt noch möchte kann noch -sofern er nicht damit entwickelt- die InnoDB ausschalten. Dazu folgendes in die Shell eingeben:


    Code
    echo [mysqld] > /etc/mysql/conf.d/innodb.cnf
    echo skip-innodb >> /etc/mysql/conf.d/innodb.cnf


    Abschließend nachdem ihr alles getan habt natürlich noch:


    Code
    [FONT=Courier New]/etc/init.d/apache2 restart
    /etc/init.d/mysql restart[/FONT]



    Macht auch ruhig mal vorher und nachher ein Ressourcenvergleich mit dem "Taskmanager" top und ihr werdet sehen das dass richtig gut was bringt ;)

  • Der ein oder andere Tipp wurde im Forum schon mal erwähnt, trotzdem gut, dass du sie einmal zusammengefasst hast :)
    Abgesehen davon sollte man sich beim vServer Aluminium allerdings überlegen ob man wirklich ein LAMP System aufsetzen will, denn viele gleichzeitige Besucher (oder Bots) wird das System dann leider nicht verkraften. Hast du eigentlich auch noch einen Mail-Server laufen oder sonst etwas spezielles, z.B. auch einen FTP-Dienst?



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ein Mail Server läuft (noch) nicht - dazu bin ich noch nicht gekommen, genauso wenig wie ein FTP-Server. Mal schauen wie er das mitmacht soviel RAM habe ich nicht mehr frei und ob es sinnvoll ist Dienste in den SWAP zu schieben glaube/weiß ich nicht.


    Ich muss mal die Tage schauen, eventuell upgrade ich den Server, falls es die Möglichkeit gibt auf einen "Restprosten" (Bronze) upzugraden.


    Desweiteren habe ich vorhin lighttpd installiert - kann ich nur empfehlen, bringt nochmals einige MB Ram.

  • Hi,


    das mit dem InnoDB abschalten finde ich ne super Idee!
    Ich möchte es aber nur ungern abschalten ohne zu wissen das es sicher nicht mehr benötigt wird.. Auf einer DB lagen bei mir einige InnoDB Tabellen, diese habe ich gesichert und als MyISAM zurückgespielt so das ich auf den ersten Blick in keiner der DBs InnoDB Tabellen mehr habe. Sollte das abschalten jetzt ungefährlich sein?


    MfG,
    Ratte

  • Dann sollte es kein Problem darstellen.


    Falls es dennoch Probleme geben sollte einfach die Datei /etc/mysql/conf.d/innodb.cnf mit einem Texteditor aufrufen (nano, vi etc.) und folgendes wieder entfernen.


    Code
    [mysqld]
    skip-innodb


    Natürlich danach das

    Code
    /etc/init.d/mysql restart


    nicht vergessen! ;)


    Gruß,
    Sebastian

  • Zitat von holzratte;9603

    Hi,


    das mit dem InnoDB abschalten finde ich ne super Idee!
    Ich möchte es aber nur ungern abschalten ohne zu wissen das es sicher nicht mehr benötigt wird.. Auf einer DB lagen bei mir einige InnoDB Tabellen, diese habe ich gesichert und als MyISAM zurückgespielt so das ich auf den ersten Blick in keiner der DBs InnoDB Tabellen mehr habe. Sollte das abschalten jetzt ungefährlich sein?


    MfG,
    Ratte


    Sobald du keine InnoDB Tabellen mehr hast kannst du es abschalten.

  • Warum gibt es seitens Netcup eigentlich kein fertiges Image für so einen Alu vServer?


    netcup: Würde mich reizen, mal eines zurecht zu machen, mit:
    - ssh
    - java server für http, https, smtp, imap pop3
    - mysql
    - und php-cgi (falls sowas jemand braucht)


    ... sollte eigentlich mit 100MB auskommen


    Bebbo

  • Weil der Alu Server dann sowieso selbst bei geringen website aufrufen in die knie gehen würde?


    Nen Alu Server ist in meinen Augen eher was wo man mal eben was drauf testen kann aber um darauf ne Website zu hosten denk ich ist er von den Ressourcen her einfach zu klein.


    Das ist natürlich nur meine Meinung ;) wieso es das nicht gibt kann natürlich nur Netcup selbst beantworten



    MfG
    Andre

  • Die Jungs haben schon insgesamt einiges um die Ohren, und dann noch sowas, naja.


    Ich werde heute mal meine neu aufsetzten und sauber installieren. Desweiteren werde ich Apache gegen lighttpd tauschen und mal berichten.


    Gruß,
    Sebastian

  • Einrichten einer Webserver-Konfiguration mit minimalem Speicherverbrauch für den vServer Alu
    Mit lighttpd, php5-cgi & mysql


    Vorweg: ich installier hier alles auf einem Debian Lenny 64bit


    Zuerst einmal installieren wir lighthttpd samt php5 via:


    Code
    apt-get install lighttpd php5-cgi

    Danach öffnen wir mit einem beliebigen Texteditor die File /etc/lighttpd/lighttpd.conf


    und ersetzten folgendes:


    durch folgendes:


    und fügt folgendes der Datei hinzu:


    Jetzt zur Datei /etc/php5/cgi/php.ini navigieren und folgendes der Datei hinzufügen



    Code
    cgi.fix_pathinfo = 1


    Danach führt ihr folgendes in der Shell aus:


    Code
    apt-get install mysql-server phpmyadmin

    Dort führt sich nun ein Konfigurationstool aus. Dort gebt ihr das root Passwort ein (einmal und nochmals zur Bestätigung) und navigiert danach bei "Configuring phpmyadmin" zu lighthttpd und wählt dieses auch mit Leertaste aus. Danach auf ok und fertig.


    Jetzt navigiert ihr zur Datei /etc/mysql/my.cnf und ersetzt folgendes:


    Code
    # * Fine Tuning
    #
    key_buffer              = 16M
    max_allowed_packet      = 16M
    thread_stack            = 128K
    thread_cache_size       = 8

    mit folgendem:


    Code
    # * Fine Tuning
    #
    key_buffer = 2M
    myisam_sort_buffer_size = 4M
    read_buffer_size = 512K
    read_rnd_buffer_size = 4M
    max_allowed_packet      = 16M
    thread_stack            = 128K
    thread_cache_size       = 8

    Jetzt noch folgendes in der Shell ausführen:

    Code
    echo [mysqld] > /etc/mysql/conf.d/innodb.cnf && echo skip-innodb >> /etc/mysql/conf.d/innodb.cnf

    Nun könnt ihr beides neustarten:

    Code
    /etc/init.d/lighttpd restart && /etc/init.d/mysql restart

    Wenn ihr nun euren Webserver aufruft seht ihr eine "Placeholder Page" von lighttpd. Nun können wir testen ob php noch funktioniert, und zwar wie folgt:


    Ihr erstellt eine Datei namens phpinfo.php im Verzeichnis /var/www/ mit folgendem Inhalt:


    PHP
    <?php
    phpinfo();
    ?>

    Wenn euch nun eine relativ umfangreiche Seite (auf http://eurewebserverip/phpinfo.php) mit vielen Infos zu euerer Webserverkonfiguration & PHP-Informationen angezeigt wird läuft der Webserver samt PHP nun richtig :)


    Ich hoffe ich konnte mit dem kleinen Tutorial einigen helfen. Verbesserungsvorschläge/Kritik bin ich immer offen für, falls keiner Fehler findet würde ich das gerne der Wiki hinzufügen:)

  • Kleiner Vorschlag noch, Debian 5 64bit belegt minimal mehr Speicher als die 32bit Version, da es bei deinem Alu-Server auf jedes MB ankommen wird, wäre es noch eine Einsparmöglichkeit.


    Und aus interesse, wieso nutzt du nicht das fastcgi Modul sondern setzt den fastcgi.server in die eigentliche conf? das wird schnell unübersichtlich in der Datei, weshalb ich meine Domains schon in je einer extra Datei anlege.

  • Zitat von dominusnoctae;9671

    Kleiner Vorschlag noch, Debian 5 64bit belegt minimal mehr Speicher als die 32bit Version, da es bei deinem Alu-Server auf jedes MB ankommen wird, wäre es noch eine Einsparmöglichkeit.


    Und aus interesse, wieso nutzt du nicht das fastcgi Modul sondern setzt den fastcgi.server in die eigentliche conf? das wird schnell unübersichtlich in der Datei, weshalb ich meine Domains schon in je einer extra Datei anlege.


    Das mit 32bit wäre noch eine Idee, kann man so hinzufügen. Aber ich habe grad keine Lust den vServer neu aufzusetzten :D


    Deine zweite Anfrage verstehe ich nicht ganz, wenn ich das in den Dokumentationen richtig verstanden habe kann man den fastcgi Server nur in der lighttpd-Konfigurationsdatei konfigurieren

  • in/etc/lighttpd/conf-available/ gibt es die 10-fastcgi.conf die conf kannst du aktivieren und nutzen... entweder linkst du sie manuell nach conf-enable oder du nutzt das tool von lighttpd dazu

    Code
    lighty-enable-mod fastcgi

    deshalb hab ich nur gefragt



    und zur den domain configs:
    mit include kannst du dateien bequem einbinden, ich habe bsw. einfach eines der python scripte für das einlesen des conf-enable-Verzeichnisses kopiert und umgeschierben, habe 2 neue Verzeichnisse angelegt (domain-available und domain-enable), erstelle alle domain configdateien und linke die, die aktiviert werden sollen in das andere verzeichnis

  • Zitat von dominusnoctae;9673

    in/etc/lighttpd/conf-available/ gibt es die 10-fastcgi.conf die conf kannst du aktivieren und nutzen... entweder linkst du sie manuell nach conf-enable oder du nutzt das tool von lighttpd dazu

    Code
    lighty-enable-mod fastcgi

    deshalb hab ich nur gefragt



    und zur den domain configs:
    mit include kannst du dateien bequem einbinden, ich habe bsw. einfach eines der python scripte für das einlesen des conf-enable-Verzeichnisses kopiert und umgeschierben, habe 2 neue Verzeichnisse angelegt (domain-available und domain-enable), erstelle alle domain configdateien und linke die, die aktiviert werden sollen in das andere verzeichnis


    Das wusste ich nicht! Schau ich mri dann mal genauer an :)

  • Hallo,


    mal ne Frage. Ich habe auf meinem vServer Apache 2 installiert und mir ist negativ aufgefallen das der ganz schön am Speicher nagt. Jetzt wollte ich ihn ein bisschen optimieren und habe die apache2.conf angepasst nicht die http.conf.



    Nach einem reload & restart geht der apache nach ein paar Aufrufen aber wieder hoch:


    Jetzt meine Fragen: wo dran liegt das? Ist vielleicht das Modul nicht geladen? (<IfModule mpm_prefork_module>)


    Warum wird der Apache einmal vom root ausgeführt?


    mfg Chris

  • Naja... ich weiß nicht, wie schnell der Apache die Prozesse wieder beendet, wenn sie nicht mehr benötigt werden. Also die Frage ist, ab wann ist ein Prozess "spare"?


    Wenn du wirklich nie mehr als x Prozesse haben willst, legst du das mit MaxClients fest. Die Anfragen, die nicht sofort bearbeitet werden können, kommen dann in eine Warteschlange: http://httpd.apache.org/docs/2…pm_common.html#maxclients


    Der eine root-Prozess ist schon in Ordnung: http://httpd.apache.org/docs/2…prefork.html#how-it-works