标签: tc

5
推荐指数
1
解决办法
6470
查看次数

nginx 在高峰时段破坏 sftp 流量 - tc 是答案吗?

这可能是我之前(未回答)问题的延续,因为根本原因可能是相同的。

我有一台运行着 nginx 和 sshd 的 Linux 服务器。它位于共享的 100mbit/s 未计量链路上。在“高峰时段”(基本上是在美国的白天),sftp 性能变得非常糟糕,有时在我什至无法连接之前就超时了。ssh 不受影响。我知道它是 nginx,因为当我停止 nginx 时,sftp 的问题会立即消失。但是,在这些“剧集”期间,nginx 本身基本上具有零延迟。

这是我的服务器长期存在的问题,我最近开始着手彻底解决它。昨天我开始怀疑 http 流量的绝对数量加上由于缺乏上行带宽引起的更大的延迟正在排挤我的 sftp 流量。我曾经tc添加一些优先级:

/sbin/tc qdisc add dev eth1 root handle 1: prio 
/sbin/tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dport 22 0xffff flowid 1:1
/sbin/tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 22 0xffff flowid 1:1
/sbin/tc filter add dev eth1 protocol ip …
Run Code Online (Sandbox Code Playgroud)

linux nginx qos sftp tc

5
推荐指数
1
解决办法
1164
查看次数

lxc 带宽控制使用 tc

我正在尝试限制容器内的带宽。我曾尝试使用以下命令,但我认为它没有生效。

cd /sys/fs/cgroup/net_cls/
echo 0x1001 > A/net_cls.classid   # 10:1
echo 0x1002 > B/net_cls.classid   # 10:2
tc qdisc add dev eth0 root \
           handle 10: htb
tc class add dev eth0 parent 10: \
           classid 10:1 htb rate 40mbit
tc class add dev eth0 parent 10: \
           classid 10:2 htb rate 30mbit
tc filter add dev eth0 parent 10: \
           protocol ip prio 10 \
           handle 1: cgroup
Run Code Online (Sandbox Code Playgroud)

这里 A 和 B 是使用此命令创建的容器。

lxc-execute -n A -f configfile /bin/bash
lxc-execute -n …
Run Code Online (Sandbox Code Playgroud)

networking bandwidth tc bandwidth-control lxc

5
推荐指数
1
解决办法
3736
查看次数

Linux 流量控制:qdisc mq

在我的 Linux 系统上,我看到了这个:

# ip link list
....
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
....
Run Code Online (Sandbox Code Playgroud)

什么qdisc mq?在http://lartc.org/lartc.html 中,我只找到了有关 IMQ 的信息。

在 howto 的示例中也有qdisc noopqdisc noqueue,但没有关于它们的详细信息。

networking linux tc

5
推荐指数
1
解决办法
2万
查看次数

如何限制 CentOS 服务器上的上传/下载带宽?

如何限制 CentOS 服务器上的上传和下载带宽?这是一个带有单一界面的盒子,eth0. 理想情况下,我想要一个命令行解决方案(我一直在尝试使用tc),我可以在脚本中轻松打开和关闭它。

到目前为止,我一直在尝试做类似的事情,tc filter add dev eth0 protocol ip prio 50 u32 police rate 100kbit burst 10240 drop但显然我缺少很多知识和信息。有人可以帮助快速单线吗?

非常感谢,丹

linux traffic-shaping tc

5
推荐指数
1
解决办法
1万
查看次数

tc命令requeues的含义

我运行了下面的tc命令,它输出了高数字的重新排队,你知道这个重新排队意味着什么吗?顺便说一句,它随着时间的推移不断增加。

我看了一下man tc,但没有发现任何东西。

$ tc -s qdisc ls dev em1
 qdisc mq 0: root
 Sent 1760345587651 bytes 1790125037 pkt (dropped 0, overlimits 0 **requeues 135812** ) 
 rate 0bit 0pps backlog 0b 0p **requeues 135812**
Run Code Online (Sandbox Code Playgroud)

linux command tc

5
推荐指数
1
解决办法
4074
查看次数

使用 tc qdiscs 进行带宽限制

