1. 首页 > Linux教程 > 正文

Linux教程FG155-存储性能调优实战

内容大纲

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

1. 存储性能调优概述

存储性能调优是通过调整系统参数、选择合适的I/O调度器和文件系统,提高存储子系统的读写性能。调优需要根据工作负载特性进行针对性配置。

学习交流加群风哥QQ113257174

# 存储性能调优的关键点
# I/O调度器选择:根据工作负载选择合适的调度器
# 文件系统参数:调整文件系统挂载选项
# 块设备参数:优化块设备的读写队列和预读
# 存储缓存:配置适当的缓存策略

2. 磁盘I/O调度器优化

查看和设置磁盘I/O调度器。

更多视频教程www.fgedu.net.cn

# 磁盘I/O调度器优化

# 1. 查看当前I/O调度器
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[mq-deadline] none

# 2. 查看所有可用调度器
[root@localhost ~]# ls /sys/block/sda/queue/scheduler
/sys/block/sda/queue/scheduler

# 3. 设置I/O调度器为deadline
[root@localhost ~]# echo deadline > /sys/block/sda/queue/scheduler
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[deadline] mq-deadline none

# 4. 查看SSD的调度器
[root@localhost ~]# cat /sys/block/nvme0n1/queue/scheduler
[none] mq-deadline

# 5. 为SSD设置none调度器(SSD不需要调度器)
[root@localhost ~]# echo none > /sys/block/nvme0n1/queue/scheduler

更多学习教程公众号风哥教程itpux_com

3. 文件系统调优

调整文件系统挂载选项以提高性能。

# 文件系统调优

# 1. 查看当前挂载选项
[root@localhost ~]# mount | grep /data
/dev/mapper/vg0-data on /data type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

# 2. 重新挂载并添加性能优化选项
[root@localhost ~]# mount -o remount,noatime,nodiratime,allocsize=4M /data

# 3. 验证新的挂载选项
[root@localhost ~]# mount | grep /data
/dev/mapper/vg0-data on /data type xfs (rw,noatime,nodiratime,allocsize=4M,attr2,inode64,logbufs=8,logbsize=32k,noquota)

# 4. 调整ext4文件系统的挂载选项
[root@localhost ~]# mount -o remount,noatime,nodiratime,delalloc,data=writeback /backup

# 5. 验证ext4挂载选项
[root@localhost ~]# mount | grep /backup
/dev/sdb1 on /backup type ext4 (rw,noatime,nodiratime,delalloc,data=writeback)

风哥提示:

4. 块设备参数调优

调整块设备的读写队列和预读参数。

# 块设备参数调优

# 1. 查看当前块设备参数
[root@localhost ~]# cat /sys/block/sda/queue/nr_requests
128
[root@localhost ~]# cat /sys/block/sda/queue/read_ahead_kb
128

# 2. 增加请求队列深度
[root@localhost ~]# echo 256 > /sys/block/sda/queue/nr_requests
[root@localhost ~]# cat /sys/block/sda/queue/nr_requests
256

# 3. 增加预读大小
[root@localhost ~]# echo 1024 > /sys/block/sda/queue/read_ahead_kb
[root@localhost ~]# cat /sys/block/sda/queue/read_ahead_kb
1024

# 4. 启用块设备队列的合并
[root@localhost ~]# echo 1 > /sys/block/sda/queue/iosched/fifo_batch
[root@localhost ~]# cat /sys/block/sda/queue/iosched/fifo_batch
16

# 5. 调整SSD的参数
[root@localhost ~]# echo 0 > /sys/block/nvme0n1/queue/rotational
[root@localhost ~]# cat /sys/block/nvme0n1/queue/rotational
0

5. 存储缓存优化

调整虚拟内存和脏页参数以优化存储性能。

# 存储缓存优化

# 1. 查看当前虚拟内存参数
[root@localhost ~]# sysctl vm.swappiness
vm.swappiness = 30

# 2. 降低swappiness值(减少swap使用)
[root@localhost ~]# sysctl -w vm.swappiness=10
vm.swappiness = 10

# 3. 调整脏页参数
[root@localhost ~]# sysctl -w vm.dirty_background_ratio=5
vm.dirty_background_ratio = 5
[root@localhost ~]# sysctl -w vm.dirty_ratio=15
vm.dirty_ratio = 15

