数据库 (MySQL) 和 SSD 生命周期 - 对数据库的“大量”写入

数据库 (MySQL) 和 SSD 生命周期 - 对数据库的“大量”写入

在我工作的公司,我们开始使用 SSD 来存储内部 3 GB MySQL 数据库

性能上的差异很大,这很好。

我担心的是SSD的使用寿命

对数据库的写入操作每周 7 天、每天 24 小时进行,读取操作很少。

我是否应该担心 SSD 的寿命?

  • 数据库(二进制文件)大小为 3 GB,MySQL,InnoDB 表
  • 硬盘大小为 250 GB (RAID 1)
  • 我们每周 7 天、每天 24 小时每分钟进行大约 100 次更新/插入
  • 我们每周 7 天、每天 24 小时每分钟执行大约 10-20 行更新/插入

更新:(更多数据)

  • 正在使用的 SSD:三星 250GB 840 EvoSATA III
  • 软件 raid (mdadm)
  • 系统:CentOS 6.4
  • MySQL 版本:5.4

更新 2:

  • 没有执行 TRUNCATE 查询
  • 每日统计数据:大量更新 (>300k)、< 50 个删除、相当多的插入,因为数据库每天增长约 7-10 MB

答案1

10 MB/天 = 4 GB/年。如果使用 ext4 格式化并启用 TRIM,SSD 上没有保存任何其他数据(尤其是交换区),则需要大约 200GB/4GB*2 = 100 年才能完成一次(!)完整的 RW 周期,SSD 可以承受数千次。

按照一般建议,启用 TRIM 就不会出现问题:https://wiki.archlinux.org/index.php/Solid_State_Drives

在你的情况下,问题可能出在 RAID 上。Centos 6.4 中的 LVM 通过issue_discards选项支持 TRIM。mdraid /etc/lvm/lvm.conf- 不支持(请参阅RHEL 固态磁盘部署指南

总体来说,老实说,我从未听说过由于内部重新分配储备耗尽而导致 SSD 死机,我只在 Linus Torvald 的 SSD 死机时读过一次(https://plus.google.com/+LinusTorvalds/posts/V81f6d7QK9j我使用一些旧的(可能是第一代)型号作为服务器上带有 HW RAID 的块缓存,并且刷新率要高得多,运行了好几年。

答案2

对于其他想知道的人来说,如果不支持 TRIM,840 EVO 驱动器的性能会大幅下降。我们的服务器全天候写入,性能大幅下降到驱动器刚出厂时的 10% 左右。

我对我们的托管服务提供商非常不满,因为他们在生产服务器中安装了劣质的消费级硬盘。好的 SSD 是 Intel S3500/S3700。

相关内容