SSD性能下降源于健康度衰减、写入放大加剧、垃圾回收滞后或预留空间不足;需用smartctl查SMART信息、启用TRIM、监控I/O行为。

Linux系统中SSD性能下降,往往不是突然发生的,而是健康度缓慢衰减、写入放大加剧、垃圾回收滞后或预留空间被挤占的结果。及时检查与定期维护能显著延长SSD寿命并维持稳定性能。
查看SSD健康状态(SMART信息)
SMART是判断SSD剩余寿命最直接的依据。使用smartctl工具读取关键属性:
- 运行sudo smartctl -a /dev/nvme0n1(NVMe盘)或sudo smartctl -a /dev/sda(SATA盘),重点关注:
• Percentage Used(NVMe)或 Media_Wearout_Indicator(SATA):反映NAND擦写损耗,值越接近100%越需警惕;
• Available Spare 和 Available Spare Threshold(NVMe):可用备用块低于阈值即触发警告;
• Uncorrect、Reallocated_Sector_Ct:非零值可能预示早期故障。 - 若输出中显示“FAILING_NOW”或“Pre-fail”,应立即备份数据并准备更换。
确认是否启用TRIM并定期执行
TRIM让SSD及时获知哪些块已删除,避免写入时额外擦除,是维持长期性能的关键。未启用TRIM会导致性能随使用时间明显下滑。
- 检查是否启用:sudo systemctl is-enabled fstrim.timer(应返回enabled);
查看最近执行记录:sudo systemctl status fstrim.timer。 - 手动触发一次:sudo fstrim -v /(对根分区);
若提示“fstrim: /: the discard operation is not supported”,需确认:
• 文件系统挂载选项含discard(不推荐常开),或更稳妥地依赖fstrim.timer每周运行;
• NVMe盘默认支持,SATA SSD需确认固件及驱动兼容性。
监控写入放大与I/O行为
高写入放大(WAF)会加速磨损并拖慢响应。可通过以下方式定位异常源头:
- 用iostat -x 1观察await(I/O平均等待时间)、%util(设备忙时占比)和avgrq-sz(平均请求大小);
持续高await(>20ms)且avgrq-sz偏小(如 - 查进程级写入:iotop -o(仅显示实际I/O进程);
常见“隐形写入大户”包括:日志轮转(rsyslog、journald)、数据库WAL、频繁刷盘的缓存服务(如redis配置appendonly yes但未调优)。
优化系统配置降低SSD压力
部分默认设置对SSD并不友好,调整后可减少无效写入、延缓性能衰减:
-
禁用swap分区(若内存充足):SSD频繁swap会显著增加擦写次数;
临时关闭:sudo swapoff -a;永久禁用需注释/etc/fstab中swap行。 -
调整journald日志策略:限制日志大小和保存时间,避免持续写入:
编辑/etc/systemd/journald.conf,设置:
SystemMaxUse=128M
MaxRetentionSec=2week -
文件系统挂载选项建议(以ext4为例):
在/etc/fstab中添加noatime,discard(discard仅当确认SSD稳定支持时启用);
对XFS,使用attr2,inode64,swalloc提升大文件处理效率。



















