Maison base de données tutoriel mysql InnoDB memcached插件vs原生memcached对比性能测试

InnoDB memcached插件vs原生memcached对比性能测试

Jun 07, 2016 pm 04:38 PM
innodb memcached 原生 对比 性能 插件

MySQL 5.6开始支持InnoDB memcached插件,也就是可以通过SQL高效读写memcached里的缓存内容,也支持用原生的memcache协议读写,并且可以实现缓存数据持久化,以及crash recovery、mysql replication、触发器、存储过程等众多特性,详细介绍可以查看:Benefit

MySQL 5.6开始支持InnoDB memcached插件,也就是可以通过SQL高效读写memcached里的缓存内容,也支持用原生的memcache协议读写,并且可以实现缓存数据持久化,以及crash recovery、mysql replication、触发器、存储过程等众多特性,详细介绍可以查看:Benefits of the InnoDB / memcached Combination。看起来非常诱人,那就测试下看看吧,是驴子是马拉出来溜溜便知。

  • 环境准备
测试机 DELL PE R710
CPU E5620? @ 2.40GHz(4 core, 8 threads, L3 Cache 12 MB) * 2
内存 48G(8G * 6)
RAID卡 PERC H700 Integrated, 512MB, BBU, 12.10.1-0001
系统 Red Hat Enterprise Linux Server release 6.4 (Santiago)
内核 2.6.32-358.el6.x86_64 #1 SMP
raid级别 raid 5(10K RPM SAS 300G * 6)
文件系统 xfs
硬盘 10K RPM SAS 300G * 6, 1 hotspare
  • 测试方案
方案一 server端运行InnoDB MC,本地/远程调用memslap执行benchmark
方案二 server端运行Native MC,本地/远程调用memslap执行benchmark
  • 测试脚本
cat memslap_run.sh
#!/bin/sh
. ~/.bash_profile > /dev/null 2>&1
cd /home/mc-bench
exec 3>&1 4>&2 1>> memcache_memslap_${RANDOM}.log 2>&1
#不断循环
while [ 1 ]
do
#并发线程数 4 ~ 256
for THREAD in 4 8 16 32 64 128 256
do
#每种并发测试5次
count=1
max=5
while [ $count -le ${max} ]
do
#取样
echo "memstat"
memstat
# --flush 每次测试完毕钱,都先清空数据
# --binary 采用binary模式
# 初始化数据: 5000000, 每个并发线程存取数据量: 100000
# 并发256线程时, 总数据量可达 30,600,000
# 未指定 --test 选项,默认是进行 set 测试
memslap --server=mc_server:11211 --concurrency=${THREAD} --execute-number=100000 --initial-load=5000000 --flush --binary
count=`expr ${count} + 1`
#每次测试完毕后,都休息2分钟,等待服务器恢复空负载
if [ ${count} -lt ${max} ] ; then
 sleep 120
fi
echo ""
echo ""
done
done
done
Copier après la connexion
  • 测试结果

1. 写MC

? ? ? ? ? ? ? ?线程数
耗时
256 128 64 32 16 8 4
NativeMC(单位:1秒) 104.315 47.646 24.486 12.162 6.351 5.525 5.078
InnoDBMC(单位:100秒) 339.1431 68.11128 27.67265 11.26917 4.968556 2.24988 1.104334

直接以曲线图方式对比:

nativemc-vs-innodbmc-benchmark-02-set-result-20130828

nativemc-vs-innodbmc-benchmark-02-set-result-20130828

2. 读MC

??????? 线程数
耗时
4线程并发,2千万记录
本地Native MC 198.5016
本地InnoDB MC 327.239
远程Native MC 846.286
远程InnoDB MC 912.467

曲线图方式对比:

nativemc-vs-innodbmc-benchmark-03-get-result-20130828

nativemc-vs-innodbmc-benchmark-03-get-result-20130828

  • 结论

InnoDB MC看起来很美好,现实很骨感,其并发4线程写数据需呀的耗时,和原生memcached的256线程相当,差的不是一丁半点啊,还有很大优化空间。

而如果是缓存只读,InnoDB MC本地读取的效率大概是原生memcached的2/3,如果是远程读取,则相当于是本地读取效率的1/4 ~ 1/3。

  • 建议应用场景

鉴于上面的测试结果,建议将InnoDB MC这么来用:

1. 数据写入通过触发器(trigger)或者调度器(event scheduler)将待缓存数据同步到InnoDB MC缓存表中;

2. 以memcache API方式,通过本地/远程读取InnoDB MC中的缓存记录;

3. 尽可能减少通过远程方式往InnoDB MC写缓存数据;

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Lequel a le plus de potentiel, la pièce SOL ou la pièce BCH ? Quelle est la différence entre la pièce SOL et la pièce BCH ? Lequel a le plus de potentiel, la pièce SOL ou la pièce BCH ? Quelle est la différence entre la pièce SOL et la pièce BCH ? Apr 25, 2024 am 09:07 AM

