it-swarm.com.de

Beste APC-Einstellungen zur Reduzierung der Seitenausführungszeit

Ich habe Drupal 7, apc mit php-fpm und Apache hinter Lack und 512 MB RAM.

Ich messe die Ausführungszeit der Seite mit dem Entwicklungsmodul.

Die Datenbankabfragezeit ist niedrig (62 ms) im Vergleich zur Seitenausführungszeit von 854 ms. Das heißt, es gibt ein Problem mit den Einstellungen PHP und APC).

Meine aktuellen Einstellungen sind nur

apc.shm_size = 64
apc.stat=1 

Wie kann ich mich verbessern?

Was sind die besten Einstellungen für Drupal bei der obigen Konfiguration?

Vielen Dank

15
john

Wir laufen in einer SVN-Push-Umgebung, sodass wir den Apc-Dateicache nur mit einem Skript löschen.

APC-Einstellungen:

apc.ttl=604800
apc.user_ttl=3600
apc.shm_size=192M
apc.include_once_override=1
auto_globals_jit=Off
apc.num_files_hint = 2048

apc.stat_ctime = 0
apc.file_update_protection = 2
apc.stat = 0

PHP-Skript:

<?php
$return = apc_clear_cache('opcode');
echo var_export($return);

604800 = 1 Woche.

Danach sollte xdebug/xhprof zum Laufen bringen und ein Cache-Grind der Site sollte Sie wissen lassen, was die Site verlangsamt. Kurz gesagt, die Analyse der Cache-Grind-Ausgabe ist der beste Weg, um Drupal zu beschleunigen. Unten liste ich auf, welche Patches und Module wir verwenden, um es zu beschleunigen. in Ihrem Fall wird es höchstwahrscheinlich anders sein.

Drupal 6 Spezifische Antwort unten

Sobald Sie diesen Punkt überschritten haben und feststellen, dass der APC Ihnen nicht das gibt, wonach Sie suchen, wechseln Sie zu pressflow und geben Sie diesen Patches einen Wirbel:

Probieren Sie auch einige dieser Module aus, da sie die Geschwindigkeit unserer Websites erheblich verbessert haben:

12
mikeytown2

Dies ist eine dieser "wie lange dauert ein Stück String-Fragen".

Was für eine Site mit hohem Volumen gut ist, ist möglicherweise nicht dasselbe für eine Site mit niedrigem Volumen und vielen Modulen und möglicherweise nicht dasselbe für eine Site mit mittlerem Volumen, auf der nur wenige Module aktiviert sind. Andere Sites, die auf dem Server ausgeführt werden, verbrauchen möglicherweise auch den von APC verfügbaren Speicher.

Mein Ausgangspunkt ist

apc.enabled=1
apc.shm_segments=1
apc.shm_size=64
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=1

Ich passe dann die Einstellungen für den Server an, aber auch hier gibt es keine Einheitsgröße für alle Einstellungen.

Suchen Sie apc.php (wahrscheinlich unter /usr/share/pear/apc.php) und installieren Sie es im DOCROOT für Ihre Drupal install. Sperren Sie es über die Apache-Konfiguration auf Ihre IP-Adresse Bearbeiten Sie den Benutzernamen/das Kennwort darin und navigieren Sie zu diesem. Anschließend werden Ihre APC-Statistiken angezeigt.

Konfigurieren Sie den Parameter shm_size neu, um Cache-Fehler zu minimieren. Idealerweise möchten Sie ihm gerade genug Speicherplatz geben, damit für eine Datei niemals ein Cache-Fehler auftritt, sowie zusätzlichen Speicher für den APC-Benutzer-Cache.

Optimieren Sie TTL, um eine Cache-Abwanderung zu verhindern. Wenn Sie keine Dateien bearbeiten, können Sie diese Zahl erhöhen.

enable_cli ist praktisch, wenn Sie häufig drush verwenden, sodass drush die zwischengespeicherten Dateien von APC verwendet.

rfc1867 ist praktisch für das Hochladen von Dateien.

Ich habe auch die PHP-Fpm im Titel bemerkt. Dies erschwert die Sache und geht wirklich über den Rahmen von Drupal Answers. Sie erhalten möglicherweise bessere Antworten unter Server Fault , da viele Systemkonfigurationseinstellungen dies nicht tun beziehen sich auf Drupal direkt.

3
mpdonadio

APC verbessert lediglich das Laden und Parsen von PHP -Dateien. Ein großer Teil ist auch die Ausführungszeit selbst. Es gibt viele Faktoren, die die Ausführungszeit verlängern können, einschließlich interner Fehler (insbesondere Cache-bezogene Fehler) Overhead (zB drupal_alter (), module_implements ()) und so weiter.

Wie Sie gefragt haben und bereits von mikeytown2 vorgeschlagen wurden, würde ich xhprof verwenden (ich bevorzuge es heutzutage gegenüber xdebug, da es direkten und schnellen Zugriff auf das Ergebnis bietet und keine zusätzlichen Tools erfordert), um herauszufinden, wo Ihre Engpässe liegen.

Ich habe kürzlich zwei Blog-Beiträge über mit xhprof in Drupal und typische Engpässe geschrieben, die Sie vielleicht interessant finden.

2
Berdir