performance - tutorial - opcache vs apcu




Was ist schneller/besser für Caching, Dateisystem oder Memcached? (4)

Sie sind affig über die Details. Und ich glaube die Antwort, die Sie suchen, hängt von der Situation ab. Meines Wissens sind nur sehr wenige Dinge besser als die anderen.

Natürlich wäre es nicht schneller, Dinge des Dateisystems zu lesen (vorausgesetzt, es ist eine Festplatte). Sogar ein SDD wird merklich langsamer sein als In-Memory-Reads. Und der Grund dafür ist, dass HDD / FileSystem für Kapazität und nicht Geschwindigkeit gebaut ist, während DDR-Speicher aus diesem Grund besonders schnell ist.

Gutes Caching bedeutet, Teile, auf die häufig zugegriffen wird, im Speicher und die nicht so häufig verwendeten Dinge auf dem Datenträger (persistenter Speicher) zu behalten. Auf diese Weise würde der normale Fall durch Ihre Caching-Implementierung erheblich verbessert werden. Das ist dein Ziel. Stellen Sie sicher, dass Sie Ihre ideale Caching-Richtlinie gut verstehen. Dies erfordert umfangreiche Benchmarks und Tests.

Ich glaube nicht, dass es mir noch klar ist, ist es schneller, Dinge aus einer Datei oder aus Memcached zu lesen? Warum?


Es gibt einige verschiedene Aspekte, die den einen oder anderen bevorzugen könnten:

  • Müssen Sie diese Daten zwischen mehreren Servern teilen? Das Dateisystem ist lokal, auf memcached wird über ein Netzwerk zugegriffen.
  • Wie groß sind die Artikel, die Sie cachen? Das Dateisystem ist wahrscheinlich besser für große Objekte.
  • Wie viele Memcached-Anfragen gibt es pro Seite? TCP-Verbindungen und -Abbrüche können mehr Zeit in Anspruch nehmen als ein einfaches Dateisystemstatut () auf dem lokalen Rechner.

Ich schlage vor, dass Sie sich Ihren Anwendungsfall ansehen und einige Ansätze für beide Ansätze erstellen. Wenn Sie mit dem Dateisystem fortfahren können, dann würde ich. Hinzufügen von Memcached-Adds in einer anderen Ebene von Komplexität und potenziellen Fehlerpunkten (memcached Client / Server).

Für das, was es wert ist, könnten die anderen Kommentare über die Leistung von Datenträger und Speicher akademisch sein, als ob auf die Dateisystemdaten regelmäßig zugegriffen wird, dann wird es wahrscheinlich sowieso im Betriebssystem oder im Plattencachespeicher sitzen.


Es hängt davon ab, ob der Cache lokal gespeichert wird. Memcache kann Daten über ein Netzwerk speichern, das nicht unbedingt schneller ist als eine lokale Festplatte.


"Schneller" kann nicht ohne Kontext verwendet werden. Beispielsweise kann der Zugriff auf Daten in memcached auf dem Remoteserver aufgrund der Netzwerklatenz "langsamer" sein. Auf der anderen Seite kann das Lesen von Daten aus dem Remote-Server-Speicher über ein 10-Gb-Netzwerk "schneller" sein als das Lesen derselben Daten von der lokalen Festplatte.

Der Hauptunterschied zwischen dem Caching im Dateisystem und der Verwendung von Memcached besteht darin, dass Memcached eine vollständige Caching-Lösung ist. So gibt es LRU-Listen, Ablaufkonzept (Datenfrische), einige Operationen auf hoher Ebene, wie cas / inc / dec / append / prepend / replace.

Memcached ist einfach zu implementieren und zu überwachen (wie können wir die "Cache" -Auslastung des Dateisystems von, sagen wir, Kernel unterscheiden? Können wir die Gesamtmenge der zwischengespeicherten Daten berechnen? Datenverteilung? Kapazitätsplanung? Und so weiter).

Es gibt auch einige hybride Systeme wie cachelot . Es ist im Prinzip Memcached, das direkt in die Anwendung eingebettet werden kann, so dass der Cache ohne Systemaufrufe oder Netzwerk-IO zugänglich wäre.





memcached