惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
量子位
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
AWS News Blog
AWS News Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
Security Archives - TechRepublic
Security Archives - TechRepublic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
Cloudbric
Cloudbric
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
P
Proofpoint News Feed
V
V2EX
Martin Fowler
Martin Fowler
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
SecWiki News
SecWiki News
罗磊的独立博客
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
The Last Watchdog
The Last Watchdog

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12) Snack JSONPath 项目架构分析 Claude Code Buddy 小析:一个非核心功能,如何体现产品的细节完成度 AI新时代下的图床管理方案-Cloudflare图床+MCP+Skills方案指南 化繁为简:顺丰速运App如何通过 HarmonyOS SDK实现专业级空间测量 从零实现富文本编辑器#13-React非编辑节点的内容渲染 AI开发-python-langchain框架(3-23-OpenAI Functions风格Tool Calling智能助手) .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut PbootCMS 网站内容数量多导致访问慢?这些实用优化方案帮你提速! - 家兴网络技术工作室 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 网站漏洞怎么发现并修复?一篇实用指南(附完整流程) - 家兴网络技术工作室 开了 TUN 模式还是直连?90% 的人都踩过这个坑 Github日报|2026年04月12日 - AI一族 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术 Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模 MicroPython LVGL基础知识和概念:底层渲染与性能优化 - FreakStudio 数据库草图算法 Python 潮流周刊#146:CPython 引入 Rust 的进展 - 豌豆花下猫 最小生成树 - mofei1116 红日靶场七:从外网入口、容器逃逸到 AD 接管的完整利用链复盘 - YouDiscovered1t 分享四款开源且实用的 Kafka 管理工具 - 追逐时光者 vLLM 权重加载机制全解析:从挑战到理想架构 LCT 学习笔记 - ACehomoxue Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 当 AI Agent 把调用链拉长,延迟开始成为一门生意 conhost.exe 无法显示 U+2717 - 145a 太秀了,我把自己蒸馏成了 Skill!已开源 - 程序员鱼皮 ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑 基于 Ghostty 带有分割标签页和为 Claude 编程设计的通知终端 - BugShare AI 焊死入口:教育的“操作系统级”重塑 - 郝hai 初级Java开发工程师使用sql脚本编写代码的过程是简单而且不糊涂 - CoderOilStation Claude Code通关手册(六):MCP协议完全指南 - 暮色之狐 边框灯光环绕动画特效实现指南 - Newbe36524 开源:子木蒸馏版的 SEO 审计工具 seo-audit-skill v1.0 我所理解的Python元模型 【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite - 程序员Seven Claude 和 Codex 在审计 Skill 上性能差异探究 - ACai_sec AScript如何实现中文脚本引擎 - rockey627 【渗透测试】HTB Season10 Garfield 全过程wp - dynasty_chenzi Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革 树状数组正确性证明 - AC-wyr 你的 AI 焦虑,可能比 AI 本身更危险——ATM 机没有消灭银行柜员,但恐慌消灭了你的判断力 - 我没有三颗心脏 一个拉胯的分库分表方案有多绝望?整个部门都在救火! - 冰河团队 动态规划入门必学之走方格问题 - Ofnoname PostgREST 与 PostgreSQL 角色权限配置全解析(生产级实践) - SheepDog1998 使用 UEFI 图形输出协议 GOP 在屏幕上显示图像的方法 - 阿源- Claude Code通关手册(五):组建你的AI专家团队,子代理系统 - 暮色之狐 一个程序员到架构师的催婚路之感悟(整整10年后的催婚相亲感悟) - MisterLip 用 Agent Skill 自动生成工作周报 - 赵康
关于数据库服务器资源降配的效能分析
东山絮柳仔 · 2026-04-20 · via 博客园_首页

过去这一年,服务器成本经历了普遍且剧烈的上涨,其核心硬件--内存(DRAM)和固态硬盘(NAND/SSD)--同样经历了爆炸式增长。例如,30TB容量的企业级SSD在2025年第二季度至2026年第一季度期间,价格累计上涨了约 257%。硬件成本的上涨迫使许多企业重新评估其存储架构。DBA自然也会面对这对压力。

