Memcached调优
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》 项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。? 客户端选择 最开始我使用的是 Memcached Java Client,
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》
项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。?
客户端选择
- 最开始我使用的是 Memcached Java Client,但是最后放弃了,放弃原因包括:
- 有时会出现的“No Thread For Socket”异常,我记录在 这里;
- 它不支持NOREPLY模式(在这种模式下,更新缓存的set操作可以不需要Memcached服务端响应,这使得set操作非常非常快)。
- 现在我使用的是 XMemcached。
统计信息
可以通过nc命令向Memcached服务端发送消息来获取统计信息,例如:
echo "stats settings" | nc localhost 20200 | sort
但是,我更需要客户端的统计信息,尤其是缓存命中率,set操作成功率等等。所以在客户端添加了一个简单的统计模块。每次处理用户请求的过程中,通常有两次向Cache服务端的提交get请求,很多情况下还有两次set请求,合计消耗17ms,在把set请求改成NOREPLY模式以后,这个数减少到10ms以内。因此,对于实时性要求比较高的情形,请打开这个模式,或者干脆使用异步的set。
服务端参数
- 可以使用-U来使用UDP传输,但是收效不大。
- -k参数可以阻止换页操作发生,在内存足够的情况下对提高性能有益。
- -C参数可以禁用CAS。
- -t指定使用的线程数,如果你是多CPU、多核CPU,可以把这个值配成和总CPU核数一致。
- -f参数,增长因子,存储大对象把它配大一点可以提高效率,配小一点可以减少浪费。
客户端参数
- 在使用Memcached Java Client的时候:
- 由于它会使用direct memory,一定不能加上DisableExplicitGC这个参数,否则就等着OOM吧;
- 配置大一些的heap size可以提高L1 cache的命中率;
- 把alive check置为false。
- 对于实时性和响应性要求比较高的项目,需要做GC调优,主要是GC时延,比如配置MaxGCPauseMillis参数到一个可以接受的值,但是不是越小越好,减低时延的同时会降低吞吐量。
- 有同事提了个建议,在客户端存放一个cache key的集合,可以在去cache server查询之前,先在本地查看一下是否有缓存记录(比如用 Bloom filter来实现),如果有,再去cache server查询。这个集合可以和实际的cache key有出入,也许一个小时同步一次就可以。但是实际上实现起来比较困难,本身key set的总量非常大,而且Memcached最初提供获取key iterator的接口返回的是一个限定大小key set的iterator,缺乏实际意义(这个接口在后来Memcached的版本中已经被废弃)。至于stats方法,它会把所有cache对象dump出来,只能小规模调试的时候使用。
- 关于Nagle算法:Nagle的好处是可以批量处理请求,提高TCP包有效部分的大小,从而提高网络利用率,但是如果对每个请求处理时延要求很高的话请关闭。
- 一定要指定socket timeout或者get/set timeout。
最后,有人做了一个几个Memcached客户端的综合的性能试验: 链接。
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》
分享到:
你可能也喜欢:
-
Issue record: “No thread for socket” about Memcached
-
设计缓存框架需要关注的要素
-
Ehcache详细解读
-
OSCache框架源码解析
-
Javascript Memoizer
原文地址:Memcached调优, 感谢原作者分享。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie php-fpm zur Hochleistungsoptimierung PHP ist eine sehr beliebte serverseitige Skriptsprache, die häufig zur Entwicklung von Webanwendungen und dynamischen Websites verwendet wird. Wenn jedoch der Datenverkehr zunimmt, kann die Leistung Ihrer PHP-Anwendung leiden. Um dieses Problem zu lösen, können wir php-fpm (FastCGIProcessManager) für eine Hochleistungsoptimierung verwenden. In diesem Artikel wird erläutert, wie Sie mit PHP-FPM die Leistung von PHP-Anwendungen verbessern und Codebeispiele bereitstellen. eins,

1. Wie können Sie heute Geld verdienen, indem Sie Artikel auf Toutiao veröffentlichen? Wie Sie noch heute mehr Einkommen erzielen, indem Sie Artikel auf Toutiao veröffentlichen! 1. Grundlegende Rechte und Interessen aktivieren: Originalartikel können durch Werbung Gewinne erzielen, und Videos müssen im horizontalen Bildschirmmodus original sein, um Gewinne zu erzielen. 2. Aktivieren Sie die Rechte von 100 Fans: Wenn die Anzahl der Fans 100 Fans oder mehr erreicht, können Sie Gewinne aus Mikroschlagzeilen, origineller Q&A-Erstellung und Q&A erzielen. 3. Bestehen Sie auf Originalwerken: Originalwerke umfassen Artikel, Mikroschlagzeilen, Fragen usw. und müssen mehr als 300 Wörter umfassen. Bitte beachten Sie, dass bei der Veröffentlichung rechtswidrig plagiierter Werke als Originalwerke Kreditpunkte abgezogen werden und ggf. auch Gewinne abgezogen werden. 4. Vertikalität: Wenn Sie Artikel in Berufsfeldern schreiben, können Sie nicht nach Belieben Artikel über verschiedene Fachgebiete hinweg schreiben. Sie werden keine entsprechenden Empfehlungen erhalten, Sie werden nicht in der Lage sein, die Professionalität und Verfeinerung Ihrer Arbeit zu erreichen, und es wird schwierig sein, Fans zu gewinnen und Leser. 5. Aktivität: hohe Aktivität,

