开发者社区> 技术小甜> 正文

Percona5.6.15线程池压力测试

简介:
+关注继续查看

http://www.mysqlperformanceblog.com/2013/03/16/simcity-outages-traffic-control-and-thread-pool-for-mysql/

这篇文章生动的描述了线程池的妙处,它可以解决高并发数据库性能下降。

试想着如果不设置交通信号灯,没有交警的指挥,让其车辆肆意行驶,那么造成的后果就是交通瘫痪,谁都抢行,结果谁都过不去,堵死了。那么就必须采取一定的措施,先放行一部分车辆,后续的就排队等待,直到交通畅通。——这就是线程池的作用。


每个客户端连接MySQL执行SQL语句会创建一个线程。一旦连接数量的增加超过某特定点性能将会下降。该特性使服务器保持最佳性能,即使大量的客户端连接,通过使用线程池服务器线程的数量将减少,这将减少CPU上下文切换和热锁的竞争。


下面我用虚拟机做了一次压力测试。

虚拟机配置:

root@percona1:~/percona-toolkit-2.2.4# pt-summary 
# Percona Toolkit System Summary Report ######################
       Date | 2014-02-04 01:51:35 UTC (local TZ: CST +0800)
   Hostname | percona1
     Uptime |  1:48,  3 users,  load average: 0.62, 9.56, 17.38
     System | VMware, Inc.; VMware Virtual Platform; vNone (Other)
Service Tag | VMware-56 4d 4e ce 5e 61 55 0d-cb 94 85 3f 9e 9a 3e 79
   Platform | Linux
    Release | Debian GNU/Linux 7.3 (wheezy) (wheezy)
     Kernel | 3.2.0-4-amd64
Architecture | CPU = 64-bit, OS = 64-bit
  Threading | NPTL 2.13
    SELinux | No SELinux detected
Virtualized | VMWare
# Processor ##################################################
 Processors | physical = 2, cores = 4, virtual = 4, hyperthreading = no
     Speeds | 4x1895.729
     Models | 4xIntel(R) Core(TM) i3-3227U CPU @ 1.90GHz
     Caches | 4x3072 KB
# Memory #####################################################
      Total | 996.0M
       Free | 69.8M
       Used | physical = 926.2M, swap allocated = 1.3G, swap used = 439.8M, virtual = 1.3G
    Buffers | 2.4M
     Caches | 20.0M
      Dirty | 384 kB
    UsedRSS | 810.2M
 Swappiness | 60
DirtyPolicy | 20, 10
DirtyStatus | 0, 0


压力测试参数:

1
sysbench  --test=oltp  --mysql-table-engine=innodb --oltp-table-size=1000000 --max-requests=10000 --num-threads=1000 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-db=test --mysql-socket=/tmp/mysql.sock run


并发1000个连接,最大请求数为10000。


结果如图:

wKiom1Lw7iLSeWNIAAENKPBSU0I517.jpg

很明显开启了线程池TPS要好于未开启的。


注:MySQL5.5和5.6只有在企业版(付费)才支持,社区版是没有这个功能的。


参考:http://www.percona.com/doc/percona-server/5.5/performance/threadpool.html


附Percona官方测试:

wKioL1LzpqnznG4yAAG4a-mK3oQ663.jpg

http://www.mysqlperformanceblog.com/2014/02/04/16000-active-connections-percona-server-continues-work-others-die/


附MySQL官方测试:

MySQL线程池

(仅适用于商业版)

为满足不断增长的用户、查询和数据通信量对性能和扩展性的持续需求,MySQL企业版提供了MySQL线程池。线程池提供了一种具有高度扩展性的线程处理模型,旨在减少管理客户连接和语句执行线程的开销。服务不断增长的用户连接数量及大通信量的在线应用性能和扩展性持续改善效果如下图所示:

60倍提高扩展性:读/写wKiom1Lx2EOCsPSEAAFBVnRIscw183.jpg

与MySQL社区版服务器相比,带MySQL线程池的MySQL企业版可提供60倍的扩展性.

18倍提高扩展性:只读

wKiom1Lx2HSj7KypAAFOgnMvtAk532.jpg

与MySQL社区版服务器相比,带MySQL线程池的MySQL企业版可提供18倍的扩展性.

配置:

  • MySQL 5.6.11

  • Oracle Linux 6.3, Unbreakable Kernel 2.6.32

  • 4 sockets, 24 cores, 48 Threads

  • Intel(R) Xeon E7540 2GHz CPUs

  • 512GB DDR RAM


http://www.mysql.com/products/enterprise/scalability.html













本文转自hcymysql51CTO博客,原文链接: http://blog.51cto.com/hcymysql/1356326,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11998 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23579 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
16428 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22537 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
16641 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
14743 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20909 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14898 0
+关注
10140
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载