Hosting-Kapazitätsvalidierung
Dieses Protokoll erläutert, wie WebBlocks CMS vertretbare PHP-Speicher-, Ausführungszeit-, Upload- und Festplattenanforderungen festlegt. Ein Wert wird erst dann zu einem veröffentlichten Minimum, wenn die gesamte Akzeptanzarbeitslast wiederholt auf einem eingeschränkten produktionsähnlichen Server durchlaufen wird. Ein Hosting-Systemsteuerungsetikett oder eine inaktive Installation sind kein Beweis.
Verwenden Sie dieses Protokoll bei der Qualifizierung eines Hosting-Plans und immer dann, wenn eine CMS-Version die Medienverarbeitung, Sicherung/Wiederherstellung, Import/Export, Installation oder Aktualisierungsverhalten wesentlich ändert.
Was das Ergebnis bedeutet
Kapazitätsergebnisse sind arbeitslastspezifisch:
- das core-Profil deckt Installation, Verwaltung, Seitenbearbeitung, Veröffentlichung und öffentliches Rendering ohne GD-Transformationen oder paketnative Updates ab;
- das Medienprofil fügt die Referenzbild-Arbeitslast und GD-Transformationen hinzu;
- das -Betriebsprofil fügt Anwendungssicherungen, Wiederherstellungsprobe, Standortübertragung und paketnative Systemaktualisierung hinzu; und
- das -Verkehrsprofil misst die Parallelität getrennt von der Laufzeituntergrenze für eine einzelne Anforderung.
Fügen Sie diese Profile nicht zu einer unerklärlichen Zahl zusammen. Beispielsweise kann ein gemeinsam genutzter Nur-Core-Host gültig sein, während das Betriebsprofil fehlschlägt, vorausgesetzt, Bereitstellung, Aktualisierung und Sicherung werden extern gehandhabt.
Kontrollierte Testumgebung
Führen Sie das Release-Artefakt in einer neuen Host-Anwendung mit der unterstützten Laravel-Hauptversion der Zielbereitstellung aus. Verwenden Sie die produktive PHP-SAPI, den Webserver, MySQL 8.0, den Dateisystemtyp und die Prozessbeschränkungen des Zielhosts. Verwenden Sie das SQLite-Testbench-Ergebnis des Pakets nicht als Hosting-Nachweis.
Datensatz:
- CMS-, Laravel-, PHP-, Datenbank-, Webserver- und Betriebssystemversionen;
- CPU-Zuweisung oder -Drosselung, PHP-Worker-Anzahl und Speichertyp;
- PHP
memory_limit,max_execution_time,upload_max_filesizeundpost_max_sizefür Web und CLI; - -fähige Erweiterungen und GD-Codec-Unterstützung;
- Anwendungs-, Datenbank-, Medien- und Sicherungsgrößen vor jeder Ausführung; und
- Kalt-/Warm-Cache-Status und OPcache-Konfiguration.
Erstellen Sie eine Ressourcenmatrix, anstatt mehrere Grenzwerte gleichzeitig zu ändern. Testen Sie den Speicher mit absteigenden Grenzwerten wie 512, 256 und 128 MiB. Testen Sie die Anfragezeit selbstständig mit den von realistischen Anbietern angebotenen Werten. Die niedrigste bestandene Zelle ist ein Kandidat, noch kein veröffentlichtes Minimum.
Referenzdatensatz
Behalten Sie ein versioniertes, mit Prüfsummen aufgezeichnetes Fixture außerhalb des öffentlichen Release-Pakets. Es sollte keine Kundendaten enthalten und mindestens Folgendes erstellen:
- 3 Sites, 3 Gebietsschemas und repräsentative Navigation und Shared Slot-Beziehungen;
- 250 veröffentlichte Seiten und 50 Entwürfe verteilt auf die nativen Blocktypen;
- 5.000 Blöcke, einschließlich verschachteltem Layout, Galerie, Navigation, Suche und Formularinhalt;
- 500 Mediendatensätze mit mindestens 2 GiB der gesamten Originale für das Betriebsprofil;
- JPEG, PNG mit Alpha- und WebP-Referenzbildern, einschließlich Hochformat, Querformat, Kleinbild und Fällen mit hoher Pixelzahl;
- genügend Revisionen, Kontaktnachrichten und Suchdatensätze, um echte Einträge durchzuführen; und
- a Datenbank-Dump und Site-Transfer-Paket, das aus demselben Status generiert wurde.
Das Fixture-Manifest muss Zeilenanzahl, Bytegrößen, Bildabmessungen, MIME-Typen und SHA-256-Prüfsummen aufzeichnen. Durch den Austausch des Geräts beginnt eine neue Benchmark-Serie; Vergleichen Sie die Ergebnisse verschiedener Workloads nicht stillschweigend.
Akzeptanzarbeitslast
RFühren Sie jedes anwendbare Szenario einmal zum Aufwärmen und dann fünf Mal aus. Alle fünf gemessenen Läufe müssen bestanden werden.
Kernprofil
- Installieren Sie die Version in einem sauberen Laravel-Consumer und führen Sie den CMS-Installationsablauf aus.
- Melden Sie sich an, öffnen Sie das Dashboard und paginieren und filtern Sie die größten Seiten- und Medieneinträge.
- Erstellen, Bearbeiten, Vorschau, Veröffentlichen und öffentliches Anfordern einer repräsentativen verschachtelten Seite.
- Rendern Sie die Startseite, eine inhaltsreiche Seite, Suchergebnisse und eine lokalisierte Navigation.
- RFühren Sie die normale Konfiguration, Route, Ansicht und den Anwendungscache der Anwendung aus.
Medienprofil
- Laden Sie Dateien unmittelbar unterhalb der CMS-50-MiB-Validierungsobergrenze über den echten HTTPS-Webpfad hoch.
- Laden Sie jedes Referenz-Rasterbild hoch und generieren Sie jede Systemvariante aus einem Kalttransformations-Cache.
- Renerieren Sie den vollständigen Referenzmediensatz im dokumentierten begrenzten Workflow.
- Bestätigen Sie das Fallback-Verhalten für einen nicht unterstützten Codec ohne schwerwiegenden Fehler oder unvollständige Ausgabe.
Rasterbilder mit hoher Pixelanzahl sind für den GD-Speicher wichtiger als die komprimierte Dateigröße. Die Medienhalterung zeichnet daher sowohl Dimensionen als auch Bytes auf. Ein Upload-Limit von 50 MiB beweist nicht, dass jedes 50 MiB große komprimierte Bild innerhalb eines bestimmten Speicherlimits umgewandelt werden kann.
Betriebsprofil
- Erstellen Sie eine vollständige Anwendungssicherung aus dem Referenzdatensatz und laden Sie sie herunter.
- Stellen Sie es in einem isolierten Ziel wieder her und überprüfen Sie die Prüfsummen der Datenbank und der öffentlichen Medien.
- exportieren und importieren Sie die Referenzsite mit den enthaltenen Dateien;
- Wenden Sie die Kandidatenversion über ein paketnatives Systemupdate an, einschließlich des obligatorischen Backup- und Rollback-Arbeitsbereichs vor dem Update. und
- Führen Sie die Bereinigung aus und stellen Sie sicher, dass aufbewahrte Backups und aktuelle Medientransformationen intakt bleiben.
Destruktive Wiederherstellungstests gehören zu einer isolierten Kopie, niemals zur Produktionsinstallation.
Verkehrsprofil
RFühren Sie einen separaten Auslastungstest für zwischengespeicherte und nicht zwischengespeicherte öffentliche Seiten sowie authentifizierte Administrator-Lesevorgänge aus. Geben Sie den Anforderungsmix, die Parallelität, die Dauer, die Worker-Anzahl, die Datenbankgröße und den Cache-Treiber an. Durchsatz und Latenz melden; Konvertieren Sie ein Parallelitätsergebnis nicht in ein PHP-Speicherminimum.
Messungen und Erfolgskriterien
Sammeln Sie serverseitige Beweise für jeden Lauf:
- Exit-/HTTP-Status- und Anwendungsprotokollfehler;
- Spitzenspeicher PHP für CLI-Arbeit und Spitzenarbeitsspeicher oder Provider-Telemetrie für Webanfragen;
- Dauer und Zeitüberschreitungen der Wanduhr;
- Datenbankfehler und langsame Abfragen;
- freie Festplatte vor, niedrigste freie Festplatte während und freie Festplatte nach der Bereinigung;
- Ausgabeanzahl, Archivintegrität und Fixture-Prüfsummen; Und
- p50, p95 und maximale Latenz für das Verkehrsprofil.
Ein Kandidatenprofil besteht nur dann, wenn:
- jeder Vorgang wird in allen fünf gemessenen Durchläufen korrekt abgeschlossen;
- Es gibt keine Speichermangelfehler, Zeitüberschreitungen, abgeschnittene Uploads, Teilarchive, Berechtigungsfehler oder neue Protokolleinträge auf Fehlerebene.
- Der gemessene Spitzenspeicher beträgt höchstens 80 % von
memory_limit. - Die gemessene Dauer beträgt höchstens 80 % des anwendbaren Ausführungszeitlimits.
- Die Festplattennutzung geht niemals in den reservierten Freiraumbereich ein. Und
- Bei einer sauberen Wiederherstellung werden die aufgezeichneten Datenbank- und Dateibeweise reproduziert.
Der Laufzeitspielraum von 20 % absorbiert normale Schwankungen; Es handelt sich nicht um einen Kapazitätsplan für Verkehrswachstum. Wenn ein Kandidat besteht und der nächstniedrigere Kandidat nicht besteht, wiederholen Sie beide Zellen in einer zweiten sauberen Umgebung, bevor Sie den bestandenen Wert veröffentlichen.
Einstellungen hochladen
Die aktuelle CMS-Medienanfrage akzeptiert maximal 51.200 KiB (50 MiB) pro Datei. Um dieses volle Produktlimit aufzudecken, müssen die Web-SAPI und jeder davor liegende Proxy die Anfrage zulassen. upload_max_filesize muss mindestens 50 MiB groß sein und post_max_size muss größer als die gesamte mehrteilige Anfrage sein. Eine praktische Startkonfiguration beträgt 64 MiB für beide Grenzwerte, abhängig von der Richtlinie der Hostanwendung.
Wenn eine Bereitstellung absichtlich ein niedrigeres Upload-Limit wählt, dokumentieren Sie dies als Installationslimit; Die CMS-Validierungsobergrenze wird dadurch nicht geändert. Validieren Sie Uploads knapp unter dem gewählten Limit und lehnen Sie sie knapp darüber ab. Testen Sie über den Browser-/API-Pfad, da eine CLI-Dateisystemkopie die PHP- und Proxy-Body-Limits umgeht.
Festplattenberechnung
Es gibt zwei verschiedene Festplattenentscheidungen:
- Steady-State-Kapazität muss Anwendungsversionen, die Live-Datenbank, Originalmedien, generierte Varianten, Protokolle, temporäre Dateien, Site-Transfer-Pakete und die konfigurierte Backup-Aufbewahrung abdecken.
- Operationsspielraum muss die größte temporäre Überlappung während Sicherung, Extraktion, Aktualisierung, Import oder Rollback abdecken.
Das paketnative Systemupdate erzwingt derzeit eine absolute Preflight-Mindestgröße von 500 MiB für freien Speicherplatz. Das ist eine Sicherheitstür, kein Versprechen, dass 500 MiB für eine medienintensive Installation ausreichen. Messen Sie zur Akzeptanz den niedrigsten freien Speicherplatz während des Betriebsprofils und behalten Sie mindestens den größeren der folgenden Werte bei:
- 500 MiB; oder
- 125 % des gemessenen Spitzenverbrauchs an temporärer Festplatte für den Referenzdatensatz.
Größe des stationären Speichers aus gemessenen Daten:
application releases
+ live database allocation
+ original media
+ generated variants
+ retained backup archives
+ retained site-transfer packages
+ expected logs and temporary files
+ at least 25% operational growth reserve
Neuberechnung nach wesentlichem Wachstum bei Medien, Datenbankgröße, Backup-Aufbewahrung oder Plugin-Daten. Konfigurieren Sie die Überwachung so, dass eine Warnung ausgegeben wird, bevor der Spielraum für den Vorgang verbraucht wird.
Veröffentlichung mindestens
Speichern Sie das Rohergebnis mit dem Freigabequalifizierungsdatensatz und veröffentlichen Sie eine Zusammenfassung in Hosting-Kapazitätsergebnisse mit unveränderlichem CMS-Commit oder Release-Tag, Qualifizierungs- und Fixture-Versionen, dauerhaftem Speicherort der Rohbelege, Serverprofil, getesteten Limits, schlechtestem Ergebnis aus fünf Durchläufen, Sicherheitsmarge und Datum. Eine Untergrenze darf nur durch eine neue erfolgreiche Qualifizierungsserie geändert werden. Wenn Rohbelege nicht aufbewahrt wurden, geben Sie dies im Ergebnis an und belassen Sie das Profil als vorläufig.
Bis diese Serie existiert, Hosting-Anforderungen muss sagen, dass der Wert nicht produktzertifiziert ist. Ersetzen Sie diese Anweisung, sobald sie vorhanden ist, durch eine Profiltabelle. Behalten Sie die Workload-Version neben jeder Zahl bei, damit cms.webblocksui.com keine kontextfreie Garantie bietet.
Verwenden Sie die Checkliste für die Hosting-Bereitschaft , um das ausgewählte getestete Profil und den Nachweis einer einzelnen Bereitstellung anzuhängen.