Es hängt wirklich von Ihrer Arbeitsbelastung ab.
für den L- Teil
- viel Gedächtnis bekommen,
- Wenn Sie über 4 GB gehen können, gehen Sie auf 64 Bit.
- Für Partitionen, in denen Ihre Inhalte, Protokolle und MySQL-Daten Mount-Optionen verwenden: noatime, nodiratime.
- Verwenden Sie separate physische Laufwerke / RAID-Sets. Bewahren Sie SQL-Daten, Protokolle und Inhalte, die Sie bereitstellen, idealerweise auf einer separaten Spindel auf.
für den A- Teil Ihres Stacks - nun, vielleicht möchten Sie ihn vollständig durch nginx oder lighthttpd ersetzen oder Apache für dynamischen Inhalt verlassen und einen separaten Server (wie diese beiden oder mathopd ) für statischen Inhalt haben. Schauen Sie hier für weitere Optionen. Wenn Sie sowohl Apache als auch einen anderen Server auf derselben Box ausführen möchten, ist eine zweite IP-Adresse hilfreich. Um die Latenz für den Endbenutzer zu verringern, verwenden Sie http / 1.1 mit Keep-Alive. Erwägen Sie die Verwendung eines CDN für statische Inhalte.
Für den M- Teil Ihrer Lampe werfen Sie einen Blick auf mysqlperformanceblog . von oben:
- langsame Abfragen protokollieren,
- genug Gedächtnis geben,
- Erwägen Sie die Verwendung von innodb.
- Wenn Sie viel Text suchen müssen, verwenden Sie Sphinx und haben Sie einen Stapeljob, der den Index neu erstellt.
- Ziehen Sie in Betracht, Abfragen zu beenden, die länger als XYZ Sekunden dauern. Es ist besser, 1% der Benutzer zu verärgern, als die gesamte Website in der Spitzenzeit herunterzufahren. Aber das hängt wirklich davon ab, ob Sie Bargeldtransaktionen abwickeln oder schöne Bilder zeigen.
- Verwenden Sie memcached, wenn Sie können, um das Ergebnis teurerer SQL-Abfragen zwischenzuspeichern. Denken Sie daran, den Cache ungültig zu machen, wenn Sie den Inhalt von SQL ändern. Auf der anderen Seite habe ich ziemlich wenige Sites, auf denen alle Daten bequem in den Speicher passen, und dafür ist MySQL blitzschnell und es ist kein zusätzlicher Cache erforderlich.
für P.
- Legen Sie das Ausführungszeitlimit für Skripte fest.
- Erwägen Sie die Verwendung eines PHP-Beschleunigers / Opcode-Cache. Ich war ziemlich zufrieden mit xcache , aber ich benutze es jetzt nicht.
- Wenn Sie eine CPU-intensive Verarbeitung haben, speichern Sie die Ergebnisse im Cache und speichern Sie sie in SQL oder zwischengespeichert
Nicht wirklich ein Leistungstipp, aber machen Sie Offsite-Backups. Ja wirklich.
Ich empfehle wirklich, MySQL und Apache / PHP auf zwei verschiedenen Computern zu trennen.
Zum Beispiel hatte ich eine Maschine (C2D E6600), die immer auf 2,0 und über dem Lastdurchschnitt anstieg. Ich habe MySQL auf einen zweiten Computer (P4C 3Ghz) gestellt und danach haben beide Lastdurchschnitte 0,2-0,3 nicht überschritten. Also bin ich von einer sehr langsamen Site zu einer schnellen Site mit zwei Servern mit viel Leistungsspielraum gewechselt.
quelle
Für den P-Teil könnten Sie das Opcode-Caching mit zB APC in Betracht ziehen . Man könnte auch mod_fastcgi mit PHP anstelle des Standardmod_php in Betracht ziehen .
quelle