在 CentOS 上运行的 MinIO,官方本身没有内建的“用户级/桶级限速”配置参数,但可以通过系统层或代理层来实现限速。下面按常用方案给你说明。
firewalld + tc(Linux 流量控制)限速(推荐)适合:对整个 MinIO 端口限速
默认:
9000(API)9001(Console)ss -lntp | grep minio
yum install -y iproute
假设网卡是 eth0
tc qdisc add dev eth0 root tbf \
rate 10mbit \
burst 32kbit \
latency 400ms
✅ 这样 MinIO 对外上传/下载速度被限制
tc qdisc del dev eth0 root
用 iptables + tc
# 标记 MinIO 流量
iptables -A OUTPUT -p tcp --sport 9000 -j MARK --set-mark 10
# 针对 mark 限速
tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:10 htb rate 10mbit
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 10 fw flowid 1:10
如果你是通过 Nginx → MinIO,可直接限速。
server {
listen 9000;
server_name minio.example.com;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
# 限速
limit_rate 5m;
}
}
✅ 优点:
❌ 缺点:
如果你用 Docker:
docker run -d \
--name minio \
-p 9000:9000 \
--blkio-weight 200 \
minio/minio
或使用:
--network-alias
配合 Docker network rate limit(第三方)
✅ MinIO SUBNET / Enterprise
社区版 不支持
| 场景 | 推荐方式 |
|---|---|
| 简单整体限速 | tc |
| Web 访问限速 | Nginx |
| 多租户严格限速 | MinIO 企业版 |
| Docker 环境 | 容器网络限速 |
如果你愿意,可以告诉我:
我可以给你精确到命令的配置。