分享马尼拉服务器从 HDD 迁移到 NVMe SSD 的存储优化实战,IOPS 提升 20 倍。
存储性能直接影响数据库和应用性能。本文分享马尼拉服务器存储优化实战。
问题一:数据库查询慢 表现:数据库查询延迟高,IO 等待严重。 可能原因:HDD 磁盘 IOPS 不足;随机 IO 性能差。 排查步骤:iostat 看 %util 和 await;检查磁盘类型。 快速修复:迁移到 NVMe SSD,IOPS 从 200 提升到 50000+。
问题二:大文件读写慢 表现:上传下载大文件速度慢,视频处理慢。 可能原因:HDD 顺序读写只有 100-200MB/s。 排查步骤:dd 测试磁盘读写速度。 快速修复:NVMe SSD 顺序读写 2-3GB/s。
问题三:并发 IO 冲突 表现:多任务同时读写时性能骤降。 可能原因:HDD 磁头寻道慢,并发性能差。 排查步骤:iostat 看 avgqu-sz 和 await。 快速修复:NVMe 支持高并发 IO。
问题四:磁盘碎片导致性能下降 表现:长期运行后磁盘性能下降。 可能原因:HDD 文件碎片化。 排查步骤:查看磁盘碎片率。 快速修复:SSD 无碎片问题;定期优化。
问题五:数据库日志写入瓶颈 表现:WAL/binlog 写入慢,影响事务。 可能原因:日志写在 HDD 上。 排查步骤:分析慢查询和 IO 等待。 快速修复:日志和数据分离,日志用更快的磁盘。
NVMe 迁移步骤 1) 评估:确认当前 IO 瓶颈,测试 NVMe 性能 2) 规划:分区方案、文件系统、迁移时间 3) 备份:完整备份数据 4) 迁移:rsync 或 dd 迁移数据 5) 切换:修改 fstab,重启验证 6) 优化:调整文件系统参数、IO 调度器
文件系统优化 1) XFS:适合大文件和高并发 2) noatime:禁用访问时间更新 3) discard:SSD 自动 TRIM 4) 增大 inode:大量小文件场景 5) 合理 block size
IO 调度器 1) HDD:用 deadline 或 cfq 2) SSD:用 none 或 noop 3) NVMe:默认 none,无需调整
存储分层 1) 热数据:NVMe SSD,高性能 2) 温数据:SATA SSD,性价比 3) 冷数据:HDD,大容量低成本 4) 归档:对象存储或磁带
效果对比 | 指标 | HDD | SATA SSD | NVMe SSD | | --- | --- | --- | --- | | 随机读 IOPS | 200 | 10000 | 500000 | | 顺序读 MB/s | 150 | 500 | 3000 | | 延迟 ms | 10-20 | 0.1 | 0.01 | | 并发能力 | 低 | 中 | 高 |
注意事项 1) NVMe 价格较高,评估性价比 2) 确保主板和系统支持 NVMe 3) 备份数据,迁移有风险 4) 监控磁盘健康(SMART) 5) 定期 TRIM,保持性能
总结:存储是系统性能的关键瓶颈。NVMe SSD 相比 HDD 有数量级的性能提升,特别是数据库和高 IO 场景。投资 NVMe 是性价比最高的性能优化之一。