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调优, 感谢原作者分享。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser php-fpm pour un réglage hautes performances PHP est un langage de script côté serveur très populaire, largement utilisé pour développer des applications Web et des sites Web dynamiques. Cependant, à mesure que le trafic augmente, les performances de votre application PHP peuvent en souffrir. Afin de résoudre ce problème, nous pouvons utiliser php-fpm (FastCGIProcessManager) pour un réglage hautes performances. Cet article expliquera comment utiliser php-fpm pour améliorer les performances des applications PHP et fournira des exemples de code. un,

1. Comment pouvez-vous gagner de l'argent en publiant des articles sur Toutiao aujourd'hui ? Comment gagner plus de revenus en publiant des articles sur Toutiao dès aujourd'hui ! 1. Activer les droits et intérêts fondamentaux : les articles originaux peuvent générer des bénéfices grâce à la publicité, et les vidéos doivent être originales en mode écran horizontal pour générer des bénéfices. 2. Activez les droits de 100 fans : si le nombre de fans atteint 100 fans ou plus, vous pouvez tirer des bénéfices des micro-titres, de la création originale de questions-réponses et des questions-réponses. 3. Insistez sur les œuvres originales : les œuvres originales comprennent des articles, des micro-titres, des questions, etc., et doivent contenir plus de 300 mots. Veuillez noter que si des œuvres illégalement plagiées sont publiées en tant qu'œuvres originales, des points de crédit seront déduits, et même les éventuels bénéfices seront déduits. 4. Verticalité : lorsque vous rédigez des articles dans des domaines professionnels, vous ne pouvez pas écrire à volonté des articles dans tous les domaines, vous n'obtiendrez pas de recommandations appropriées, vous ne pourrez pas atteindre le professionnalisme et le raffinement de votre travail et il sera difficile d'attirer des fans. et les lecteurs. 5. Activité : forte activité,

Avec le développement d'Internet, les applications PHP sont devenues de plus en plus courantes dans le domaine des applications Internet. Cependant, un accès simultané élevé par les applications PHP peut entraîner une utilisation élevée du processeur sur le serveur, affectant ainsi les performances de l'application. Afin d'optimiser les performances des applications PHP, la technologie de mise en cache Memcached est devenue un bon choix. Cet article explique comment utiliser la technologie de mise en cache Memcached pour optimiser l'utilisation du processeur des applications PHP. Introduction à la technologie de mise en cache Memcached Memcached est un

Dans le domaine de l’intelligence artificielle, les grands modèles linguistiques (LLM) deviennent de plus en plus un nouveau point chaud en matière de recherche et d’application. Cependant, comment régler ces géants de manière efficace et précise a toujours été un défi important auquel sont confrontés l'industrie et le monde universitaire. Récemment, le blog officiel de PyTorch a publié un article sur TorchTune, qui a attiré une large attention. En tant qu'outil axé sur le réglage et la conception des LLM, TorchTune est très apprécié pour sa nature scientifique et son caractère pratique. Cet article présentera en détail les fonctions, les caractéristiques et l'application de TorchTune dans le réglage des LLM, dans l'espoir de fournir aux lecteurs une compréhension complète et approfondie. 1. L'origine et l'importance de TorchTune, le développement de la technologie d'apprentissage profond et le modèle d'apprentissage profond (LLM)

Depuis l'avènement de GPT-4, les gens ont été étonnés par ses puissantes capacités d'émergence, notamment d'excellentes capacités de compréhension du langage, de génération, de raisonnement logique, etc. Ces capacités font de GPT-4 l’un des modèles les plus avancés dans le domaine de l’apprentissage automatique. Cependant, OpenAI n’a jusqu’à présent divulgué aucun détail technique de GPT-4. Le mois dernier, George Hotz a mentionné GPT-4 dans une interview avec un podcast sur la technologie de l'IA appelé LatentSpace, affirmant que GPT-4 est en fait un modèle hybride. Plus précisément, George Hotez a déclaré que GPT-4 utilise un système intégré composé de 8 modèles experts, chacun comportant 220 milliards de paramètres (un peu plus que les 175 milliards de paramètres de GPT-3).

Explication détaillée des pratiques de réglage pour améliorer la vitesse d'accès aux sites Web en langage Go Résumé : À l'ère du développement rapide d'Internet, la vitesse d'accès aux sites Web est devenue l'un des facteurs importants permettant aux utilisateurs de choisir un site Web. Cet article présentera en détail comment utiliser le langage Go pour optimiser la vitesse d'accès aux sites Web, y compris une expérience pratique de l'optimisation des requêtes réseau, de l'utilisation du cache et du traitement simultané. L'article fournira également des exemples de code pour aider les lecteurs à mieux comprendre et appliquer ces techniques d'optimisation. 1. Optimiser les requêtes réseau Dans le développement de sites Web, les requêtes réseau sont un lien inévitable. Et l'optimisation des requêtes réseau peut

Lorsqu'il s'agit d'ordinateurs portables de jeu d'ASUS, la première chose qui vient à l'esprit est Republic of Gamers. Mais en plus des ordinateurs portables de jeu haut de gamme de Republic of Gamers, ASUS propose également des ordinateurs portables de jeu grand public dans la série Flying Fortress. jetez-y un œil ensemble. Que diriez-vous d'ASUS Flying Fortress 7, qui est le plus populaire parmi les joueurs. ASUS Flying Fortress 7 Les ordinateurs portables de la série Flying Fortress d'ASUS sont positionnés pour jouer facilement à des jeux à grande échelle. Ils mettent l'accent sur la robustesse et la durabilité. Ils ont toujours été un choix populaire parmi les joueurs et les étudiants. Configuration de base Tout d'abord, jetons un coup d'œil à certaines des configurations de base de ce Flying Fortress 7. Dans le tableau de configuration, la plus remarquable est AMD Ryzen73750H+NVIDIA GeForceGTX1660Ti.

L’optimisation des performances du système d’exploitation est l’une des clés pour garantir un fonctionnement efficace du système. Dans les systèmes Linux, nous pouvons effectuer des réglages et des tests de performances via diverses méthodes pour garantir les meilleures performances du système. Cet article explique comment effectuer le réglage du système et les tests de performances des systèmes Linux, et fournit des exemples de code spécifiques correspondants. 1. Réglage du système Le réglage du système consiste à optimiser les performances du système en ajustant divers paramètres du système. Voici quelques méthodes courantes de réglage du système : 1. Modifier les paramètres du noyau Les paramètres du noyau du système Linux contrôlent le fonctionnement du système.
