Heim > Artikel > Backend-Entwicklung > Analyse von zwei Sätzen von Konfigurationsdateien und Parametern von PHP APC
In diesem Artikel werden hauptsächlich zwei Sätze von PHP-APC-Konfigurationsdateien und detaillierte Parameter vorgestellt.
1. Installieren Sie APC
Die Kompilierungsparameter sind wie folgt:
./configure --enable-apc --enable-apc-spinlocks --disable-apc-pthreadmutex
Ich werde nicht über den Installationsprozess sprechen, den Standard-Installationsmodus für PHP-Erweiterungen.
2 Dateien
Hohe Leistung, nicht für häufige Updates geeignet:
apc.enabled=1 apc.stat = 0 apc.stat_ctime = 0 apc.shm_size = 64M apc.shm_segments = 1 apc.num_files_hint = 1000 apc.ttl = 0 apc.slam_defense = 0 apc.write_lock = 1 apc.file_update_protection = 2
Etwas geringere Leistung:
apc.enabled=1 apc.stat = 1 apc.stat_ctime = 1 apc.shm_size = 64M apc.shm_segments = 1 apc.num_files_hint = 1000 apc.ttl = 86400 apc.slam_defense = 0 apc.write_lock = 1 apc.file_update_protection = 2
Der Schlüssel zu den beiden Konfigurationssätzen ist apc.stat. Nach dem Einschalten prüft APC nicht, ob die Datei aktualisiert ist, sodass Sie eine große Anzahl unnötiger Systemaufrufe reduzieren können.
Bei neu veröffentlichten Problemen muss PHP jedoch neu gestartet werden. Sie können entsprechend auswählen Situation.
Zusätzlich sind Parameterbeschreibungen beigefügt:
apc.enabled boolean
apc.enabled kann auf 0 bis gesetzt werden APC deaktivieren. Es wird hauptsächlich verwendet, wenn APC statisch in PHP kompiliert wird, da es keine andere Möglichkeit gibt, es zu deaktivieren (als DSO kompiliert, können Sie die Erweiterungszeile in php.ini auskommentieren).
apc.shm_segments integer
Die Anzahl der gemeinsam genutzten Speicherblöcke, die vom Compiler-Cache zugewiesen werden sollen. Wenn APC nicht mehr über den gemeinsam genutzten Speicher verfügt, apc.shm_size jedoch auf den vom System zulässigen Höchstwert eingestellt ist, können Sie versuchen, diesen Wert zu erhöhen.
apc.shm_size integer
Die Größe jedes gemeinsam genutzten Speicherblocks in MB. Einige Systeme (einschließlich der meisten BSD-Varianten) verfügen standardmäßig über eine sehr geringe Blockgröße des gemeinsam genutzten Speichers.
apc.optimization integer
Optimierungsstufe. Auf 0 setzen, um den Optimierer zu deaktivieren, höhere Werte, um eine aggressivere Optimierung zu verwenden. Erwarten Sie nur sehr begrenzte Geschwindigkeitsverbesserungen. Noch im Test.
apc.num_files_hint integer
Eine grobe Schätzung der Anzahl unterschiedlicher Ursprungsdateien, die auf dem Webserver eingebunden oder angefordert werden. Setzen Sie diese Option auf 0 oder entfernen Sie sie, wenn Sie sich nicht sicher sind. Diese Einstellung wird hauptsächlich auf Websites mit Tausenden von Quelldateien verwendet.
apc.user_entries_hint integer
Ähnlich wie apc.num_files_hint speichert es Cache-Variablen basierend auf der Anzahl eindeutiger Benutzer. Wenn Sie sich nicht sicher sind, setzen Sie es auf 0 oder entfernen Sie dieses Element.
apc.ttl integer
Die Anzahl der Sekunden, die ein Cache-Eintrag im Puffer verbleiben darf. 0 bedeutet, dass es nie zu einer Zeitüberschreitung kommt. Der empfohlene Wert liegt zwischen 7200 und 86400, was bedeutet, dass der Puffer möglicherweise mit alten Cache-Einträgen gefüllt ist, was dazu führt, dass neue Einträge nicht zwischengespeichert werden können.
apc.user_ttl integer
ähnelt apc.ttl, aber für jeden Benutzer beträgt der empfohlene Wert 7200~86400. Die Einstellung auf 0 bedeutet, dass die Möglichkeit besteht, dass der Puffer mit alten Cache-Einträgen gefüllt wird, wodurch verhindert wird, dass neue Einträge zwischengespeichert werden. Wenn der Wert größer als 0 ist, versucht APC, abgelaufene Einträge zu löschen.
apc.gc_ttl integer
Die Anzahl der Sekunden, die der Cache-Eintrag in der Garbage-Collection-Tabelle vorhanden sein kann. Dieser Wert bietet eine Sicherheitsmaßnahme: Wenn die Datei geändert wird, während der Serverprozess eine zwischengespeicherte Quelldatei ausführt, wird die ältere Version erst wiederverwendet, wenn diese TTL erreicht ist. Auf Null setzen, um diese Funktion zu deaktivieren.
apc.cache_by_default boolean
Die Standardeinstellung ist „on“, kann aber auf „off“ gesetzt und zusammen mit apc.filters verwendet werden, die mit einem Pluszeichen beginnen, dann wird die Datei nur angezeigt bei Übereinstimmung mit dem Filter zwischengespeichert.
apc.filters string
Eine durch Kommas getrennte Liste erweiterter regulärer POSIX-Ausdrücke. Wenn eines der Muster mit dem Namen der Quelldatei übereinstimmt, wird die Datei nicht zwischengespeichert. Beachten Sie, dass der für den Abgleich verwendete Dateiname der Dateiname ist, der an include/require übergeben wurde, und nicht der absolute Pfad. Wenn das erste Zeichen des regulären Ausdrucks +t ist, bedeutet dies, dass alle mit dem Ausdruck übereinstimmenden Dateien zwischengespeichert werden. Wenn das erste Zeichen - ist, werden alle Übereinstimmungen nicht zwischengespeichert. - ist der Standardwert und kann weggelassen werden.
apc.mmap_file_mask string
Wenn die MMAP-Unterstützung für APC mit --enable-mmap kompiliert wurde (standardmäßig aktiviert), ist der Wert hier die Datei im mktemp-Stil, die an übergeben wird mmap-Modulmaske (empfohlener Wert ist „/tmp/apc.XXXXXX“). Diese Maske wird verwendet, um zu bestimmen, ob der speicherzugeordnete Bereich durch eine Datei oder durch einen gemeinsam genutzten Speicher gesichert werden soll. Für eine direkte dateigestützte Speicherzuordnung legen Sie fest, dass es wie folgt aussieht: „/tmp/apc.XXXXXX“ (genau 6 X). Um shm_open/mmap im POSIX-Stil zu verwenden, müssen Sie es auf „/apc.shm.XXXXXX“ setzen. Sie können es auch auf „/dev/zero“ setzen, um die „/dev/zero“-Schnittstelle des Kernels für anonym zugeordneten Speicher zu verwenden. Wenn diese Anweisung nicht definiert wird, wird die Verwendung einer anonymen Zuordnung erzwungen.
apc.slam_defense integer
Auf einem sehr ausgelasteten Server, unabhängig davon, ob ein Dienst gestartet oder eine Datei geändert wird, kann eine Race-Bedingung dadurch entstehen, dass mehrere Prozesse gleichzeitig versuchen, eine Datei zwischenzuspeichern Zeit. Diese Option legt den Prozentsatz fest, bei dem der Prozess den Caching-Schritt überspringt, wenn Dateien verarbeitet werden, die nicht zwischengespeichert wurden. Wenn Sie den Wert beispielsweise auf 75 festlegen, besteht eine Wahrscheinlichkeit von 75 %, dass bei einer nicht zwischengespeicherten Datei keine Zwischenspeicherung erfolgt, wodurch die Wahrscheinlichkeit einer Kollision verringert wird. Die Verwendung dieser Direktive ist veraltet und es wird empfohlen, sie auf 0 zu setzen, um diese Funktion zu deaktivieren. Es wird empfohlen, die Anweisung apc.write_lock zu verwenden.
Von apc.write_lock veraltet.
apc.file_update_protection integer
Wenn Sie Dateien auf einem laufenden Server ändern, sollten Sie atomare Vorgänge ausführen. Das heißt, schreiben Sie zuerst in eine temporäre Datei und benennen Sie die Datei dann in den endgültigen Namen um (mv). Texteditoren und Programme wie cp und tar funktionieren nicht auf diese Weise, was dazu führen kann, dass unvollständige Dateien gepuffert werden. Der Standardwert 2 bedeutet, dass beim Zugriff auf eine Datei keine Pufferung durchgeführt wird, wenn festgestellt wird, dass die Änderungszeit weniger als 2 Sekunden vom Zugriffszeitpunkt entfernt ist. Der unglückliche Besucher erhält möglicherweise beschädigte Inhalte, aber die negativen Auswirkungen werden durch das Caching nicht verstärkt. Wenn Sie sicherstellen können, dass alle Aktualisierungsvorgänge atomar sind, können Sie diese Funktion mit 0 deaktivieren. Wenn Ihr System aufgrund umfangreicher E/A-Vorgänge langsam aktualisiert wird, müssen Sie diesen Wert möglicherweise erhöhen.
apc.enable_cli integer
Gibt an, ob die APC-Funktionalität für die CLI-Version aktiviert werden soll. Aktivieren Sie diese Option nur zu Test- und Debugzwecken. Unter normalen Umständen ist es nicht ideal, den APC-Cache bei jeder Anfrage an die CLI zu erstellen, zu füllen und zu zerstören, aber für verschiedene Testszenarien ist es nützlich, die CLI-Version von PHP APC einfach erstellen zu können
apc. max_file_size integer
Der Standardwert ist 1 MB, Dateien, die diesen Wert überschreiten, werden nicht zwischengespeichert.
apc.stat integer
Gibt an, ob das Skript aktiviert werden soll Update-Prüfung. Seien Sie sehr vorsichtig, wenn Sie diesen Befehlswert ändern. Der Standardwert „Ein“ gibt an, dass APC bei jeder Anforderung prüft, ob das Skript aktualisiert wurde. Bei einer Aktualisierung wird der kompilierte Inhalt automatisch neu kompiliert und zwischengespeichert. Dies wirkt sich jedoch negativ auf die Leistung aus. Bei der Einstellung „Aus“ wird keine Prüfung durchgeführt, was zu erheblichen Leistungsverbesserungen führt. Damit der aktualisierte Inhalt jedoch wirksam wird, müssen Sie den Webserver neu starten (Anmerkung des Übersetzers: Wenn Sie cgi/fcgi verwenden, müssen Sie den cgi/fcgi-Prozess neu starten). Auf Produktionsservern, auf denen sich Skriptdateien selten ändern, können durch Deaktivieren dieser Option erhebliche Leistungsverbesserungen erzielt werden.
Dieser Befehl gilt auch für Include-/Require-Dateien. Es ist jedoch zu beachten, dass APC bei Verwendung eines relativen Pfads bei jedem Einbinden/Anfordern eine Überprüfung durchführen muss, um die Datei zu lokalisieren. Durch die Verwendung absoluter Pfade kann die Prüfung übersprungen werden. Wir empfehlen Ihnen daher, absolute Pfade für Einschluss-/Anforderungsvorgänge zu verwenden.
apc.write_lock boolean
Wenn auf einem ausgelasteten Server der Webserver zum ersten Mal gestartet wird oder viele Dateien gleichzeitig geändert werden, kompiliert APC möglicherweise dasselbe Datei mehrmals Datei, Schreibsperre garantiert, dass nur ein Prozess versucht, ein nicht zwischengespeichertes Skript zu kompilieren und zwischenzuspeichern. Andere Prozesse, die versuchen, das Skript zu verwenden, verwenden den Opcode-Cache nicht, sondern sperren ihn und warten darauf, dass der Cache generiert wird.
apc.report_autofilter boolean
Gibt an, ob alle Skripts aufgezeichnet werden sollen, die aus Gründen der frühen/späten Bindung automatisch nicht zwischengespeichert werden.
apc.include_once_override boolean
Optimieren Sie die Funktionen include_once() und require_once(), um die Ausführung zusätzlicher Systemaufrufe zu vermeiden.
apc.rfc1867 boolean
Funktion zum Überwachen des Datei-Upload-Fortschritts aktivieren
apc.rfc1867_prefix string
Puffer zum Hochladen von Dateien Elementeintrag Namenspräfix
apc.rfc1867_name string
Versteckter Formularelementname für hochgeladene Dateien, die von APC verarbeitet werden müssen
apc.rfc1867_freq string
Aktualisierungshäufigkeit der vom Benutzer hochgeladenen Datei-Cache-Elemente. Der Wert kann ein Prozentsatz der Gesamtdateigröße oder eine absolute Größe (ohne Berücksichtigung der Groß- und Kleinschreibung) sein, die auf „k“, „m“ oder „g“ endet. Kilobyte, Megabyte oder Gigabyte. 0 bedeutet die schnellstmögliche Aktualisierung, aber Dies kann zu langsameren Upload-Geschwindigkeiten führen.
apc.rfc1867_ttl bool
TTL für rfc1867-Einträge.
apc.localcache boolean
Nicht sperrenden lokalen Prozessschatten verwenden - Cache, der die Konkurrenz zwischen Sperren beim Schreiben in den Puffer verringert.
apc.localcache.size integer
Die Größe des lokalen Prozess-Shadow-Cache sollte auf einen ausreichend großen Wert eingestellt werden, etwa die Hälfte von apc.num_files_hint.
apc.coredump_unmap boolean
Aktiviert APC-Signalhandler wie das SIGSEGV-Signal, wenn das Signal in die Kerndatei geschrieben wird. Wenn diese Signale empfangen werden, versucht APC, die Zuordnung des gemeinsam genutzten Speichersegments aufzuheben und es aus der Kerndatei auszuschließen. Diese Einstellung kann die Systemstabilität verbessern, wenn ein schwerwiegendes Signal empfangen wird oder die große Shared-Memory-Segmentkonfiguration von APC verwendet wird.
apc.stat_ctime integer
Durch die Überprüfung von ctime (Erstellungszeit) können durch SVN oder rsync verursachte Probleme vermieden und sichergestellt werden, dass sich der Inode seit der letzten Statistik nicht geändert hat. APC prüft normalerweise nur mtime (Änderungszeit).
apc.canonicalize bool
Wenn aktiviert, wird der relative Pfad im No-State-Modus (keine Prüfung auf Dateiaktualisierungen) in einen absoluten Pfad geändert.
apc.preload_path string
apc.use_request_time bool
Verwende die Startzeit der SAPI-Anfrage für TTL.
apc.file_md5 bool
Zeichnen Sie den MD5-Wert der Datei auf
apc.lazy_functions integer
Aktivieren Sie verzögertes Laden der Funktion
apc.lazy_classes integer
Lazy Loading der Klasse aktivieren
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
3 Möglichkeiten, Zufallszahlen in PHP zu generieren
Vergleich häufig verwendeter Framework-Funktionen in PHP
Das obige ist der detaillierte Inhalt vonAnalyse von zwei Sätzen von Konfigurationsdateien und Parametern von PHP APC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!