小编MYo*_*sef的帖子

超线程和 MySQL InnoDB 线程并发性能

我有一个具有以下规格的专用数据库服务器”

  • Ubuntu 12.04 LTS 服务器
  • 英特尔(R) 至强(R) CPU X5670
    • @ 2.93GHz
    • 12核
  • MySQL 5.5.29
  • 64 GB 内存
  • RAID10

我们目前正在做超线程,所以我们有 24 个逻辑核心。目前在 2k-4k 事务/秒之间运行。

我已经设置了以下内容:

  • innodb_thread_concurrency = 48
  • innodb_read_io_threads = 24
  • innodb_write_io_threads = 24

这是严格的 OLTP 负载(70% 读取)。查询速度相对较快(毫秒)。查询缓存已开启但未使用过多。临时磁盘表不经常创建。InnoDB 缓冲池设置为 48GB,几乎涵盖了整个数据集(60GB 数据+索引)。

  • 事务负载将翻倍至 4k-8k 事务/秒。目前 CPU 负载约为 1000%,所以我预计这将是瓶颈。

如何更好地调整 CPU 线程以及 MySQL 如何使用这些线程?让我知道是否有人对innodb_thread_concurrency.

我将不胜感激任何建议。


更新

innodb_thread_concurrency = 48到更新后:

  • innodb_thread_concurrency = 0

在高峰时间(4-5k 事务/秒)的生产系统上查看行为,这是我观察到的:

  • 负载平均增加
  • mysqld 进程 CPU 使用率从 400% - 1000% 上升到 400% - 1400%
  • 大约 4-10 个 …

mysql innodb performance linux mysql-5.5 performance-tuning

5
推荐指数
1
解决办法
3万
查看次数