Die Veröffentlichung von Memcached 1.6.0 mit UnterstĂŒtzung fĂŒr externen Speicher

Hat stattgefunden bedeutendes Release des Systems zur Daten-Caching im Arbeitsspeicher Memcached 1.6.0, das mit Daten im SchlĂŒssel/Wert-Format arbeitet und sich durch Benutzerfreundlichkeit auszeichnet. Memcached wird normalerweise als leichtgewichtige Lösung verwendet, um die Leistung von stark frequentierten Websites durch das Caching des Zugriffs auf Datenbanken und Zwischenspeicher zu beschleunigen. Code wird geliefert unter der BSD-Lizenz stehen.

In der neuen Version wurde die Implementierung des Speichers „extstore„ stabilisiert, der jetzt standardmĂ€ĂŸig kompiliert wird (um dies im Configure-Skript zu deaktivieren, gibt es die Option „—disable-extstore“), jedoch eine explizite Aktivierung beim Start erfordert (Ă€ltere Installationen funktionieren nach dem Update weiterhin unverĂ€ndert). Obwohl der Speicher „extstore“ insgesamt als stabil anerkannt ist, wird empfohlen, bei der Implementierung in sehr großen Systemen Vorsicht walten zu lassen.

Extstore ermöglicht die Nutzung von SSD/Flash-Speichern zur Erweiterung der Cache-GrĂ¶ĂŸe. Wie bei der Verwendung von RAM ist der Speicher auf Flash nicht dauerhaft und wird beim Neustart zurĂŒckgesetzt. Der neue Modus wird verwendet, um eine effiziente Zwischenspeicherung großer Datenmengen zu gewĂ€hrleisten. Bei Verwendung von „extstore“ werden SchlĂŒssel und Metadaten, wie zuvor, nur im RAM gespeichert, aber die mit den SchlĂŒsseln verknĂŒpften großen Daten, die den festgelegten Schwellenwert ĂŒberschreiten, werden im externen Speicher gespeichert, wĂ€hrend im RAM nur ein Zeiger bleibt.

Wenn mit dem SchlĂŒssel kleine Daten verbunden sind, funktioniert Memcached wie gewohnt, hĂ€lt die Daten im Speicher und greift nicht auf den externen Speicher zu. Wenn viel freier Speicher vorhanden ist, können die am hĂ€ufigsten nachgeforderten Daten zusĂ€tzlich vollstĂ€ndig im Cache im RAM liegen (zum Beispiel kann angegeben werden, dass nur Objekte ĂŒber 1024 Byte auf Flash zurĂŒckgesetzt werden, auf die in 3600 Sekunden nicht zugegriffen wurde).

Die Implementierung ist optimiert, um maximale Leistung und minimale CPU-Last zu gewĂ€hrleisten, auf Kosten der Speichereffizienz (hohes Fragmentierungsniveau). Um die Lebensdauer von Flash-Speichermedien zu verlĂ€ngern, werden die Daten gepuffert und sequenziell im Speicher zurĂŒckgesetzt. Zum Erhalt des Cache-Zustands zwischen Neustarts kann die in der Version 1.5.18 eingefĂŒhrte Möglichkeit verwendet werden, einen Dump mit dem Cache in eine Datei zu speichern. Beim nĂ€chsten Start kann der Cache aus dieser Datei wiederhergestellt werden, um Spitzenlasten bei den Content-Handlern aufgrund eines leeren Caches zu vermeiden (der Cache wird sofort „warm“).

Die zweite wichtige Änderung in Memcached 1.6 war die Überarbeitung des Codes fĂŒr die Netzwerkinteraktion, der fĂŒr die automatische Verarbeitung von Batch-Anfragen innerhalb eines Systemaufrufs angepasst wurde. Zuvor sendete Memcached bei der Übertragung mehrerer „GET“-Befehle in einem TCP-Paket die Ergebnisse durch AusfĂŒhrung separater Systemaufrufe. In Memcached 1.6 werden die Antworten aggregiert und mit einem einzigen Systemaufruf zurĂŒckgegeben. Das Ergebnis ist, dass nun durchschnittlich 1,5 SchlĂŒssel pro Systemaufruf erforderlich sind, was in Tests eine Verringerung der CPU-Belastung um bis zu 25 % und eine Reduzierung der Latenz um einige Prozente zeigt.

Die Überarbeitung der Netzwerksubsysteme ermöglichte auch eine dynamische Zuweisung von Puffern nach Bedarf, anstelle einer statischen Zuordnung von Puffern. Diese Optimierung reduzierte den Speicherverbrauch im Leerlauf auf neue Befehle ĂŒber eine vom Client etablierte Verbindung von 4,5 KB auf 400-500 Byte und beseitigte viele Aufrufe von malloc, realloc und free, die zu unnötiger Speicherfragmentierung in Systemen mit vielen Verbindungen fĂŒhrten. Jeder Arbeits-Thread verarbeitet jetzt seinen eigenen Pufferpool zum Lesen und Schreiben fĂŒr aktive Clientverbindungen. Zur Anpassung der GrĂ¶ĂŸe dieser Puffer
Es sind die Optionen „-o resp_obj_mem_limit=N“ und „-o read_buf_mem_limt=N“ vorgesehen.

In der Version 1.6 wurde ebenfalls bekannt gegeben, dass der binĂ€re Protokoll der Serverinteraktion als obsolet gilt. Die Wartung des binĂ€ren Protokolls und die Behebung von Fehlern werden fortgesetzt, jedoch werden keine neuen Funktionen und Updates von bestehenden Funktionen ĂŒbernommen. Das Textprotokoll wird ohne Änderungen weiterentwickelt. An die Stelle des binĂ€ren Protokolls tritt ein neues Protokoll meta (eine textbasierte Version des Protokolls mit kompakten Meta-Befehlen), das eine optimale Kombination aus Leistung und ZuverlĂ€ssigkeit zeigt. Das neue Protokoll umfasst alle Operationen, die zuvor ĂŒber die Text- und binĂ€ren Protokolle verfĂŒgbar waren. (textbasierte Version des Protokolls mit kompakten Meta-Befehlen), die eine optimale Kombination aus Leistung und ZuverlĂ€ssigkeit demonstriert. Das neue Protokoll umfasst alle Operationen, die zuvor ĂŒber die text- und binĂ€ren Protokolle verfĂŒgbar waren.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster