AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 26720
In Process
nobodyfamous
nobodyfamous
Asked: 2009-06-17 08:54:56 +0800 CST2009-06-17 08:54:56 +0800 CST 2009-06-17 08:54:56 +0800 CST

如何使用绑定驱动程序在 Linux 上实现 2 Gb 的总吞吐量?

  • 772

对于这个应用程序,我不太关心高可用性,而不是总吞吐量。我在服务器端有一个 IP 地址,我希望能够从服务器发送超过 1 Gb 的流量。服务器有两个 1 Gb 卡并连接到一对交换机。该应用程序涉及世界各地数以千计的远程客户端连接到服务器(即不是本地网络)。

目前,使用模式 5 (balance-tlb) 设置绑定,但结果是每个端口的吞吐量不会超过 500Mbit/s。我怎样才能超过这个限制?请假设我无法访问交换机,因此无法实现 802.3ad。

(我希望添加“bonding”标签,但我无法添加新标签,所以是“teaming”。)

linux bonding gigabit-ethernet
  • 4 4 个回答
  • 15680 Views

4 个回答

  • Voted
  1. Kevin Kuphal
    2009-06-17T09:06:11+08:002009-06-17T09:06:11+08:00

    如果没有交换机级别的合作,您不太可能实现 2 Gb,即使这样,仅使用单个 IP 源/目标组合也可能很难。大多数团队都设置了 IP 哈希,它为每个源/目标分配一个 NIC 路径。因此,您只会获得 1 千兆位。有轮询方案,但您经常会发现数据包到达时出现乱序,除非主机和目的地都支持该方案,否则会导致它不受欢迎。

    • 6
  2. nik
    2009-06-17T09:23:32+08:002009-06-17T09:23:32+08:00

    您将需要在交换机端口上进行端口聚合(需要聚合连接到机器上 2 个千兆端口的接入交换机的两个端口)。但是,一旦实现,您应该接近 2Gbps 路径(受机器能力限制)。

    通过交换机上的端口聚合与绑定驱动程序的逻辑 2Gbps 端口匹配,您将使用机器上只有一个 IP 地址的多路复用冗余路径。

    我现在看到一些有趣的笔记,在这里。

    Linux 绑定驱动程序的这一美妙特性有一个阴暗面——它只适用于允许在接口打开时更改 MAC 地址的网络接口。balance-alb 模式依赖于快速的 ARP 欺骗,通过动态重写 MAC 地址来欺骗内核,使其认为两个物理接口是一个。所以接口的驱动程序必须支持这一点,而其中许多不支持。

    但这并不是绑定驱动程序所能做的全部。模式选项为您提供七种选择,您不必担心界面兼容性。但是,您确实需要考虑您的交换机支持什么。balance-rr、balance-xor 和广播模式需要将交换机端口组合在一起。这有各种不同的名称,因此请查找“中继分组”、“以太通道”、“端口聚合”或类似的名称。802.3ad 要求交换机支持 802.3ad。

    • 5
  3. Matt Simmons
    2009-06-17T09:23:15+08:002009-06-17T09:23:15+08:00

    首先,您可能知道您实际上永远不会达到 2Gb/s。TCP/IP 的开销会将您限制在最大值的大约 90%。

    第二,即使你使用 TCP 卸载引擎,第 3 层之上的堆栈肯定会影响瓶颈所在。换句话说,你是如何传输数据的?我可以有 10Gb/s 网卡和它们之间的交叉,如果我在 ssh 隧道上使用 rsync,我不会超过几百 Mb/s。

    关于拓扑,您还能告诉我们什么?你说服务器连接到几个交换机,远程客户端遍布世界各地。您是否有 > 500Mb/s(聚合)的 WAN 连接?

    • 3
  4. nobodyfamous
    2009-06-19T08:27:58+08:002009-06-19T08:27:58+08:00

    我们并没有真正解决这个问题。我们所做的是设置两台服务器,一台在每个接口上绑定一个 IP,然后按照此处的说明强制流量从它进入的端口流出:

    http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/

    针对我们的情况稍作修改。在本例中,网关为 192.168.0.1,服务器的 IP 分别为 eth0 和 eth1 上的 192.168.0.211 和 192.168.0.212:

    printf "1\tuplink0\n" >> /etc/iproute2/rt_tables
    printf "2\tuplink1\n" >> /etc/iproute2/rt_tables
    
    ip route add 192.168.0.211/32 dev eth0 src 192.168.0.211 table uplink0
    ip route add default via 192.168.0.1 dev eth0 table uplink0
    ip rule add from 192.168.0.211/32 table uplink0
    ip rule add to 192.168.0.211/32 table uplink0
    
    ip route add 192.168.0.212/32 dev eth1 src 192.168.0.212 table uplink1
    ip route add default via 192.168.0.1 dev eth1 table uplink1
    ip rule add from 192.168.0.212/32 table uplink1
    ip rule add to 192.168.0.212/32 table uplink1
    
    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve