小编ell*_*iel的帖子

为什么我的 TCP 吞吐量远大于 UDP 吞吐量?

我没有对我的硬件或内核配置(所有默认设置、全新操作系统安装、Linux 内核 3.11 TCP/IP 堆栈)进行任何异常处理,我通过 TCP 平均每秒发送大约 383 万条消息,而我平均只有 0.75每秒通过 UDP 发送百万条消息。这似乎完全违背了我对这两个协议的期望。

造成巨大差异的最可能原因是什么,我如何在 Ubuntu 13.10 上对其进行诊断?

#TCP RESULTS
Recv   Send    Send                          Utilization       Service Demand
Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
Size   Size    Size     Time     Throughput  local    remote   local   remote
bytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB

87380  65536     64    10.00      1963.43   32.96    17.09    5.500   2.852

#UDP RESULTS
Socket  Message  Elapsed      Messages                   CPU      Service
Size    Size     Time         Okay Errors   Throughput   Util     Demand
bytes   bytes    secs …
Run Code Online (Sandbox Code Playgroud)

performance networking tcp udp

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

在 Ubuntu 上通过物理网络向自己发送流量

我有一个双端口以太网 NIC,假设我已将两个端口连接到一个循环中,并将以下 IP 分配给 2 个以太网接口:

  • eth2 -> 192.168.2.1
  • eth3 -> 192.168.3.1

我想通过物理网络将流量从一个端口发送到另一个端口,例如 ping 192.168.3.1from 192.168.2.1. 但是,Linux 内核中的 TCP/IP 堆栈识别出这两个地址是本地地址,而是将流量发送到环回适配器,因此流量永远不会到达物理网络。

我最接近解决方案的是 Anastasov 的send-to-self patch,不幸的是,它自内核 3.6 以来已停止使用,因此它不适用于我的 Ubuntu 13.10(内核 3.11)。我已经尝试为 3.11 重写补丁,但我似乎无法在 Ubuntu 发行版中找到这些补丁:

  • 包括/linux/inetdevice.h
  • 网络/ipv4/devinet.c
  • net/ipv4/fib_frontend.c
  • 网络/ipv4/route.c
  • 文档/网络/ip-sysctl.txt

有没有办法让发送给自己的补丁工作,或者替代解决方案?

networking routing ip ethernet nat

6
推荐指数
2
解决办法
4475
查看次数

从调度程序屏蔽 CPU - 如何从内核移动绑定的内核线程?

假设我有 4 个物理内核(索引为 0-3)并且我将内核 1-3 专用于用户应用程序的屏蔽,并尝试将所有系统线程引导到内核 0 上。我正在关注此处的答案并使用cset

# /usr/local/bin/cset shield --cpu 1-3  
cset: --> activating shielding:
cset: moving 145 tasks from root into system cpuset...
[==================================================]%
cset: "system" cpuset of CPUSPEC(0) with 145 tasks running
cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法将所有内核线程移动到核心 0 上:

# cset shield --kthread on
cset shield --kthread on
cset: --> activating kthread shielding
cset: kthread shield activated, moving 175 tasks into system cpuset...
[==================================================]%
cset: **> 30 …
Run Code Online (Sandbox Code Playgroud)

cpu scheduling centos interrupt multithreading

5
推荐指数
0
解决办法
873
查看次数