本文没有偏重一般分析报告常用的压测对比,而是基于线上运行效果的差异进行比较分析。

一. 案例

目前公司的订单中心是MySQL分片集群,其有128个分片组成,使用的固态硬盘是NVMe SSD。库存中SATA SSD比较富裕,NVMe SSD相对紧张,因而,需要DBA评估用SATA SSD替代NVMe SSD的可行性和风险。

直接看下两者的关键区别:

对比维度SATA SSDNVMe SSD
本质区别 使用为机械硬盘设计的旧协议 (AHCI) 使用为闪存设计的专属新协议 (NVMe)
通信接口 SATA 接口,带宽上限约 600 MB/s PCIe 接口,直连CPU,速度无上限
速度表现 顺序读写约 550 MB/s 顺序读写可达 3,500 ~ 14,000+ MB/s
响应延迟 较高(约 100 微秒) 极低(约 10-20 微秒)

其读/写性能差异很是很大的。

二.小批量验证

为了减少替换带来的影响,先从影响小的下手。先把其中4个分片的从节点替换为了SATA SSD,从节点有部分读业务,观察运行两周,其CPU、内存、IOWait、TPS、QPS等指标运行还是平稳的,也在合理的区间;和 NVMe SSD 横向相比,CPU、IOWait指标有增加,但是还可以,内存、TPS、QPS的变化不明显。

两周后,将这4个从节点升级成了主节点。

即目前 128套集群,有4套运行在 SATA SSD,124套 运行在了 NVMe SSD 上。

切换3个月来,业务系统运行还算正常。

三 分析与总结

如果只是从小批量试运行的效果来看,是令人满意的。可是不是就可以放心的替换呢?我们还做了以下分析。

3.1 分析慢查询

将这4个SATA SSD的服务器划为一组,再随机抽取5个 NVMe SSD划为对照组,分析慢查询的情况。

慢查询的数据量增长了3.7倍。

梳理的比较的格式如下:

比较 NVMe SSD SATA SSD
慢查询总数    
慢查询执行时间的中位数    
>=6S 慢查询的数量    
<6S  &&&>=4S 慢查询的数量    
<4S  &&&>=2S 慢查询的数量    

3.2 分析DDL操作

这个一定要分析总结,但也容易被忽略。因为DDL操作是MySQL 最耗资源的一种操作,当然也是运维的核心变更之一。系统使用的MySQL版本是5.7,所以选择什么样的DDL语句才能说明问题是关键。

知识补充

OperationIn PlaceRebuilds TablePermits Concurrent DMLOnly Modifies Metadata
Adding a column Yes Yes Yes* No
Dropping a column Yes Yes Yes No
Renaming a column Yes No Yes* Yes
Reordering columns Yes Yes Yes No
Setting a column default value Yes No Yes Yes
Changing the column data type No Yes No No
Extending VARCHAR column size Yes No Yes Yes
Dropping the column default value Yes No Yes Yes
Changing the auto-increment value Yes No Yes No*
Making a column NULL Yes Yes* Yes No
Making a column NOT NULL Yes* Yes* Yes No
Modifying the definition of an ENUM or SET column Yes No Yes Yes

涉及 Rebuilds Table 的操作都是一个高消耗的操作(消耗的资源比较多,同时执行时间也比较长)。

一定要注意的是 修改字段长度不一定不 Rebuilds Table ,其实它有一个零界值的。

The number of length bytes required by a VARCHAR column must remain the same. For VARCHAR columns of 0 to 255 bytes in size, one length byte is required to encode the value. For VARCHAR columns of 256 bytes in size or more, two length bytes are required. As a result, in-place ALTER TABLE only supports increasing VARCHAR column size from 0 to 255 bytes, or from 256 bytes to a greater size. In-place ALTER TABLE does not support increasing the size of a VARCHAR column from less than 256 bytes to a size equal to or greater than 256 bytes. In this case, the number of required length bytes changes from 1 to 2, which is only supported by a table copy (ALGORITHM=COPY). For example, attempting to change VARCHAR column size for a single byte character set from VARCHAR(255) to VARCHAR(256) using in-place ALTER TABLE returns this error:

ALTER TABLE tbl_name ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(256);
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change
column type INPLACE. Try ALGORITHM=COPY.

具体细节参照官网:https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html

言归正传,聚焦最近的DDL操作。

Review替换以来的所有DDL变更,发现 在所有的集群中,执行最慢的永远都是这4台SATA SSD的分片,并且执行时间明显的比其它组长很多。

以给150G左右的一张表的添加字段为例,两者相比(NVMe SSD  与 SATA SSD),其执行时间由原来的1.5 小时,增长到了3 小时以上。即DDL的执行时间增长了1.5倍,是原来的2.5倍。

再看添加索引操作。add index虽然无需Rebuilds Table,但是涉及新建index的结构,也是一个耗时操作,从中也能体现两者性能差异。果然如此,耗时最久的依然是SATA SSD的分片,执行时间大大增加了。

不利因素不仅仅是执行时间变本身。此外,DDL执行时间长,出问题的风险就变大。拿过往的经验举个例子,添加索引,

OperationIn PlaceRebuilds TablePermits Concurrent DMLOnly Modifies Metadata
Creating or adding a secondary index Yes No Yes No
Dropping an index Yes No Yes Yes
Renaming an index Yes No Yes Yes
Adding a FULLTEXT index Yes* No* No No
Adding a SPATIAL index Yes No No No
Changing the index type Yes No Yes Yes

按照官方的说明,添加索引无需Rebuilds Table,允许Permits Concurrent DML。但恰恰是这种操作,引发过两个故障。

故障1,因为add index ,会由大量的io操作,导致DB Server 下降,引发了大量的慢查询和事务堆积。

故障2,这次故障比故障1更严重,读写都不可用了。堆积了大量事务,正在运行的SQL(Threads_running)由平常的10多个快速增长到 600+,堆积无法处理---堆积的事务状态为【Waiting  for table flush】。不得不进行kill,Kill Add index 的事务后,系统立马恢复了。

故障2,难解。

3.3 对主从延迟的影响

类似于 慢查询 的现象,通过监控数据分析,发现SATA SSD 发生主从延迟的概率增加了很多,并且延迟值明显比对照组的要大。

主从延迟不仅会影响的业务的读写分离,还会影响主从切换,影响高可用。

3.4 其它影响

分析最近的一次OOM切换,恰恰发生在SATA SSD的节点上。此外,虽然orchestrator对其进行了主从切换,但中间有3个事务丢失,和业务确认后,DBA需手动补全。

OOM和数据丢失与性能的关系,还需要更多的理论解析和实践说明,但需留意。

四. 概况总结

从直观来看,资源降配看似对应用系统的影响不大,但对运维和高IO的操作来讲,会带来很大的挑战。

建议

(1)针对慢查询,请研发确认是否可以接受、是否可以优化改进SQL语句;

(2)针对DDL的耗时增加,需要评估是否可以接受,是否可以对MySQL版本进行升级,例如升级到8.0;

(3)细化监控、增加完善及时告警;如有异常,可以及时止损。

后记

这种境况,让我联想到“坐船渡河”。

求学时,初中在黄河东岸,老家在黄河西岸,平常来往都是通过浮桥。但汛期时,因为浮桥会影响水速,都要拆掉,这段时间过河,只能坐船。

坐过的船有小木船和大铁船。真正体验过小木船“随浪飘荡,起起伏伏”、“心提到嗓子眼”。

两种船都可以摆渡,都可以把人从这岸送到彼岸。但是,考虑到 安全性、稳定性、舒适性 等,大铁船慢慢完全替代了小木船。