![]() |
1
defunct9 2 天前
不应该
|
2
wysnxzm 2 天前
是不是网络问题?
|
3
hytex 2 天前
1.先确认是否为 MySQL 造成的原因
2.对比 MySQL 版本 3.对比 MySQL 参数,例如相关 buffer 的参数值 |
4
zzh0410 2 天前 via Android
CPU 主频一样么?
|
5
danaesoziommw49 OP @hytex #3 mysql 版本完全一样,都是 8.0.42 ,一样的 apt 安装
旧机器 innodb_buffer_pool_size = 2G ,新机器 8G 。 |
6
danaesoziommw49 OP @wysnxzm #2 直接在服务器登录 mysql ,执行也更慢。
|
![]() |
7
defunct9 2 天前 ![]() 开 ssh ,让我上去看看
|
8
danaesoziommw49 OP |
![]() |
9
GuryYu 2 天前
NUC 是不是固态,新的服务器是固体还是机械。
4K IO 的指标也很重要 |
![]() |
10
justfindu 2 天前
有没有可能 CPU 支持不一样?
|
11
xjzshttps 2 天前
是否和多路 cpu 内存配置有关?
|
![]() |
12
yanjieee 2 天前
看下内核参数
|
14
jworg 2 天前
10310U 按理有睿频 并不是基础频率 1.70GHz ,那个服务器我没怎么找到 u 是什么,但至强一般都不支持睿频,看这个频率似乎是比较老的至强,还真不一定比得上 10 代 i3 。
|
16
danaesoziommw49 OP @GuryYu #9 都是固态,用 dd 测试,新机器 4k 写 26.7 MB/s ,读 1.2 GB/s 。比旧机器快很多。
|
18
jworg 2 天前
又看了下,除了之前提到的消费级 cpu 有睿频外,这个有两颗 cpu ,应该还有一个 numa 的参数需要配置 innodb_numa_interleave
|
19
danaesoziommw49 OP @jworg #14 21 年 Q2 发布的 cpu ,写的主频 2.5 GHz ,睿频 3.0 GHz 。我感觉和 cpu 性能关系不大? cpu 用量整体才 5%
https://files.catbox.moe/7b4hbj.png |
![]() |
20
thinkm 2 天前
数据库的话测下硬盘 4k 随机
(base) root@ubuntu:~# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync 4096+0 records in 4096+0 records out 268435456 bytes (268 MB, 256 MiB) copied, 2.70439 s, 99.3 MB/s |
![]() |
21
SuperGeorge 2 天前
至少吧 my.cnf 贴出来看看吧。
|
![]() |
22
Cooky 2 天前
这个服务器的 U 能全核睿频?我记得至强睿频都不会太猛
|
23
danaesoziommw49 OP @thinkm #20
root@2288hv5-01:~# dd bs=64k count=4k if=/dev/zero of=test oflag=dsync 4096+0 records in 4096+0 records out 268435456 bytes (268 MB, 256 MiB) copied, 1.0163 s, 264 MB/s 。 我测试 1G 的是 26.7 MB/s |
24
danaesoziommw49 OP @SuperGeorge #21 没改动什么,apt 安装 mysql ,就设置了了 innodb_buffer_pool_size =6G 和一个 server_id
|
25
danaesoziommw49 OP @Cooky #22 不太懂硬件,但是我看 cpu 占用才 5%。应该不至于是性能问题?
|
![]() |
26
Cooky 2 天前
@danaesoziommw49 你测试的时候可以找软件持续看一下两台机器每个物理核心和逻辑核心的占用和频率,很多时候睿频都是一瞬间的
|
![]() |
27
billbob 2 天前
华为的? 系统配置 搜下 使用华为服务器 数据库性能降低
|
28
dbak 2 天前
会不会是你当前 linux kernel 对新硬件支持的不好呢?换 hwe 的 kernel 试试呢?
|
29
hefish 2 天前
我只会看看 top ,看看是不是 iowait 高了就搞 io ,其他不会。
|
![]() |
30
rrfeng 2 天前 via Android
13w 5s 连索引都不用……磁盘有问题?
|
![]() |
31
SuperGeorge 2 天前
@danaesoziommw49 我们本地的测试数据库服务器是 2288H V6 ,刚迁移下来的 MySQL 也是连接查询特别慢,添加了 skip-name-resolve 配置禁用了 DNS 解析就好了,问题不一定相同,你可以试试。
|
![]() |
32
EastLord 2 天前
看到华为,肃然起敬
|
33
nznd 2 天前
根据 @billbob
我搜到一个跟 cpu 微码相关的回答 https://support.huawei.com/enterprise/zh/knowledge/EKB1002064781 感觉可能是真相,都是慢一倍 |
![]() |
34
liprais 2 天前 via iPhone
一般这种首先怀疑 cpu flag
|
35
danaesoziommw49 OP @rrfeng #30 但是测速又没问题,有 500MB/s
|
36
ntedshen 2 天前 ![]() mysql 著名的多核优化不足。。。https://stackoverflow.com/questions/63897746/is-it-possible-to-make-mysql-single-thread-to-use-multicore 不然之前一帮 pg 党为啥天天测出来吊打。。。
12 20 27 核心明显都带负载,只是 mysql 利用率太低了吃不掉所有核。。。 另外 nuc 的主频明显高于 6130 。。。毕竟你这点负载根本不配让后者拉起睿频,而笔记本硬件睿频是很激进的。。。 |
37
danaesoziommw49 OP @nznd #33 这个文章充满了机翻味,我检查内核版本也不是文章的这个版本。不一致这么大的 bug 6 年都没修复吧
|
38
nznd 2 天前
@danaesoziommw49 #37 不是的,这不是 bug ,而是补丁,理论上这个版本之后的版本都带了这个补丁,你应该看下 cpuinfo 中的 spec_ctrl 标志位是什么
|
![]() |
40
ik 2 天前 via iPhone
bmc 看看是不是开了省电模式或者电源锁功率了
|
41
craftsmanship 2 天前 via Android
@defunct9 卧槽 ssh 哥重现江湖!
|
42
lcy630409 2 天前
试试 docker 切换到 docker mysql
|
![]() |
43
bjzhou1990 2 天前
i5-10310U 睿频频率能到 4.4ghz ,新机器的单核性能应该是不如旧机器的,但是不至于慢一倍,优化一下新机器的 numa 配置,然后看下新机器是不是被降频了
|
44
cobbage 2 天前 via Android
看单核心 cpu 上次听直播学到的。mysql 好像单线程的,硬盘存储升级是直线的,cpu 频率升不起来意义不大。还说 mysql 被大面积使用好像是历史原因,不是性能出众但是没细说。
|
![]() |
45
liuhan907 2 天前
先尝试 taskset 或者 numactl 把 mysql 绑定到一个 numa 节点再测一下看看
|
46
T0m008 2 天前
数据库索引检查了吗,迁移到新机器的时候是不是损坏了
|
47
billccn 2 天前 ![]() 你双 CPU 的话主要排查方向就是 NUMA 。建议先确定每个 CPU 配了多少内存、PCIE 上挂了哪些设备。
比如你数据库需要 20GB ,然后你是两个 CPU 各配了 10GB ,那么很多查询都需要走总线去另一个 CPU 去读内存,能快就怪了。我还见过内存全装到了一个 CPU ,这样另一个 CPU 等于是减速器。 另外 6133 是个 Skylake 代的 CPU ,属于需要的硬件漏洞补丁特别多,可以临时加一个 mitigations=off 内核命令看一下性能有没有改善。如果是这个原因那就考虑升级 Cpu 。 最后这是个核密集型号,这种的目标客户是虚拟化。对于关系型数据库你需要找核数少,主频特别高的。 |
48
dann73580 2 天前
i5-10310U 的睿频有 4.40 GHz ,考虑到架构,也比 6133 更新。如果你的负载没办法充分利用多核的话,那我觉得前者快还是挺正常的啊。
|
![]() |
49
wowo243 2 天前
有没有可能索引失效了,重建下索引试试
ALTER TABLE table_name ENGINE=InnoDB; |
![]() |
50
woodchen 2 天前
单核性能, 这个 i5 应该吊打 金牌 6133.
感觉应该是单核性能的问题, 单个查询跟线程多应该没什么关系, 主要是看 CPU 单核性能. |
51
cokyhe 2 天前
硬盘是石头做的吧,13w 的数据没索引页不该这么慢的啊
|
52
mayli 2 天前
》 升级后是 华为 2288H-V5 金牌 6133*2 40C64G
你这才 64G 是没插满把,拔一个 cpu 试试,估计性能就回来了 |
53
Kepy 2 天前
我有个想法,你做个虚拟化,PVE/ESXI 都可以,或者直接 KVM 也行,开一台 4 核心 8G 的虚拟机,跑一下 MySQL ,看看行性能是不是和裸机跑差不多或者更快。
|
54
danaesoziommw49 OP @nznd #38
![]() |
55
danaesoziommw49 OP @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 |
56
danaesoziommw49 OP |
![]() |
57
ldyisbest 1 天前
开一下 performance_schema 记录 sql 每个阶段执行耗时,对比一下升级前后
|
58
oudemen 1 天前
1. dd 只能测试顺序读写的性能,测试这个对数据库意义不大。
2. 采集两台主机的各项监控指标,比较 cpu 利用率、上下文切换、内存使用情况,磁盘 io 情况,网络情况等。 做好监控以后,测试执行 sql ,分别对比各项指标的差异。重点关注 iowait 、io util 、iops 等 io 相关指标。 3. 新迁移的数据库,数据都是新导进去的,一般不会出现索引实效的情况 4. 禁用 swap 5. 服务器磁盘是否有 raid ,raid 的写策略设置的是什么? 6. 软件版本和配置和数据一致的情况下,倾向认为是硬件差异导致的。 |
![]() |
59
BeijingBaby 1 天前
服务器硬件变了后,软件理论上运行效率会上升,但是不绝对,和系统参数、软件参数配置有关系。
比如原来的 mysql 参数适合原来的硬件配置,新的配置可能反而发挥不出来或者 mysql 的版本和硬件相关兼容有问题等。 这个只能慢慢排查了,io 、网络 |
61
ntedshen 1 天前
|
![]() |
62
kokutou 1 天前 via Android
Linux 内核加个启动参数关闭 CPU 漏洞补丁试试。。。
你就搜这句会有个阿里云的文档。 其实就是加个 mitigations=off 参数关闭所有漏洞修复 |
63
alex8 1 天前
time echo "scale=5000; 4*a(1)" | bc -l -q
跑下 5000 位的圆周率看下 CPU 成绩,i7 10875h, 虚拟机内三次最佳:10.844s |
64
laminux29 1 天前
小白没经验,装机前没来论坛问问,第一次自己瞎装机,翻车了很正常。
Intel Xeon@ Gold 6133 这是 OEM 的 CPU ,在 Intel Ark 没数据,在各大 CPU Benchmark 也没数据,买这款 CPU ,属于采购的重大决策失误。买 CPU 是不能买 OEM 的,因为你拿不到官方的频率数据、指令集数据、TDP 数据,拿不到 CPU Benchmark 数据,导致像现在这样,出问题了都没办法排查。 因为拿不到指令集与 TDP ,只能看看其他参数。i5-10310U 的睿频(单核睿频)是 4.4 Ghz ,而 Intel Xeon@ Gold 6133 只有 3.0 。并且前者的内存是非 ECC ,后者是功能更多更稳但更慢的 ECC ,所以 Mysql 在前者的表现优于后者,这也是不难理解的。 |
![]() |
65
sunny2580839896 1 天前
|
66
imgoodman 1 天前
```
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123123 -v /data/mysql:/var/lib/mysql -v /etc/my.cnf:/etc/my.cnf -d -p 3306:3306 mysql:8.0.32 ``` 导出全部数据,导入全部数据 |
![]() |
68
realpg 1 天前
@defunct9 #1
很正常... 对于非专业的, 以他描述的内容 这里面至少有七八个坑在前面等着 OP 踩一遍 随便哪个踩到了 都可能是现在这个结果, 甚至更差... 甚至把 从他的描述 我就不太想帮忙... IO 性能差 连 IO 构形都不说 告诉你个顺序读写速度... 而且, 这不是你习惯的开个 ssh 就能解决的问题... 这不是 os 以内的问题 |
69
longlonglanguage 1 天前
当初我学习数据库的时候是怀着非常崇敬的心情,觉得非常的高大上,觉得 sql 语句非常的强。当学习深入,看到各种数据库调优大师把 bug 当作数据库特性的时候,我才明白是很强,但是又很弱智。凑合着用吧,除非你想深入数据库开发这一块,要不然不用太深入,当你理解一个他的 bug 时候,他一个版本升级,bug 又没了,你调优调了个寂寞。不如紧跟时代潮流,市场上流行啥用啥,别人都帮你测试过了绝对好用。我的意思是新项目,如非要求的话,可以考虑用 pg 。
|
![]() |
70
vkZudze5p1h4py5H 1 天前 via Android ![]() 先问下 AI 多好,何必求人还被质疑提问的艺术? deepseek 非深度思考模式的回答如下,我大致看了下,以上各位提出的思路几乎都考虑到了。
# MySQL 性能下降排查思路 从你的描述来看,升级到更高配置的服务器后 MySQL 性能反而下降了,这是一个典型的"硬件升级但性能不升反降"案例。以下是一些排查思路: ## 1. 基础配置检查 - **MySQL 版本**:确认两台服务器上的 MySQL 版本是否一致 - **配置文件**:比较`my.cnf`或`my.ini`配置是否有差异 - **存储引擎**:确认表是否都使用 InnoDB 引擎 ## 2. CPU 相关排查 - **CPU 频率**:i5-10310U 基础频率 1.7GHz ,最大睿频 4.4GHz ;而金牌 6133 基础频率 2.5GHz ,但可能因节能设置降频 - **CPU 亲和性**:检查是否绑定了错误的 CPU 核心 - **节能模式**:在 BIOS 中检查是否启用了节能模式 - **CPU 调度策略**:检查`cpufreq`设置 ## 3. 内存相关排查 - **NUMA 架构**:2288H-V5 是 NUMA 架构,检查 MySQL 是否跨节点访问内存 ```bash numactl --hardware numastat -p <mysql_pid> ``` - **内存分配**:检查 InnoDB 缓冲池大小是否适当配置 ## 4. 存储 I/O 排查 - **文件系统**:确认是否使用相同的文件系统(如 ext4/xfs) - **I/O 调度器**:检查 I/O 调度算法是否合适 ```bash cat /sys/block/sdX/queue/scheduler ``` - **挂载参数**:比较`/etc/fstab`中的挂载选项 ## 5. 数据库特定检查 - **查询缓存**:检查是否启用了查询缓存(MySQL 8.0 已移除) - **临时表**:检查是否使用了磁盘临时表 ```sql SHOW STATUS LIKE 'Created_tmp%'; ``` - **表统计信息**:尝试分析表 ```sql ANALYZE TABLE 表名; ``` - **并发连接数**:检查是否有连接堆积 ## 6. 系统级检查 - **系统负载**:使用`top`/`htop`检查系统负载 - **中断平衡**:检查是否所有 CPU 核心都参与中断处理 ```bash cat /proc/interrupts ``` - **透明大页**:检查 THP 设置 ```bash cat /sys/kernel/mm/transparent_hugepage/enabled ``` ## 7. 性能分析工具 - **慢查询日志**:启用并分析 ```sql SET GLOBAL slow_query_log = 'ON'; ``` - **Performance Schema**:启用性能监控 - **pt-query-digest**:分析查询模式 ## 建议的紧急检查项 1. 检查 NUMA 设置,尝试在启动 MySQL 时使用: ```bash numactl --interleave=all mysqld ... ``` 2. 检查 CPU 频率是否被限制: ```bash cpupower frequency-info ``` 3. 检查 InnoDB 缓冲池大小是否合理配置(建议物理内存的 50-70%) 这种性能下降通常与 NUMA 架构、CPU 频率调节或 I/O 子系统配置不当有关,建议先从这些方面入手排查。 |
![]() |
72
est 1 天前
有个说法是,如果软件吃单核,那么桌面处理器就是吊打服务器处理器。
服务器处理器除了核心多,一些特殊指令比如 avx512 ,其实比不上桌面处理器。以前只有服务器支持 ECC 现在桌面级的很多也支持了。 楼主这款似乎是 Xeon 6133 ?查了下,睿频之后才 3 GHz 。10310U 是 4.4GHz |
![]() |
73
Jokesy 1 天前
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. # basedir = ..... # datadir = ..... # port = ..... # server_id = ..... # socket = ..... # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #log-bin=/databak/mysql-bin/mysql-bin log_bin_trust_function_creators=1 skip-name-resolve server-id=1 port=3306 federated binlog-do-db=mysql binlog-do-db=ORST_CLOUD binlog-do-db=information_schema binlog-do-db=performance_schema replicate-do-db=mysql replicate-do-db=ORST_CLOUD replicate-do-db=information_schema replicate-do-db=performance_schema binlog-ignore-db=test replicate-ignore-db=test #slave-skip-errors = 1062 #*** parameter set *** innodb_buffer_pool_size = 2G innodb_log_file_size = 512M sync_binlog = 1 slow_query_log = ON long_query_time = 3 binlog_format = ROW transaction_isolation = READ-COMMITTED query_cache_size = 0 query_cache_type = 0 interactive_timeout = 7200 wait_timeout = 7200 expire_logs_days = 30 max_connections = 5000 max_connect_errors = 30 event_scheduler=ON group_concat_max_len=1024000 innodb_flush_log_at_trx_commit=2 character-set-server = utf8 max_allowed_packet = 600M [mysqldump] quick max_allowed_packet = 600M 之前我优化的参数,你可以借鉴操作,核对有效使用 |
74
wwhc 1 天前
楼主的 NUC i5-10310U 是双通道 ddr4 2933 么?如果金牌 6133 服务器的内存配置是 32gbx2 的话,内存带宽就要慢上一倍
|
![]() |
75
vkZudze5p1h4py5H 1 天前 via Android
@ssb4 怎么是无价值呢,我说的是建议先问下 AI ,贴出来的内容是展示一下 AI 的回答,里面几乎涵盖了上面所有人给出的思路。我并没有直接粘贴 AI 作为回答。
|
![]() |
76
vkZudze5p1h4py5H 1 天前 via Android ![]() @ssb4 请你瞪大你的眼睛看看是不是几乎涵盖了大家指出的各种方向,你是基于什么判定的无价值的 AI 回答呢
|
![]() |
78
coldear 1 天前
看看查询的时候是不是某个 core 长时间接近 100%
再对比一下老机器,可能是单核性能不够 |
![]() |
79
opengps 1 天前
硬盘格式化时候的块大小是多少?
|
![]() |
80
springz 23 小时 49 分钟前
感觉先去掉一个 CPU 试试
|
![]() |
81
ericguo 22 小时 52 分钟前
索引失效了呗,重新跑一遍:mysqlcheck -u root -p --auto-repair --optimize --all-databases
|
85
louisxxx 13 小时 21 分钟前
6133*2 这 CPU 感觉有问题, 跑 Nginx 性能还没有 E5-2680 v4*2 好; 6133 好像是腾讯云为开虚拟机而优化的特别版本, 适合开多个虚拟可能不适合直接跑业务
|
86
louisxxx 13 小时 20 分钟前
6133*2 这 CPU 感觉有问题, 跑 Nginx 性能还没有 E5-2680 v4*2 好, worker 数量开到 24 后再增加性能不增反降; 6133 好像是腾讯云为开虚拟机而优化的特别版本, 适合开多个虚拟可能不适合直接跑业务
|
![]() |
88
dabingbing 2 小时 14 分钟前
重启大法
|
![]() |
89
waringid 1 小时 48 分钟前
确认下是不是使用的 QLC 固态硬盘,这类硬盘在出现大量持续的读写情况下性能下降非常明显
|
![]() |
90
fcten 3 分钟前
1. 这两颗 U 的制程一样。i5-10310U 单核睿频更高,缓存更大。简单估计单核性能会比 6133 高 50%。低并发场景下性能强于 6133 是正常的。
2. 看一下两台设备的内存频率和延迟,数据库这类应用对内存性能敏感。 不知道你升级 6133 的目的是啥,如果不能充分利用这么多核心的话,这种“升级”实际上是降级。 |