Drupal & Cache Methoden
am 25.10.2014 - 17:54 Uhr in
Hallo zusammen,
ich versuche mich gerade ein wenig in die Cache Varianten von Drupal einzulesen aber komme an einer Stelle nicht weiter. Daher bräuchte ich von euch erst ein paar klärende Worte um mich weiter zu Informieren. Dazu kommt das Problem dass viele Quellen von Informationen einfach zu alt sind. Meist zwischen 3-5 Jahre, ich denke dass hilft dann auch nicht zu 100% weiter.
Ich muss meinem Provider bei der Einrichtung sagen was ich haben möchte, da ich keinen Rootserver habe. Memcache, Opcache, APC, Boost, authcache kein Problem, Varnish fällt eh raus.
Also vielleicht erst eine Frage generell zum Cache damit ich das nicht durcheinander bringe. Einfach gesagt: APC ist ein Cache der PHP Code in den RAM legt um so die CPU zu entlasten. Also er gehört in die Kategorie APC, XCache, Zend Opcache etc.
Jetzt bekomme ich unterschiedliche aussagen vom Provider. Einer sagt "APC ist hinfällig, wir arbeiten mit OpCache" der Andere sagt "Als Alternative für OpCache empfehlen wir APC"
Dabei habe ich doch richtig verstanden, ab PHP 5.5 ist die Alternative zu APC, der Zend Optimizer Plus, der im Core von 5.5 enthalten ist. APC gibts dann nicht mehr für PHP 5.5?
Integration des Opcode Caches Zend Optimizer Plus (a.k.a. opcache) in den Core von PHP 5.5 stellt viele Entwickler vor die Frage, was jetzt aus dem Alternative PHP Cache (APC) wird. Schließlich überschneiden sich die Caches funktionell, doch fehlt dem opcache ein User Cache...
..Der bisherige Standard-Puffer Alternative PHP Cache (APC) wurde damals mit der Entscheidung, opcache zum nativen Feature zu machen, de facto zum Tode verurteilt. ..
Also wäre die Aussage vom Provider, dass er bei php5.5 den APC empfiehlt kritisch zu betrachten, da er ja offensichtlich keinen Plan hat?
Memcache einfach gesagt, ist für die Datenbank Optimierung zuständig, cache für DB queries.
Die Kernfrage ist nun, was soll ich einrichten lassen und noch wichtiger ist, was muss durch den Serveradmin konfiguriert werden? Reicht es z.B. Memcache, APC (oder Alternative) installieren zu lassen und die Konfiguration findet primär im Drupal statt? Oder müssen Änderungen als "root" vorgenommen werden? Die meisten Provider haben nämlich keine Ahnung von Drupal, sie kennen es nur vom Hören :) Das würde heissen, dass sie dann auch die Programme einfach über den Paketmanager installieren.
Für jeden Hinweis und Hilfe wäre ich dankbar.
Viele Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
APC und MemCache
am 26.10.2014 - 17:11 Uhr
Hallo Dieter,
grobe Info zu APC / OpCache:
APC (wie alle Opcode Caches) dient dazu, PHP Skripte bei deren erster Verwendung zu "kompilieren" und dann diese Version im Cache (also RAM) abzulegen. Wird das Skript ein weiteres Mal benötigt, entfällt dadurch etwas Arbeit für den Prozessor, und es ist kein Plattenzugriff nötig. Das bringt das Tempo.
APC war der bevorzugte Opcode Cache bis PHP 5.3. Auf der Projektseite von APC (http://pecl.php.net/package/APC) kannst Du sehen, dass seit September 2012 dort nichts mehr passiert ist. Die Unterstützung für PHP 5.4 ist vorhanden (ab APC 3.1.10), aber wohl fehlerhaft. Für PHP 5.5 ist APC definitiv nicht geeignet.
Die Alternative ist der Zend Optimizer, dieser ist seit PHP 5.5 als PHP OpCache direkt in PHP eingebaut. Für PHP 5.4 kann er als Erweiterung installiert werden.
Beiden gemeinsam ist: es handelt sich um PHP Erweiterungen, d.h. die Konfiguration (Cachegröße, Timing u.a.) findet über die INI-Dateien von PHP statt. Drupal interessiert sich dafür nicht. Ausnahme wäre die Verwendung des User Caches in APC, als Alternative zu MemCache, das müsste man in Drupal konfigurieren. Ist aber nur sinnvoll, wenn man in PHP 5.3 eine Alternative zu z.B. MemCache benötigt, und hat dann nichts mit der eigentlichen Funktion von APC (PHP Optimierung) zu tun.
Zum Thema MemCache:
MemCache kann dein Provider installieren, es wäre eine Kombination aus Systemservice und passender PHP-Erweiterung. Auch hier erfolgt die Grundkonfiguration über entsprechende INI-Dateien. Damit hat man erst mal einen Speicherbereich im RAM zur beliebigen Verwendung. Die typische Anwendung wäre jetzt, häufig verwendete Datenbanktabellen wie z.B. Drupals Cache-Tabellen in diesen Speicherbereich zu verlagern, und damit Plattenzugriffe zu sparen und die Anwendung zu beschleunigen. Dieser Teil muss in Drupal konfiguriert werden, normalerweise über die settings.php.
Gruß,
Boris