温馨提示×

Ubuntu分区性能如何提升

小樊
36
2025-11-22 14:41:35
栏目: 智能运维

Ubuntu 分区与存储性能提升指南

一 分区布局与对齐

  • 针对SSD:将访问频繁、写入密集的目录(如 /var、/tmp)与系统分区分离,便于独立调参与故障隔离;若追求极致顺序带宽,可将高频分区放在磁盘外侧柱面(LBA 低位),顺序吞吐通常更高。
  • 针对HDD:把易碎片化或高写入的目录(如 /var、/tmp)单独分区,可减少根分区碎片与抖动;同样可利用外侧柱面提升顺序性能。
  • 分区对齐:确保起始扇区对齐到4 KiB(或厂商建议的更大对齐),避免跨块写放大;现代安装器通常已默认对齐,可用 lsblk -o NAME,PHY-SeCparted 检查。
  • 预留空间:为 /home 或数据盘预留**5%–10%**空闲,有助于文件系统分配与磨损均衡(SSD)。

二 挂载选项与 I/O 调度

  • 推荐的基础挂载选项(示例为 ext4):
    • 使用 noatime(或 relatime)减少访问时间更新;
    • 启用 discard(或采用周期性 fstrim)以进行垃圾回收;
    • 示例 fstab 行:UUID=<id> / ext4 defaults,noatime,discard 0 1
  • 验证与调整:
    • 修改后执行 sudo mount -o remount / 生效;
    • 查看挂载选项:mount | grep noatime
    • 查看 TRIM 支持:sudo hdparm -I /dev/sda | grep "TRIM supported"
    • 周期性 TRIM(更稳妥):sudo systemctl enable --now fstrim.timer
  • I/O 调度器:
    • SSD 优先使用 none/nopmq-deadline
    • HDD 使用 mq-deadlinebfq
    • 查看/临时设置:cat /sys/block/sda/queue/schedulerecho noop | sudo tee /sys/block/sda/queue/scheduler
    • 持久化:在 /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT 中加入 elevator=none(或 mq-deadline),然后 sudo update-grub

三 内存盘与 swap 策略

  • 将易变目录放入内存盘(tmpfs):在 /etc/fstab 添加
    • tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    • tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
    • 可选:tmpfs /var/log tmpfs defaults,noatime,mode=1777,size=100M 0 0(限制大小,避免日志撑满内存)
  • 浏览器等应用可将缓存指向 /tmp(或设置环境变量);注意内存紧张时可能受限。
  • swap 与 vm.swappiness:
    • 桌面环境且内存充足(如 ≥8 GB)可少分配或不分配 swap;如需休眠则保留 swap 分区/文件;
    • 降低换出倾向:echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf(范围 0–100,值越小越倾向使用物理内存);
    • 查看当前值:cat /proc/sys/vm/swappiness

四 文件系统与维护

  • 选择 ext4 作为通用首选;若极端追求写入寿命且能接受断电风险,可在已卸载的分区上关闭日志:
    • sudo tune2fs -O ^has_journal /dev/sda1 && sudo e2fsck -f /dev/sda1
    • 验证:dmesg | grep EXT4(应出现 “mounted filesystem without journal”);恢复日志:tune2fs -O has_journal /dev/sda1
  • 定期维护:
    • 启用并验证 fstrim.timer 的周期性 TRIM;
    • 适度留出空闲空间(如 5%–10%),有助于文件系统分配与 SSD 磨损均衡;
    • 避免过度分区导致管理复杂与空间碎片。

五 场景化配置建议

  • 桌面 + SSD:
    • 分区://home(可选 /var 单独分区);
    • 挂载:noatime、(建议)discard 或启用 fstrim.timer
    • I/O 调度:none/nopmq-deadline
    • /tmp、/var/tmp(可选 /var/log)放入 tmpfs
    • vm.swappiness≈10(休眠需求除外)。
  • 笔记本 + SSD(续航与安静):
    • 尽量不分配或少分配 swap;
    • 使用 tmpfs 减少写入;
    • 保持适度空闲空间,延长 SSD 寿命。
  • 服务器 + HDD:
    • /var、/tmp 单独分区;
    • I/O 调度:mq-deadlinebfq
    • 适度增大 vm.swappiness(如 30–60)以利用页面缓存与避免 OOM;
    • 结合日志与数据分离、定期维护保障稳定性。

0