1.
选购与初步检查
- 步骤1:选择香港机房和硬件。优先选择带 NVMe/企业级 SATA SSD 的实例,确认是否为独立盘或云盘(云盘可能有厂商层缓存)。
- 步骤2:开机后检查设备名与固件:lsblk; sudo nvme list(NVMe); sudo hdparm -I /dev/sdX(SATA)。记录型号与固件版本,若厂商有固件更新,依照厂商说明升级。
2.
分区与对齐(关键)
- 步骤1:使用 parted 创建 GPT 分区表并确保 1MiB 对齐:sudo parted /dev/sdX mklabel gpt; sudo parted -a optimal /dev/sdX mkpart primary 1MiB 100% .
- 步骤2:确认对齐:sudo parted /dev/sdX align-check optimal 1。若返回 OK 即为对齐。
3.
创建文件系统(ext4/xfs 推荐)
- ext4 示例:sudo mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdX1
- XFS 示例(适合大 IO):sudo mkfs.xfs -f /dev/sdX1
- 注意:不要在创建时使用 discard(避免潜在性能问题),改用定时 fstrim。
4.
挂载选项与 fstab 配置
- 编辑 /etc/fstab,加入 noatime,nodiratime,commit=60 等:/dev/sdX1 / ext4 defaults,noatime,nodiratime,discard=off,errors=remount-ro 0 1
- 若为 NVMe,考虑使用 nodelalloc 或适配文件系统参数(依据测试结果调整)。
5.
启用并定时 TRIM(推荐 fstrim 周期)
- 临时执行:sudo fstrim -v /
- 添加定时任务:sudo systemctl enable fstrim.timer(Debian/Ubuntu/CentOS 7+ 支持 systemd 的均可)。确认 sudo systemctl status fstrim.timer。
6.
I/O 调度与内核驱动
- NVMe:使用 noop 或 none(多队列设备):echo mq-deadline | sudo tee /sys/block/nvme0n1/queue/scheduler 或 echo none。推荐 mq-deadline 或 none,要以 fio 压测为准。
- SATA:对于单队列设备,使用 noop 或 deadline。修改后可永久写入 GRUB 或 udev 规则。
7.
性能基准与调优(fio 测试流程)
- 安装 fio:sudo apt install fio 或 sudo yum install fio。
- 随机读写测试命令(4K 随机读):sudo fio --name=randread --ioengine=libaio --direct=1 --bs=4k --iodepth=32 --rw=randread --numjobs=1 --size=1G --runtime=60 --group_reporting --filename=/dev/sdX1。记录 IOPS 和延迟,用于比较不同调度器与 mount 参数。
8.
内核网络与系统内存优化
- 调整 swappiness 与 vm.vfs_cache_pressure:在 /etc/sysctl.conf 添加 vm.swappiness=10 vm.vfs_cache_pressure=50,然后 sudo sysctl -p。
- TCP 调优示例:在 sysctl.conf 添加 net.core.netdev_max_backlog=2500 net.core.somaxconn=1024 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=15,执行 sudo sysctl -p。
9.
服务精简与监控
- 步骤:列出启动服务 systemctl list-unit-files --type=service,禁用不必要服务 sudo systemctl disable --now
。
- 部署监控:安装 iotop、dstat、collectd 或 Prometheus Node Exporter,用于长期观察 I/O/CPU/内存变化,及时回退不合理设置。
10.
问:香港服务器使用 SSD 时最常见的性能瓶颈是什么?
答:常见瓶颈包括分区未对齐、使用不当的 I/O 调度器、未启用或错误配置 TRIM、文件系统挂载参数不当以及云厂商层的缓存/限速。通过对齐分区、选择合适调度器、定期 fstrim、设置 noatime 并做 fio 基准测试可定位并缓解。
11.
问:如何在云主机上安全开启 TRIM?
答:优先使用 fstrim 定时器而非在 fstab 写入 discard。执行 sudo fstrim -v / 验证可用性,然后启用 systemd 的 fstrim.timer(sudo systemctl enable --now fstrim.timer)。若云厂商不支持 TRIM,则不要启用,以免出现数据损坏。
12.
问:SSD 优化有哪些必须谨慎的操作?
答:谨慎项包括强制关闭写缓存、误用 discard 导致延迟或厂商层问题、随意修改固件以及在生产环境直接变更 I/O 调度器而不做回滚方案。任何改动先在测试环境用 fio 做压测并记录基线。
来源:香港服务器配置介绍图解 SSD硬盘与系统优化实战要点