我试图限制一个简单的 iperf 服务器和客户端之间的带宽,使用第三台被动机器作为桥梁。在没有干扰的情况下,iperf 返回约 90 Mbits/sec 的带宽。我的目标是创建一个根 qdisc,将所有未分类的流量(所有内容)发送到子 HTB 类,在那里设置我的带宽,然后路由到叶 qdisc,一旦我开始工作,将在其中设置额外的 tc 参数。我的实现很简短:

sudo tc qdisc add dev $interface root handle 1: htb default 10

sudo tc class add dev $interface parent 1:0 classid 1:10 htb rate $bandwidth burst $burst

sudo tc qdisc add dev $interface parent 1:10 handle 10:0 netem #other stuff goes here
Run Code Online (Sandbox Code Playgroud)

当这个 bash 脚本在带有$interface = eth1, $bandwidth = 500kbps,的网桥上实现时$burst = 15k,我看到 iperf 带宽有所减少,但还没有接近规定值(通常约为 5Mbps)。

我的脚本中有错误吗?我是否滥用了突发变量?请帮忙。

更新:经过进一步调查,我发现这种流量控制在应用于与 SERVER 接口的以太网卡时工作正常,但是当将相同的命令应用于 CLIENT 端时会出现问题。当整个设置颠倒时也是如此。

bash iperf traffic-shaping tc htb

5
推荐指数
1
解决办法
863
查看次数

试图了解 HTB 子类比率

我目前正在研究使用 Ubuntu 服务器而不是我的消费者级路由器来提供 QoS 的机会。我已经阅读了很多关于tc和 HTB 排队规则的资源——这看起来是我需要满足我的 QoS 需求的资源,即使现在大部分看起来很清楚,仍然有一些东西让我在子类率方面感到困扰。

让我们来看看这个示例配置作为这个问题的答案:

tc class add dev eth0 parent 1: classid 1:1 htb rate 90kbps ceil 90kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30kbps ceil 60kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 30kbps ceil 60kbps
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 30kbps ceil 60kbps
Run Code Online (Sandbox Code Playgroud)

当您知道tc 的工作原理时,这非常简单:三个子类都保证有 30kbps 的带宽,但允许从其父类借用 30 kbps 以上的可用带宽(30 + …

traffic-shaping tc htb

5
推荐指数
1
解决办法
1019
查看次数

Debian7 和 tc qdisc 问题:RTNETLINK 答案:没有这样的文件或目录

我已经搜索了几天,但找不到解决我的问题的方法。

我有一个运行 Debian 7 的 VPS,我有 root 访问权限。

我正在尝试添加一些流量整形(使用 HTB),所以我尝试输入的第一行是这样的:

tc qdisc add dev tun0 root handle 1: htb default 10
Run Code Online (Sandbox Code Playgroud)

但不知何故它似乎是错误的,因为我收到以下错误:

RTNETLINK answers: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的 ifconfig 显示了一个接口 tun0,所以它存在。无论如何,我也尝试过 venet0 并且失败并出现相同的错误。

当我这样做时,tc qdisc list我只有以下规则:

qdisc pfifo_fast 0: dev tun0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

我真的找不到哪里出了问题。

注意:我升级了包 iproute(根据 Debian 的文档,它是 tc 所在的位置),但它并没有做得更好。

debian iptables traffic-shaping tc htb

5
推荐指数
1
解决办法
2万
查看次数

使用`tc netem` 的网络整形似乎不起作用

我试图在 Ubuntu 16.06 机器上简单地延迟针对特定 IP 地址的流量,但没有运气。有丰富的资源为这个 这个 这个是我研究。我最终得到了这两组命令,这些命令都不起作用:

tc qdisc add dev eth0 root handle 1: prio
tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 100ms
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 172.19.0.2/32 flowid 1:1
Run Code Online (Sandbox Code Playgroud)

- 或者 -

tc qdisc add dev eth0 root handle 1: prio priomap 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 …
Run Code Online (Sandbox Code Playgroud)

networking linux ubuntu tc

5
推荐指数
1
解决办法
3442
查看次数