Ich mache viel Leistung und skaliere die Arbeit und was ich entdeckt habe, ist Folgendes:
Jede Anwendungslast ist einzigartig
Generische Antworten wie das Hinzufügen von mehr RAM, das Erhalten eines anderen Servers, das Ausführen von y und das Ausprobieren von x sind häufig frustrierende Lektionen und überlassen komplizierten Setups.
Messen Sie die richtigen Dinge
Eine der größten Herausforderungen besteht darin, festzustellen, welche Benchmarks wichtig sind. Dies erfordert oft einen Schritt zurück und Sie müssen sich in die Lage Ihres Kunden versetzen. Manchmal ändert sich das vereinfachte Design der Website und bedeutet für den Webbesucher enorme Vorteile. Deshalb mag ich Tools wie YSlow! die sich mehr auf die Erfahrung des Endbenutzers als auf die Serverebene konzentrieren. Sobald Sie sich für den richtigen Benchmark für Ihre Website entschieden haben, können Sie mit der Optimierung beginnen. Benchmarks können die gesamte Ladezeit der Seite, die Gesamtseitengröße, die Cache-Effektivität, die Site-Latenz usw. sein. Sie müssen diejenige auswählen, die für Ihre Anwendung sinnvoll ist.
Schrauben und Muttern
Wenn Sie die richtigen Benchmarks verfolgen, beginnen Sie auf einem sehr niedrigen Niveau. Ich benutze gerne sysstat. Sie können eine Fülle von Informationen von sysstat erhalten und dabei helfen, herauszufinden, welches System die Gesamtanwendungsleistung möglicherweise einschränkt. Im Allgemeinen koche ich Leistungsprobleme in:
- Netzwerkstapel
- Speicherstapel
- Festplatte io
- Anwendungsschicht
- os Schicht
Mit sysstat und anderen Tools können Sie beginnen, Haare zu spalten und das System zu finden, das die Leistung einschränkt.
Ich habe beispielsweise festgestellt, dass hoch ausgelastete Server aufgrund der Konfiguration ihrer Anwendung ausfallen. Schlechtes Caching, fehlende abgelaufene Header für statische Inhalte, Verwendung von HTTP im Vergleich zu Datei-Includes usw. trugen alle zu einer schlechten Anwendungsleistung bei. Das Beheben dieser Anwendungsprobleme erforderte keine Hardwareänderungen. In anderen Fällen habe ich gesehen, dass die Festplatten trotz tonnenweise Caching voll sind. Das Verschieben auf schnellere Festplatten hat das Problem behoben.
Spülen und wiederholen
Während der Anwendungsoptimierung entkorken Sie häufig einen Engpass, um nur einen anderen zu finden. Aus diesem Grund empfehle ich, zu überwachen, was Sie gerade einstellen.
Angenommen, Sie beheben ein Problem mit der Festplatten-E / A, aber Ihre App ist immer noch langsam. Sie denken vielleicht, Sie haben Ihre Anstrengungen verschwendet, aber was passiert, ist, dass Sie einfach einen anderen Engpass treffen. Wenn Sie die Festplatten-E / A sorgfältig überwachen, können Sie sicher sein, dass Sie die Festplatten-E / A verbessern, auch wenn sich Ihre wichtigen Anwendungsleistungsmonitore nicht ändern.
Holen Sie sich die richtigen Werkzeuge
Stellen Sie sicher, dass Sie die richtigen Werkzeuge für den Job verwenden. Überwachung, Test, Benchmarking, Profilerstellung und andere Optimierungstechniken verfügen über eine Vielzahl von Tools. Finden Sie das Werkzeug, das am besten zu Ihrer Situation passt.
Faustregeln
Obwohl jede App einzigartig ist, finde ich einige Standardstartpunkte:
- Speicherdatenbanken lieben das Gedächtnis
- Festplatte io alles andere als RAID 10 kann die Datenbankleistung beeinträchtigen
- falsche Optimierungen - große Werte führen nicht zu großer Leistung
- Anwendung - Schuld am Server für schlechtes App-Design
Ihre nächsten Schritte
Wenn Sie Ihren Engpass nicht finden, hilft das Hinzufügen eines Servers möglicherweise nicht viel. Zum Lösen von Festplatten-E / A benötigen Sie möglicherweise einen anderen Server oder ein anderes SAN. Wenn Sie einen RAM-Engpass haben, löst ein anderer Server das Problem nur, indem er mehr RAM hinzufügt. Ziemlich kostspieliger Umzug im Vergleich zum Hinzufügen von mehr RAM zu Ihrem vorhandenen Server.
Schnelle Lösung
Über Bereitstellung. Ich musste dies tun, wenn es scheint, dass der Anwendungsstapel das Problem ist. Laden Sie grundsätzlich CPU, RAM und Festplatten-E / A (RAID 10, 15K SCSI oder SSD) auf. Gehen Sie groß auf die Hardware und beginnen Sie dann mit der Abstimmung. So bleiben Sie über Wasser, bis Sie die Probleme gelöst haben.