# 4. 调整脏页超时时间
[root@localhost ~]# sysctl -w vm.dirty_background_expire_centisecs=300
vm.dirty_background_expire_centisecs = 300
[root@localhost ~]# sysctl -w vm.dirty_expire_centisecs=3000
vm.dirty_expire_centisecs = 3000

# 5. 永久保存配置
[root@localhost ~]# cat >> /etc/sysctl.d/99-storage-tuning.conf << EOF vm.swappiness = 10 vm.dirty_background_ratio = 5 vm.dirty_ratio = 15 vm.dirty_background_expire_centisecs = 300 vm.dirty_expire_centisecs = 3000 EOF # 6. 应用配置 [root@localhost ~]# sysctl -p /etc/sysctl.d/99-storage-tuning.conf vm.swappiness = 10 vm.dirty_background_ratio = 5 vm.dirty_ratio = 15 vm.dirty_background_expire_centisecs = 300 vm.dirty_expire_centisecs = 3000

6. 实战案例

学习交流加群风哥微信: itpux-com

为数据库服务器进行存储性能调优。

# 实战案例:数据库服务器存储性能调优

# 1. 查看当前磁盘性能
[root@localhost ~]# iostat -x 1 3
Linux 5.14.0-362.el9.x86_64 (localhost.localdomain) 04/03/2026 _x86_64_ (4 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
2.50 0.00 1.25 15.00 0.00 81.25

Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 50.00 100.00 200.00 400.00 5.00 10.00 10.00 10.00 10.00 20.00 0.50 4.00 4.00 5.00 75.00

# 2. 设置I/O调度器为deadline(适合数据库)
[root@localhost ~]# echo deadline > /sys/block/sda/queue/scheduler

# 3. 增加请求队列深度
[root@localhost ~]# echo 512 > /sys/block/sda/queue/nr_requests

# 4. 增加预读大小
[root@localhost ~]# echo 2048 > /sys/block/sda/queue/read_ahead_kb

# 5. 重新挂载数据目录,添加性能选项
[root@localhost ~]# mount -o remount,noatime,nodiratime,allocsize=1G /data

# 6. 调整虚拟内存参数
[root@localhost ~]# sysctl -w vm.swappiness=1
vm.swappiness = 1
[root@localhost ~]# sysctl -w vm.dirty_background_ratio=3
vm.dirty_background_ratio = 3
[root@localhost ~]# sysctl -w vm.dirty_ratio=10
vm.dirty_ratio = 10

# 7. 调整脏页超时
[root@localhost ~]# sysctl -w vm.dirty_background_expire_centisecs=500
vm.dirty_background_expire_centisecs = 500
[root@localhost ~]# sysctl -w vm.dirty_expire_centisecs=3000
vm.dirty_expire_centisecs = 3000

# 8. 保存配置
[root@localhost ~]# cat > /etc/sysctl.d/99-database-storage.conf << EOF vm.swappiness = 1 vm.dirty_background_ratio = 3 vm.dirty_ratio = 10 vm.dirty_background_expire_centisecs = 500 vm.dirty_expire_centisecs = 3000 EOF # 9. 创建udev规则自动设置I/O调度器 [root@localhost ~]# cat > /etc/udev/rules.d/60-scheduler.rules << EOF ACTION=="add|change", KERNEL=="sda", ATTR{queue/scheduler}=="deadline" ACTION=="add|change", KERNEL=="sda", ATTR{queue/nr_requests}="512" ACTION=="add|change", KERNEL=="sda", ATTR{queue/read_ahead_kb}="2048" EOF # 10. 重新加载udev规则 [root@localhost ~]# udevadm control --reload-rules [root@localhost ~]# udevadm trigger # 11. 验证配置 [root@localhost ~]# cat /sys/block/sda/queue/scheduler [deadline] mq-deadline none [root@localhost ~]# cat /sys/block/sda/queue/nr_requests 512 [root@localhost ~]# cat /sys/block/sda/queue/read_ahead_kb 2048 # 12. 再次查看磁盘性能 [root@localhost ~]# iostat -x 1 3 Linux 5.14.0-362.el9.x86_64 (localhost.localdomain) 04/03/2026 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 2.50 0.00 1.25 10.00 0.00 86.25 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util sda 50.00 100.00 200.00 400.00 10.00 20.00 20.00 20.00 8.00 15.00 0.40 4.00 4.00 4.00 60.00

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息