升级服务器后, mysql 性能反而更慢了,求排查思路

133 天前
 danaesoziommw49
原机器是 小型 NUC i5-10310U 8C8G
升级后是 华为 2288H-V5 金牌 6133*2 40C64G
测试两台设备磁盘读写都是 500MB/s 左右,网络也都是 1G 。
---
但是新的机器查询比原机器更慢一倍,explain 输出结果又是一样的。
13w 数据的表,limit 500 都要 5 秒。
求排查思路。
10497 次点击
所在节点    MySQL
106 条回复
craftsmanship
133 天前
@defunct9 卧槽 ssh 哥重现江湖!
lcy630409
133 天前
试试 docker 切换到 docker mysql
bjzhou1990
133 天前
i5-10310U 睿频频率能到 4.4ghz ,新机器的单核性能应该是不如旧机器的,但是不至于慢一倍,优化一下新机器的 numa 配置,然后看下新机器是不是被降频了
soap0X
133 天前
看单核心 cpu 上次听直播学到的。mysql 好像单线程的,硬盘存储升级是直线的,cpu 频率升不起来意义不大。还说 mysql 被大面积使用好像是历史原因,不是性能出众但是没细说。
liuhan907
133 天前
先尝试 taskset 或者 numactl 把 mysql 绑定到一个 numa 节点再测一下看看
T0m008
133 天前
数据库索引检查了吗,迁移到新机器的时候是不是损坏了
billccn
133 天前
你双 CPU 的话主要排查方向就是 NUMA 。建议先确定每个 CPU 配了多少内存、PCIE 上挂了哪些设备。

比如你数据库需要 20GB ,然后你是两个 CPU 各配了 10GB ,那么很多查询都需要走总线去另一个 CPU 去读内存,能快就怪了。我还见过内存全装到了一个 CPU ,这样另一个 CPU 等于是减速器。

另外 6133 是个 Skylake 代的 CPU ,属于需要的硬件漏洞补丁特别多,可以临时加一个 mitigations=off 内核命令看一下性能有没有改善。如果是这个原因那就考虑升级 Cpu 。

最后这是个核密集型号,这种的目标客户是虚拟化。对于关系型数据库你需要找核数少,主频特别高的。
dann73580
133 天前
i5-10310U 的睿频有 4.40 GHz ,考虑到架构,也比 6133 更新。如果你的负载没办法充分利用多核的话,那我觉得前者快还是挺正常的啊。
wowo243
132 天前
有没有可能索引失效了,重建下索引试试
ALTER TABLE table_name ENGINE=InnoDB;
woodchen
132 天前
单核性能, 这个 i5 应该吊打 金牌 6133.

感觉应该是单核性能的问题, 单个查询跟线程多应该没什么关系, 主要是看 CPU 单核性能.
cokyhe
132 天前
硬盘是石头做的吧,13w 的数据没索引页不该这么慢的啊
mayli
132 天前
》 升级后是 华为 2288H-V5 金牌 6133*2 40C64G
你这才 64G 是没插满把,拔一个 cpu 试试,估计性能就回来了
Kepy
132 天前
我有个想法,你做个虚拟化,PVE/ESXI 都可以,或者直接 KVM 也行,开一台 4 核心 8G 的虚拟机,跑一下 MySQL ,看看行性能是不是和裸机跑差不多或者更快。
danaesoziommw49
132 天前
@nznd #38 惭愧,可能是我不会看,cat /proc/cpuinfo|grep spec_ctrl 没输出
danaesoziommw49
132 天前
@billccn #47 查看是各分配了 32G ,现在总的内存占用才 20G 左右。
mysql 分配了 10G ,按理不会跨 cpu ?
root@2288hv5-01:~# lscpu | grep NUMA
NUMA node(s): 2
NUMA node0 CPU(s): 0-19,40-59
NUMA node1 CPU(s): 20-39,60-79
root@2288hv5-01:~# numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
node 0 size: 31687 MB
node 0 free: 294 MB
node 1 cpus: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
node 1 size: 32192 MB
node 1 free: 407 MB
node distances:
node 0 1
0: 10 21
1: 21 10
danaesoziommw49
132 天前
@wowo243 #49
@T0m008 #46

检查过索引,也执行过 OPTIMIZE TABLE
ldyisbest
132 天前
开一下 performance_schema 记录 sql 每个阶段执行耗时,对比一下升级前后
oudemen
132 天前
1. dd 只能测试顺序读写的性能,测试这个对数据库意义不大。
2. 采集两台主机的各项监控指标,比较 cpu 利用率、上下文切换、内存使用情况,磁盘 io 情况,网络情况等。 做好监控以后,测试执行 sql ,分别对比各项指标的差异。重点关注 iowait 、io util 、iops 等 io 相关指标。
3. 新迁移的数据库,数据都是新导进去的,一般不会出现索引实效的情况
4. 禁用 swap
5. 服务器磁盘是否有 raid ,raid 的写策略设置的是什么?
6. 软件版本和配置和数据一致的情况下,倾向认为是硬件差异导致的。
BeijingBaby
132 天前
服务器硬件变了后,软件理论上运行效率会上升,但是不绝对,和系统参数、软件参数配置有关系。
比如原来的 mysql 参数适合原来的硬件配置,新的配置可能反而发挥不出来或者 mysql 的版本和硬件相关兼容有问题等。
这个只能慢慢排查了,io 、网络
watzds
132 天前
@defunct9 #15 牛,专业运维,一个 ssh 啥都能搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1138433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX