在 CentOS 上提升 MinIO 读写速度
一 硬件与存储层优化
二 操作系统与网络调优
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
同时可提升系统级上限(/proc/sys/fs/file-max)。net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 5
执行 sysctl -p 生效。smp_affinity),并使用合适的 队列/队列数(如多队列网卡开启多队列),降低单核争用。三 MinIO 服务与 JVM 层优化
[Service]
LimitNOFILE=262144
LimitNPROC=65536
LimitMEMLOCK=infinity
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=StrongPassw0rd!"
ExecStart=/usr/local/bin/minio server /data --console-address ":9001"
Restart=always
修改后执行 systemctl daemon-reload && systemctl restart minio。Environment="MINIO_API_REQUESTS_DEADLINE=1800s"
Environment="MINIO_API_READ_DEADLINE=600s"
Environment="MINIO_API_WRITE_DEADLINE=600s"
Environment="MINIO_API_IDLE_TIMEOUT=300s"
Environment="MINIO_API_REQUEST_HEADER_BUF_SIZE=65536"
Environment="MINIO_API_REQUEST_BODY_BUF_SIZE=10485760"
四 基准测试与持续监控
五 快速检查清单
| 优化项 | 建议值或做法 | 验证方式 |
|---|---|---|
| 存储 | NVMe SSD/RAID 10/XFS | fio 顺序/随机读写 |
| 文件句柄 | nofile ≥ 65535 | ulimit -n / systemd LimitNOFILE |
| 网络队列 | 多队列网卡 + 中断绑核 | ethtool -l/-x,/proc/interrupts |
| 内核网络 | somaxconn、tcp_tw_reuse 等 | sysctl -p,netstat -s |
| MinIO 服务 | systemd 高 LimitNOFILE/LimitMEMLOCK | systemctl show minio |
| 超时与缓冲 | 读写/请求超时与缓冲适度增大 | 大对象上传稳定性 |
| 并发与缓存 | 多客户端并发;读多写少启用缓存 | mc 多线程压测 |
| 纠删码策略 | 写密集场景优先考虑副本策略 | 写吞吐与 CPU 观察 |