Ubuntu分区性能如何提升
小樊
36
2025-11-22 14:41:35
Ubuntu 分区与存储性能提升指南
一 分区布局与对齐
- 针对SSD:将访问频繁、写入密集的目录(如 /var、/tmp)与系统分区分离,便于独立调参与故障隔离;若追求极致顺序带宽,可将高频分区放在磁盘外侧柱面(LBA 低位),顺序吞吐通常更高。
- 针对HDD:把易碎片化或高写入的目录(如 /var、/tmp)单独分区,可减少根分区碎片与抖动;同样可利用外侧柱面提升顺序性能。
- 分区对齐:确保起始扇区对齐到4 KiB(或厂商建议的更大对齐),避免跨块写放大;现代安装器通常已默认对齐,可用
lsblk -o NAME,PHY-SeC 或 parted 检查。
- 预留空间:为 /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/nop 或 mq-deadline;
- HDD 使用 mq-deadline 或 bfq;
- 查看/临时设置:
cat /sys/block/sda/queue/scheduler 与 echo noop | sudo tee /sys/block/sda/queue/scheduler;
- 持久化:在 /etc/default/grub 的
GRUB_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/nop 或 mq-deadline;
- 将 /tmp、/var/tmp(可选 /var/log)放入 tmpfs;
vm.swappiness≈10(休眠需求除外)。
- 笔记本 + SSD(续航与安静):
- 尽量不分配或少分配 swap;
- 使用 tmpfs 减少写入;
- 保持适度空闲空间,延长 SSD 寿命。
- 服务器 + HDD:
- 将 /var、/tmp 单独分区;
- I/O 调度:mq-deadline 或 bfq;
- 适度增大 vm.swappiness(如 30–60)以利用页面缓存与避免 OOM;
- 结合日志与数据分离、定期维护保障稳定性。