在我工作的公司,我们开始使用 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。