![如何为特定进程分配带宽](https://linux22.com/image/665850/%E5%A6%82%E4%BD%95%E4%B8%BA%E7%89%B9%E5%AE%9A%E8%BF%9B%E7%A8%8B%E5%88%86%E9%85%8D%E5%B8%A6%E5%AE%BD.png)
我的生产 VPS 上有搭载 Debian 操作系统的 nginx php 服务器,问题是 nginx 占用了我的所有带宽。
当我尝试使用 ftp 上传某些内容时,连接大多数时候都会超时。
今天我杀死了 nginx 进程并尝试使用 ftp 上传一些内容,速度稳定,连接速度更快。
因此,问题是系统没有为 ftp 服务器分配足够的带宽,除非我终止 nginx
知道如何修复/诊断该问题吗?
答案1
Linux 内核中有一个内置的流量整形器。您可以通过 tc 指令来实现它。对于您的情况,我建议您这样做:
1)创建根指令
# tc qdisc add dev eth0 handle ffff: ingress
2)创建两个流量类别的指令树(http 为 256k,ftp 为 64k)
#tc filter add dev eth0 parent ffff: protocol ip prio 50 \
u32 ip dport 80 0xffff \
police rate 256kbit burst 10k drop flowid :1
# tc filter add dev eth0 parent ffff: protocol ip prio 50 \
u32 ip dport 21 0xffff \
police rate 64kbit burst 10k drop flowid :1
您可以在这里找到非常详尽的解释http://lartc.org/howto/