Mit der Entwicklung des Internets haben PHP-Anwendungen immer mehr Einzug in den Bereich der Internetanwendungen gehalten. Allerdings kann ein hoher gleichzeitiger Zugriff durch PHP-Anwendungen zu einer hohen CPU-Auslastung auf dem Server führen und somit die Leistung der Anwendung beeinträchtigen. Um die Leistung von PHP-Anwendungen zu optimieren, ist die Caching-Technologie von Memcached eine gute Wahl. In diesem Artikel wird erläutert, wie Sie die Memcached-Caching-Technologie verwenden, um die CPU-Auslastung von PHP-Anwendungen zu optimieren. Einführung in die Memcached-Caching-Technologie Memcached ist ein

Im Bereich der Künstlichen Intelligenz entwickeln sich Large Language Models (LLMs) zunehmend zu einem neuen Hot Spot in Forschung und Anwendung. Die effiziente und genaue Abstimmung dieser Giganten war jedoch schon immer eine große Herausforderung für Industrie und Wissenschaft. Kürzlich veröffentlichte der offizielle Blog von PyTorch einen Artikel über TorchTune, der große Aufmerksamkeit erregte. Als Werkzeug, das sich auf die Optimierung und das Design von LLMs konzentriert, wird TorchTune für seinen wissenschaftlichen Charakter und seine Praktikabilität hoch gelobt. In diesem Artikel werden die Funktionen, Features und die Anwendung von TorchTune beim LLM-Tuning ausführlich vorgestellt, in der Hoffnung, den Lesern ein umfassendes und tiefgehendes Verständnis zu vermitteln. 1. Der Geburtshintergrund und die Bedeutung von TorchTune, die Entwicklung der Deep-Learning-Technologie und des Deep-Learning-Modells (LLM)

Seit der Einführung von GPT-4 sind die Menschen von seinen leistungsstarken Emergenzfähigkeiten begeistert, darunter hervorragende Sprachverständnisfähigkeiten, Generierungsfähigkeiten, logische Denkfähigkeiten usw. Diese Fähigkeiten machen GPT-4 zu einem der modernsten Modelle im Bereich des maschinellen Lernens. Allerdings hat OpenAI bisher keine technischen Details zu GPT-4 bekannt gegeben. Letzten Monat erwähnte George Hotz GPT-4 in einem Interview mit einem KI-Technologie-Podcast namens LatentSpace und sagte, dass GPT-4 eigentlich ein Hybridmodell sei. Konkret sagte George Hotez, dass GPT-4 ein integriertes System verwendet, das aus 8 Expertenmodellen besteht, von denen jedes 220 Milliarden Parameter hat (etwas mehr als die 175 Milliarden Parameter von GPT-3).

Ausführliche Erläuterung der Optimierungspraktiken zur Verbesserung der Zugriffsgeschwindigkeit auf Go-Sprachwebsites Zusammenfassung: Im sich schnell entwickelnden Internetzeitalter ist die Website-Zugriffsgeschwindigkeit zu einem der wichtigsten Faktoren für Benutzer bei der Auswahl einer Website geworden. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zur Optimierung der Website-Zugriffsgeschwindigkeit verwendet wird, einschließlich praktischer Erfahrungen bei der Optimierung von Netzwerkanforderungen, der Verwendung von Cache und der gleichzeitigen Verarbeitung. Der Artikel enthält auch Codebeispiele, die den Lesern helfen, diese Optimierungstechniken besser zu verstehen und anzuwenden. 1. Netzwerkanfragen optimieren Bei der Website-Entwicklung sind Netzwerkanfragen ein unvermeidlicher Link. Und die Optimierung von Netzwerkanfragen kann

Wenn es um Gaming-Laptops von ASUS geht, fällt mir als Erstes Republic of Gamers ein. Aber zusätzlich zu den High-End-Gaming-Laptops der Republic of Gamers bietet ASUS auch Mainstream-Gaming-Laptops der Flying Fortress-Serie an Schauen Sie sie sich gemeinsam an. Wie wäre es mit ASUS Flying Fortress 7, das bei Gamern am beliebtesten ist? ASUS Flying Fortress 7 Die Notebooks der Flying Fortress-Serie sind für das problemlose Spielen großer Spiele geeignet. Sie legen Wert auf Robustheit und Langlebigkeit. Sie waren schon immer eine beliebte Wahl bei Gamern und Studenten. Grundkonfiguration Werfen wir zunächst einen Blick auf einige der Kernkonfigurationen dieser Flying Fortress 7. Aus der Konfigurationstabelle ist AMD Ryzen73750H+NVIDIA GeForceGTX1660Ti am bemerkenswertesten

Die Optimierung der Betriebssystemleistung ist einer der Schlüssel zur Gewährleistung eines effizienten Systembetriebs. In Linux-Systemen können wir mit verschiedenen Methoden Leistungsoptimierungen und -tests durchführen, um die beste Leistung des Systems sicherzustellen. In diesem Artikel wird erläutert, wie Systemoptimierungen und Leistungstests von Linux-Systemen durchgeführt werden, und es werden entsprechende spezifische Codebeispiele bereitgestellt. 1. Systemoptimierung Bei der Systemoptimierung geht es darum, die Leistung des Systems durch Anpassung verschiedener Parameter des Systems zu optimieren. Im Folgenden sind einige gängige Systemoptimierungsmethoden aufgeführt: 1. Ändern Sie die Kernelparameter. Die Kernelparameter des Linux-Systems steuern den Systembetrieb.
