提高TCP/IP 栈的性能

给出了几个可调节的参数,它们可以帮助您提高 Linux TCP/IP 栈的性能。
表 1. TCP/IP 栈性能使用的可调节内核参数
可调节的参数默认值选项说明
/proc/sys/net/core/rmem_default"110592"定义默认的接收窗口大小;对于更大的 BDP 来说,这个大小也应该更大。
/proc/sys/net/core/rmem_max"110592"定义接收窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大。
/proc/sys/net/core/wmem_default"110592"定义默认的发送窗口大小;对于更大的 BDP 来说,这个大小也应该更大。
/proc/sys/net/core/wmem_max"110592"定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大。
/proc/sys/net/ipv4/tcp_window_scaling"1"启用 RFC 1323 定义的 window scaling;要支持超过 64KB 的窗口,必须启用该值。
/proc/sys/net/ipv4/tcp_sack"1"启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
/proc/sys/net/ipv4/tcp_fack"1"启用转发应答(Forward Acknowledgment),这可以进行有选择应答(SACK)从而减少拥塞情况的发生;这个选项也应该启用。
/proc/sys/net/ipv4/tcp_timestamps"1"以一种比重发超时更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。
/proc/sys/net/ipv4/tcp_mem"24576 32768 49152"确定 TCP 栈应该如何反映内存使用;每个值的单位都是内存页(通常是 4KB)。第一个值是内存使用的下限。第二个值是内存压力模式开始对缓冲区使用应用压力的上限。第三个值是内存上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(但是要记住,其单位是内存页,而不是字节)。
/proc/sys/net/ipv4/tcp_wmem"4096 16384 131072"为自动调优定义每个 socket 使用的内存。第一个值是为 socket 的发送缓冲区分配的最少字节数。第二个值是默认值(该值会被wmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值。第三个值是发送缓冲区空间的最大字节数(该值会被wmem_max 覆盖)。
/proc/sys/net/ipv4/tcp_rmem"4096 87380 174760"与 tcp_wmem 类似,不过它表示的是为自动调优所使用的接收缓冲区的值。
/proc/sys/net/ipv4/tcp_low_latency"0"允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况;这个选项应该禁用。
/proc/sys/net/ipv4/tcp_westwood"0"启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化;对于 WAN 通信来说应该启用这个选项。
/proc/sys/net/ipv4/tcp_bic"1"为快速长距离网络启用 Binary Increase Congestion;这样可以更好地利用以 GB 速度进行操作的链接;对于 WAN 通信应该启用这个选项。

与任何调优努力一样,最好的方法实际上就是不断进行实验。您的应用程序的行为、处理器的速度以及可用内存的多少都会影响到这些参数影响性能的方式。在某些情况中,您认为有益的操作可能恰恰是有害的(反之亦然)。因此,我们需要逐一试验各个选项,然后检查每个选项的结果。换而言之,我们需要相信自己的经验,但是对每次修改都要进行验证。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
W5500是一种高度集成的以太网控制器,它集成了完整的TCP/IP协议,可以在FPGA中使用。W5500的FPGA源码是用于在FPGA芯片上实现W5500的功能的代码。 W5500的FPGA源码主要包括硬件描述语言(HDL)代码,如Verilog或VHDL,以及必要的配置和控制代码。FPGA源码的功能是在FPGA芯片上实现W5500的控制器,以便实现TCP/IP协议。 使用W5500的FPGA源码,我们可以借助FPGA的可编程性,将W5500的控制器功能集成到我们的FPGA设计中。这样,我们就可以实现一个基于W5500的以太网应用,如网络通信、远程控制等。 FPGA源码的编写需要具备一定的硬件描述语言知识,以及熟悉W5500芯片的功能和寄存器配置的技能。我们可以根据W5500的数据手册来编写FPGA源码,并根据需要进行相应的配置和控制。 使用W5500的FPGA源码可以带来一些优势。首先,FPGA的可编程性使得我们可以根据具体应用的需求进行自定义,实现更高性能和更好的定制性。其次,W5500的硬件卸载功能可以减轻主处理器的负荷,使其能够更专注于其他任务。此外,W5500的集成度较高,可以减少组件的复杂度和成本。 总之,W5500的FPGA源码是用于实现W5500控制器在FPGA芯片上的功能的代码。通过使用W5500的FPGA源码,我们可以实现一个基于W5500的高度集成的TCP/IP协议,并将其应用于各种网络通信和远程控制领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值