温馨提示×

Linux分区怎样优化性能

小樊
46
2025-11-14 10:01:06
栏目: 智能运维

Linux 分区性能优化实用指南

一 分区布局与对齐

  • 进行分区对齐到物理扇区边界,减少跨扇区访问带来的额外寻道与合并开销。使用 parted 时可按扇区或百分比精确控制起止位置,例如:parted /dev/sdx mkpart primary 0% 10GiB;创建后用 fdisk -l 检查起始扇区是否对齐。对齐良好能显著提升顺序与随机 I/O 性能。
  • 规划分区顺序与热点目录:机械盘外圈(LBA 低位)线速度更高,可将访问频繁、吞吐敏感的分区(如 /home、/var)放在磁盘前端;对多盘环境,将高负载数据分散到不同物理盘,降低单盘争用。
  • 适度预留未分区空间(如 5%–10%),便于后续扩容、创建快照或新分区,避免后期被迫移动分区带来的停机与性能风险。
  • 需要灵活扩容与在线调整的场景优先采用 LVM,减少因分区变更导致的停机与数据迁移成本。

二 文件系统选择与挂载参数

  • 按负载选择文件系统:高并发、大文件、吞吐优先可选 XFS;需要快照、校验与写时复制可选 Btrfs;通用场景 ext4 成熟稳定。示例:mkfs.xfs /dev/sdXmkfs.btrfs /dev/sdX
  • 降低元数据写入开销:挂载时优先使用 noatime(必要时用 nodiratime)以减少访问时间更新,典型挂载选项:defaults,noatime,nodiratime
  • 提升写入合并与顺序性:根据负载调节 vm.dirty_ratiovm.dirty_background_ratio(如 echo 10 > /proc/sys/vm/dirty_ratioecho 5 > /proc/sys/vm/dirty_background_ratio),在不影响稳定性的前提下减少小 I/O 抖动与回写风暴。
  • 块大小与保留空间(ext 系列):大文件为主可适当增大块大小(如 4 KiB 及以上);减少根分区保留空间(如 mke2fs -b 4096 -m 1 /dev/sdX)以释放更多可用空间(默认保留 5% 往往偏大)。

三 交换分区与 I O 调度

  • 多盘并行 Swap:在 /etc/fstab 中为多个 swap 分区设置相同优先级(如 pri=5),内核可并行使用,提高换页吞吐:/dev/sda2 swap swap defaults,pri=5 0 0/dev/sdb2 swap swap defaults,pri=5 0 0
  • 适度使用 Swap:即便内存充足,服务器仍建议保留一定 swap,用于应对突发峰值、休眠或内存压力下的稳定退化。
  • I/O 调度器:按设备选择调度器(SSD 常用 none/mq-deadline,机械盘可用 cfqbfq),示例:echo cfq > /sys/block/sda/queue/scheduler
  • 队列与预读:适当增大 nr_requests(如由 128 提升到 512)可提升合并与吞吐;顺序读场景增大 read_ahead_kb(可用 blockdev --setra 设置)以减少寻道,示例:blockdev --setra 512 /dev/sda(单位为扇区)。

四 监控验证与维护

  • 基准与体检:使用 hdparm -tT /dev/sdX 测试磁盘吞吐;用 iostat -x 1vmstat 1sar -d 观察 IOPS、吞吐、队列、利用率与脏页情况;用 df -hdu -sh 检查空间占用与热点目录。
  • 碎片与整理:并非所有文件系统都需要或支持碎片整理;如 XFS 提供在线整理工具(如 xfs_fsr),而 ext4 一般不推荐常规碎片整理,优先通过合理分区与挂载参数避免碎片产生。
  • 变更流程:任何分区/文件系统/调度参数的调整务必在备份后实施,并在灰度或维护窗口内验证性能与稳定性。

0