Actuellement, les pièces potentielles favorisées par le cercle monétaire incluent la pièce SOL et la pièce BCH. SOL est le jeton natif de la plate-forme blockchain Solana. BCH est le jeton du projet BitcoinCash, qui est une monnaie fork de Bitcoin. Parce qu'ils ont des caractéristiques techniques, des scénarios d'application et des orientations de développement différents, il est difficile pour les investisseurs de faire un choix entre les deux. J'aimerais analyser lequel a le plus de potentiel, la monnaie SOL ou le BCH ? Investissez à nouveau. Cependant, la comparaison des devises nécessite une analyse complète basée sur le marché, les perspectives de développement, la solidité du projet, etc. Ensuite, l'éditeur vous le dira en détail. Lequel a le plus de potentiel, la pièce SOL ou le BCH ? En comparaison, la pièce SOL a plus de potentiel. Déterminer laquelle a le plus de potentiel, la pièce SOL ou BCH, est une question compliquée car elle dépend de nombreux facteurs.

Comparaison des performances de Windows 10 et Windows 11 : lequel est le meilleur ? Comparaison des performances de Windows 10 et Windows 11 : lequel est le meilleur ? Mar 28, 2024 am 09:00 AM

Comparaison des performances de Windows 10 et Windows 11 : lequel est le meilleur ? Avec le développement et les progrès continus de la technologie, les systèmes d’exploitation sont constamment mis à jour et mis à niveau. En tant que l'un des plus grands développeurs de systèmes d'exploitation au monde, la série de systèmes d'exploitation Windows de Microsoft a toujours attiré beaucoup d'attention de la part des utilisateurs. En 2021, Microsoft a lancé le système d’exploitation Windows 11, ce qui a suscité de nombreuses discussions et attentions. Alors, quelle est la différence de performances entre Windows 10 et Windows 11 ?

Les performances d'exécution locale du service Embedding dépassent celles d'OpenAI Text-Embedding-Ada-002, ce qui est très pratique ! Les performances d'exécution locale du service Embedding dépassent celles d'OpenAI Text-Embedding-Ada-002, ce qui est très pratique ! Apr 15, 2024 am 09:01 AM

Ollama est un outil super pratique qui vous permet d'exécuter facilement des modèles open source tels que Llama2, Mistral et Gemma localement. Dans cet article, je vais vous présenter comment utiliser Ollama pour vectoriser du texte. Si vous n'avez pas installé Ollama localement, vous pouvez lire cet article. Dans cet article, nous utiliserons le modèle nomic-embed-text[2]. Il s'agit d'un encodeur de texte qui surpasse OpenAI text-embedding-ada-002 et text-embedding-3-small sur les tâches à contexte court et à contexte long. Démarrez le service nomic-embed-text lorsque vous avez installé avec succès o

Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes May 03, 2024 pm 09:03 PM

La comparaison des performances des méthodes de retournement des valeurs de clé de tableau PHP montre que la fonction array_flip() fonctionne mieux que la boucle for dans les grands tableaux (plus d'un million d'éléments) et prend moins de temps. La méthode de la boucle for consistant à retourner manuellement les valeurs clés prend un temps relativement long.

Comparaison des performances de différents frameworks Java Comparaison des performances de différents frameworks Java Jun 05, 2024 pm 07:14 PM

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

Comment optimiser les performances des programmes multi-thread en C++ ? Comment optimiser les performances des programmes multi-thread en C++ ? Jun 05, 2024 pm 02:04 PM

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.

Quel impact les fonctions C++ ont-elles sur les performances du programme ? Quel impact les fonctions C++ ont-elles sur les performances du programme ? Apr 12, 2024 am 09:39 AM

L'impact des fonctions sur les performances du programme C++ comprend la surcharge des appels de fonction, la surcharge des variables locales et de l'allocation d'objets : La surcharge des appels de fonction : y compris l'allocation de trame de pile, le transfert de paramètres et le transfert de contrôle, ce qui a un impact significatif sur les petites fonctions. Surcharge d'allocation de variables locales et d'objets : un grand nombre de créations et de destructions de variables locales ou d'objets peuvent entraîner un débordement de pile et une dégradation des performances.

Quelle est la performance des fonctions PHP ? Quelle est la performance des fonctions PHP ? Apr 18, 2024 pm 06:45 PM

Les performances des différentes fonctions PHP sont cruciales pour l’efficacité des applications. Les fonctions offrant de meilleures performances incluent echo et print, tandis que les fonctions telles que str_replace, array_merge et file_get_contents ont des performances plus lentes. Par exemple, la fonction str_replace est utilisée pour remplacer des chaînes et a des performances modérées, tandis que la fonction sprintf est utilisée pour formater des chaînes. L'analyse des performances montre qu'il ne faut que 0,05 milliseconde pour exécuter un exemple, prouvant que la fonction fonctionne bien. Par conséquent, une utilisation judicieuse des fonctions peut conduire à des applications plus rapides et plus efficaces.

See all articles