美文网首页
万答#6,MySQL最多只能用到128个逻辑CPU,是真的吗

万答#6,MySQL最多只能用到128个逻辑CPU,是真的吗

作者: GreatSQL | 来源:发表于2022-01-07 09:15 被阅读0次
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。

江湖传言MySQL最多只能用到128个逻辑CPU,是真的吗?

同事从客户现场回来,委屈巴巴的说,某PG服务商告诉客户“MySQL最高只能支持128个逻辑CPU,更多就用不上了,还是用PG吧”。

作为从MySQL 3.23时代就开始一路陪跑过来的我,肯定不能忍啊。。。

在早期以MyISAM引擎为主的年代,的确有类似的限制。MyISAM存在众多限制,这个也是众所周知的,不赘述了。

但自从InnoDB成为MySQL默认引擎后,这个情况应该是不复存在了。尤其是自从MySQL引入innodb_autoinc_lock_mode、innodb_io_capacity、innodb_read_io_threads、innodb_write_io_threads等多个可控参数选项后,对于高并发的业务场景,基本上都能把所有逻辑CPU跑满。

口说无凭,直接测试验证下吧。

测试环境:

#查看CPU,共有176个逻辑CPU
$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                176
On-line CPU(s) list:   0-175
Thread(s) per core:    2
Core(s) per socket:    22
Socket(s):             4
...

#OS环境
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
$ uname -a
Linux3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

下载MySQL 5.5.62版本的二进制包,修改下面几个参数选项:

innodb_io_capacity = 20000
innodb_autoinc_lock_mode = 2
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_thread_concurrency = 0

实例启动后,在另外的客户机上运行sysbench进行压测(sysbench不要和MySQL服务器跑在同一个服务器上):

#128个测试表,每个表10万行记录,并发256个线程
$ sysbench /usr/share/sysbench/oltp_read_write.lua  --mysql-host=172.16.10.10 --mysql-port=3306 --mysql-user=xx --mysql-password=xx --mysql-db=sbtest  --db-driver=mysql  --tables=128  --table_size=100000 --threads=256 --report-interval=1 --db-ps-mode=disable --time=0 run

而后运行htop观察所有CPU的状态,肉眼即可见所有逻辑CPU上都有负载:

file

P.S,MySQL 5.1版本中的并发度确实有限,不建议使用该版本,不过现在用5.1的应该很少了吧。

最后,借用微信朋友圈一位同学的留言:talk is cheap, show your test。

Enjoy GreatSQL :)

本文由博客一文多发平台 OpenWrite 发布!

相关文章

  • 万答#6,MySQL最多只能用到128个逻辑CPU,是真的吗

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 江湖传言MySQL最多只能用到128...

  • cpu 内核 逻辑处理器的关系

    6核CPU,12个逻辑处理器 一颗内核在一个时间片内只能执行一个内核线程;当物理CPU使用了 技术后,在CPU的一...

  • mysql cpu暴涨快速排查方法

    1. 获取mysql进程Id 2. 实时查看mysql进程中占用cpu,内存最多的操作系统线程Id 3. 根据操...

  • 高性能MySQL学习笔记(一)

    Mysql:不支持多CPU并发运算 每个sql 只能分配到一个cpu超高的QPS和TPS (QPS:每秒处理的查...

  • Linux 分区

    主分区: 最多只能有4个 扩展分区: 最多只能有1个 主分区加扩展分区最多有4个 不能写入数据,只能包含逻辑分区 ...

  • linux 查看cpu数

    ① 查看物理CPU的个数 ② 查看逻辑CPU的个数 ③ 查看CPU是几核

  • mysql导致服务器CPU过高排查

    背景 服务器上安装mysql,收到cpu 100%报警,登上去查看top,很明显是mysql导致cpu达到100%...

  • 请你一定要保重身体

    去年家人骨折,装钢板,手术费6万。 住院时,医生或护士首先问的问题就是“有医保吗?是工伤吗?” 答曰“有医保”。 ...

  • 7 逻辑回归

    本章讲解一个在机器学习领域里,用到的最多的一个算法,逻辑回归 1 逻辑回归 逻辑回归是一个分类算法 回归问题怎么解...

  • linux 查看cpu数

    1、 查看物理CPU的个数 2、 查看逻辑CPU的个数 3、 查看CPU是几核

网友评论

      本文标题:万答#6,MySQL最多只能用到128个逻辑CPU,是真的吗

      本文链接:https://www.haomeiwen.com/subject/urfjcrtx.html