相关疑难解决方法(0)

可以让 MySQL 使用多个核心吗?

我已经看到一些专用的 MySQL 服务器,它们只使用一个内核。我比 MySQL 的 DBA 更擅长开发,所以需要一些帮助

设置

服务器非常庞大,具有 OLAP/DataWarehouse (DW) 类型的负载:

  • 主要:96GB RAM,8 核 + 单个 RAID 10 阵列
  • 测试:32GB RAM,4核
  • 最大的 DB 是 540 GB,总共大约 1.1TB,主要是 InnoDB 表
  • Solaris 10 Intel-64
  • MySQL 5.5.x

注意:最大的 DB 是从 OLTP DR 服务器复制的 DB,DW 就是从这里加载的。它不是完整的 DW:仅持续 6 个月到 6 周,因此它比 OLTP DB 小。

对测试服务器的观察

  • 3 个独立的连接
  • 每个都有一个并发的(和不同的) ALTER TABLE...DROP KEY...ADD INDEX
  • 这 3 个表有 2.5、3.8 和 450 万行
  • CPU 使用率上升到 25%(一个核心被最大化)并且不会更高
  • 3 次 ALTER 需要 12-25 分钟(最小的一次需要 4.5 分钟)

问题

  1. 需要什么设置或补丁才能允许使用多个内核?
    也就是说,为什么 …

mysql innodb performance tuning mysql-5.5

140
推荐指数
5
解决办法
22万
查看次数

关于单线程与多线程数据库性能

H2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。

我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?

概括

  • 通常的瓶颈是磁盘访问
  • SSD 速度很快,但很脆弱(必须执行故障程序)
  • 单线程系统上的一个长查询将阻塞所有其他查询
  • 配置多线程系统可能很棘手
  • 即使在单核系统上,多线程数据库也是有益的

performance database-recommendation

63
推荐指数
5
解决办法
8万
查看次数

多核和 MySQL 性能

RAM 的重要性是一个既定的事实,但在 MySQL 使用 CPU 时,关于内核和多线程重要性的资料要少得多。我说的是在 4cores vs 6cores vs 8cores 上运行 MySQL 的区别等等。

不同的存储引擎使用 CPU 的方式不同吗?

mysql performance

38
推荐指数
2
解决办法
6万
查看次数

MySQL 5.1 InnoDB 配置/24GB RAM - 双至强高负载

我正在运行一个 facebook 应用程序,目前有 300 - 600 个并发用户(并且还在增长)。为了让硬件为增长做好准备,我将 i7 / 12gb ram / 2x 80gb intel x25 ssd(debian 5.0 / mysql 5.0 / 64bit)更改为 bi-xeon / 24gb ram / 2x 120gb intel 320 ssd /mysql . 64 位)。

现在我面临的问题是性能比“小盒子”差。在两台服务器上,我一直在使用 nginx/php fcgi 来提供内容。

我只使用 innodb,读取/写入大约 65%/35%。大约 800 - 1000 qps,但所有查询都很简单,永远不会加入超过 1 个额外的表。所有索引都已设置,并且没有单独的查询记录在慢日志中(> 2 秒)。目前我有大约 400MB 的数据(大约 1GB 的索引)预计它每个月都会翻一番。

我很喜欢每个可以给我一个提示的人,他们应该改变什么才能让它运行得更顺畅。

i7盒子上的旧配置是这样的(混合myisam / innodb),在800+用户下表现相当不错。

旧的my.cnf

   key_buffer              = 3000M
   max_allowed_packet      = 128M
   thread_stack            = 192K
   thread_cache_size       = 8
   max_connections        = 400
   table_cache            = 8000
   thread_concurrency …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance my.cnf

10
推荐指数
1
解决办法
2万
查看次数

如何在具有 16 GB RAM 的 QuadCore 机器上充分利用 MySQL?

我在我的工作站上运行 MySQL 5.5 服务器以进行科学数据分析,并想知道如何配置 MySQL 以便在性能方面发挥最大作用。我通常运行的查询类型涉及 10-20 个表的连接,并且可以运行很长时间,一到几分钟也不例外。只有极少数用户同时访问数据库(最多 5 个)。我将服务器从具有 2.2 GHz 双核和 4 GB RAM 的联想 Thinkpad T61 移动到以下带有手工选择组件的全新机器:

  • Intel i7 3770,4x 3.4 GHz(以 4x3.7 GHz 运行)
  • Z77芯片组
  • 16 GB DDR3 1600 内存
  • Windows 7 教授 64 位
  • Windows 和 MySQL 服务器在 Intel 520 系列 SSD 驱动器上运行。

第一次测试(在两台机器上运行相同的查询)显示新机器的速度有了明显的提高,但查询仍然需要很多时间,我原以为会有更多的提升。有问题的查询得到了相当好的优化,即所有表都有适当的键,这些键也被用作“解释扩展”。

现在到我当前的 MySQL 设置:首先我应该提到我很久以前从 MyISAM 转移到 Innodb。

我的一些 my.ini 调整(即偏离默认设置):

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5 performance mysql-5.5

10
推荐指数
2
解决办法
2万
查看次数

mySQL v5.6 复制的事务速度基准测试 - 似乎很慢

我正在尝试为我们的新基础架构选择最佳配置,但对结果有些困惑。

我使用 sysbench v0.5 进行测试:

准备数据

 sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua \
 --oltp-test-mode=complex --oltp-table-size=1000000 \
 --mysql-db=mydb --mysql-user=root --mysql-password=mypassword prepare
Run Code Online (Sandbox Code Playgroud)

做测试

 sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua \
 --oltp-test-mode=complex --oltp-table-size=1000000 --oltp-read-only=off \
 --num-threads=6 --max-time=60 --max-requests=0 \
 --mysql-db=mydb --mysql-user=root --mysql-password=mypassword run
Run Code Online (Sandbox Code Playgroud)

从下面的结果可以看出,主-主复制(3台机器的percona)性能最差,然后是mySQL主-从(2台机器)配置,最快的是mySQL作为单个独立服务器。

这是复制解决方案的正常情况吗?看起来太慢了,配置之间的 10 倍差异在我看来很不正常。也许我错过了一些东西......我对 Percona Galera Cluster 完全失望,它以对 innodb 的速度着称。呼:)

请检查下面提供的信息并提出建议,谢谢。

关于服务器


硬件

  • 英特尔® 至强® E5-1650 v2 六核
  • 64 GB ECC 内存
  • 2 x 240 GB 6 Gb/s SSD 数据中心版(软件-RAID 1)
  • 1 Gbit/s 带宽

操作系统

  • Debian Wheezy
  • 所有软件包都已更新/升级。

连接等

  • 服务器位于同一个数据中心,都与一个 Gbit 交换机相连,并有第二个以太网卡,所有这些都配置为它们之间的专用网络。

  • 目前,服务器上没有负载。

磁盘性能

第一次测试

# hdparm -Tt …
Run Code Online (Sandbox Code Playgroud)

mysql replication performance configuration percona

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