如何为特定进程分配带宽

Maj*_* DH -1 debian nginx ftp

我的生产 VPS 上有带有 Debian 操作系统的 nginx php 服务器,问题是 nginx 占用了我所有的带宽。

当我尝试使用 ftp 上传内容时,大多数情况下连接会超时。

今天我杀死了 nginx 进程并尝试使用 ftp 上传一些东西,它以稳定的速度和更快的连接工作。

所以问题是系统没有为 ftp 服务器分配足够的带宽来工作,除非我终止 nginx

知道如何修复/诊断问题吗?

小智 5

linux内核中有一个内置的流量整形器。您可以通过 tc 指令实现它。在你的情况下,我会推荐这个:

1)创建一个根指令

# tc qdisc add dev eth0 handle ffff: ingress
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到非常详尽的解释http://lartc.org/howto/