下面从生产环境角度给你一份 Linux 下 MinIO 优化实践清单,按「系统 → 磁盘 → 网络 → MinIO 参数 → 架构」分层说明,适合单机 / 分布式 MinIO。
✅ XFS(首选)
❌ 不推荐 ext4(大文件/高并发性能差)
mkfs.xfs /dev/sdb
mount -o noatime,nodiratime /dev/sdb /data
推荐挂载参数:
noatime,nodiratime,nobarrier
nobarrier仅在你有 UPS / 企业级存储 时使用
编辑 /etc/sysctl.conf:
vm.swappiness = 1
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
fs.file-max = 1000000
生效:
sysctl -p
ulimit -n
建议 ≥ 65535
编辑 /etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
✅ 原则
❌ 不推荐:
查看:
cat /sys/block/sdb/queue/scheduler
推荐:
echo deadline > /sys/block/sdb/queue/scheduler
或(新内核):
echo mq-deadline > /sys/block/sdb/queue/scheduler
swapoff -a
✅ 推荐:
minio server /data{1..4}
MinIO 默认使用内存做缓存,不要限制过小。
建议:
MinIO 支持高并发,无需额外配置,但:
ethtool -L eth0 combined 8
开启 RSS:
ethtool -K eth0 rx on tx on
内网建议:
ip link set eth0 mtu 9000
默认开启,无需额外配置
✅ 推荐 EC: 4+4 或 8+8
如不使用:
可减少元数据压力
✅ 推荐:
| 场景 | 推荐 |
|---|---|
| 小规模 | 单机 4 盘 |
| 中规模 | 4 节点 × 4 盘 |
| 大规模 | 8 节点 × 8 盘 |
| 高可用 | 分布式 + LB |
示例(Nginx):
upstream minio {
least_conn;
server 192.168.1.1:9000;
server 192.168.1.2:9000;
}
mc admin info:9000/minio/v2/metrics)warp mixed --host=http://minio:9000
| 现象 | 原因 |
|---|---|
| 写入慢 | 单盘 / RAID |
| CPU 高 | 小文件过多 |
| 网络跑不满 | MTU / 网卡队列 |
| 随机 IO 差 | ext4 / 没用 XFS |
MinIO 优化 = 多盘 + XFS + 少系统干扰 + 分布式架构
如果你愿意,可以告诉我:
我可以直接给你一份 针对你环境的 MinIO 最优配置方案。