`

How To: Network / TCP / UDP Tuning

 
阅读更多

This is a very basic step by step description of how to improve the performance networking (TCP & UDP) on Linux 2.4+ for high-bandwidth applications. These settings are especially important for GigE links. Jump to Quick Step or All The Steps.

Assumptions

This howto assumes that the machine being tuned is involved in supporting high-bandwidth applications. Making these modifications on a machine that supports multiple users and/or multiple connections is not recommended - it may cause the machine to deny connections because of a lack of memory allocation.

The Steps

 

   1. Make sure that you have root privleges.

 

   2. Type: sysctl -p | grep mem

      This will display your current buffer settings. Save These! You may want to roll-back these changes

 

   3. Type: sysctl -w net.core.rmem_max=8388608

      This sets the max OS receive buffer size for all types of connections.

 

   4. Type: sysctl -w net.core.wmem_max=8388608

      This sets the max OS send buffer size for all types of connections.

 

   5. Type: sysctl -w net.core.rmem_default=65536

      This sets the default OS receive buffer size for all types of connections.

 

   6. Type: sysctl -w net.core.wmem_default=65536

      This sets the default OS send buffer size for all types of connections.

 

   7. Type: sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'

      TCP Autotuning setting. "The tcp_mem variable defines how the TCP stack should behave when it comes to memory usage. ... The first value specified in the tcp_mem variable tells the kernel the low threshold. Below this point, the TCP stack do not bother at all about putting any pressure on the memory usage by different TCP sockets. ... The second value tells the kernel at which point to start pressuring memory usage down. ... The final value tells the kernel how many memory pages it may use maximally. If this value is reached, TCP streams and packets start getting dropped until we reach a lower memory usage again. This value includes all TCP sockets currently in use."

 

   8. Type: sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

      TCP Autotuning setting. "The first value tells the kernel the minimum receive buffer for each TCP connection, and this buffer is always allocated to a TCP socket, even under high pressure on the system. ... The second value specified tells the kernel the default receive buffer allocated for each TCP socket. This value overrides the /proc/sys/net/core/rmem_default value used by other protocols. ... The third and last value specified in this variable specifies the maximum receive buffer that can be allocated for a TCP socket."

 

   9. Type: sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'

      TCP Autotuning setting. "This variable takes 3 different values which holds information on how much TCP sendbuffer memory space each TCP socket has to use. Every TCP socket has this much buffer space to use before the buffer is filled up. Each of the three values are used under different conditions. ... The first value in this variable tells the minimum TCP send buffer space available for a single TCP socket. ... The second value in the variable tells us the default buffer space allowed for a single TCP socket to use. ... The third value tells the kernel the maximum TCP send buffer space."

 

  10. Type:sysctl -w net.ipv4.route.flush=1

      This will enusre that immediatly subsequent connections use these values.

 

Quick Step

Cut and paste the following into a linux shell with root privleges:

 

sysctl -w net.core.rmem_max=8388608

sysctl -w net.core.wmem_max=8388608

sysctl -w net.core.rmem_default=65536

sysctl -w net.core.wmem_default=65536

sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608'

sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608'

sysctl -w net.ipv4.route.flush=1

References

All of this information comes directly from these very reliable sources:

 

    * Pittsburgh Super Computing Center TCP Tuning Guide

    * Summary of Buffer Sizes for Various Os's

    * Ipsysctl tutorial 1.0.3

 

Feedback

Please send me some feedback on how this worked for you. I'd be happy to help you figure it out on yours. I've used these or similar settings for a number of high-bandwidth applications with great results.

分享到:
评论

相关推荐

    《SQL Server 2008查询性能优化》扫描版[PDF] 第四卷

    《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...

    《SQL Server 2008查询性能优化》扫描版[PDF] 第一卷

    《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...

    《SQL Server 2008查询性能优化》扫描版[PDF] 第三卷

    《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...

    《SQL Server 2008查询性能优化》扫描版[PDF] 第二卷

    《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...

    php.ini-development

    Output buffering is a mechanism for controlling how much output data ; (excluding headers and cookies) PHP should keep internally before pushing that ; data to the client. If your application's ...

    AI2:仅凭开源数据,可达ChatGPT 83%表现

    ChatGPT强大的性能让人爱不释手,ChatGPT... Exploring the State of Instruction Tuning on Open Resources 论文链接: https://arxiv.org/pdf/2306.04751.pdf 项目链接: https://github.com/allenai/open-instruct

    Oracle 20071025_PLSQLTuning.pdf

    Oracle PLSQL Tuning

    爱奇艺用户存留预测竞赛项目

    选手需根据给定的数据构建标签和用户行为序列特征来训练模型。 #2021爱奇艺用户存留预测 ...提分点:特征衍生、nullimportance特征筛选法、调整网络参数和结构、finetuning、交叉验证、伪标签、vote融合。

    DBA需要的技能

    export one to one by Tom 10. oracle sql http://zuse.esnig.cifom.ch/database/doc_oracle/Oracle920_Linux/ server.920/a96540/toc.htm 11. oracle rac ...

    OGC调整「OGC tuning」-crx插件

    OGC Player的非官方扩展。 此扩展名适用于匈牙利游戏网站。 Az OGCJátékosoldalaihozkészültnem hivatalos Chromebővítmény。 Funkciók:-Smiley gombok(hozzászólásoknál,普里瓦üzeneteknél,...

    DPDK峰会:Network Performance Tuning, Lesson Learned.pdf

    DPDK技术峰会,PPT讲稿分享 ,演讲者中兴通讯架构师,PPT名称:Network Performance Tuning, Lesson Learned – Fangliang Lou @ ZTE 该文档讨论了利用Intel和DPDK技术使无线工作负载达到明显性能提升的性能优化...

    tcp tuning

    tcp/ip tuning tutorial

    MySQL Bible

    and developing MySQL applications with Perl and PHP. <br>  Coverage of NuSphere MySQL: Due to the growing popularity of the NuSphere MySQL package, this book covers its enhancements and how to ...

    softap_ap6212a0_tinav2.1_验证通过_旧版本的系统_20170915_1223没有外层目录.7z

    <M> Connection tracking timeout tuning via Netlink <*> Netfilter Xtables support (required for ip_tables) *** Xtables combined modules *** (有很多项,在下面!) <*> "conntrack" connection ...

    Tuned Cars HD Wallpapers Tuning Theme-crx插件

    天气-快速拨号-Gmail收件箱-屏幕保护程序-Google Calendar Sync隐私权政策:https://coolstart.com/privacy-policy使用条款:https://coolstart.com/terms-of-use如何卸载:https://coolstart.com/how-to-uninstall ...

    Using Perl For Web Programming.pdf

    How to Make Perl Do CGI H G Understanding CGI Calling a Script from a Form H Getting Information to the Script H Processing QUERY_STRING into Useful Chunks H Using Regular Expressions tr/// and s...

    sql server2005 技术内幕(代码)

    1.Microsoft Press - Inside Microsoft SQL Server 2005 Query Tuning and Optimization (Sep 2007).chm

    Lowriders HD Wallpapers Car Tuning Theme-crx插件

    每次打开新标签页,即可获得疯狂调谐的低底盘...隐私政策:https://coolstart.com/privacy-policy使用条款:https://coolstart.com/terms-of-use如何卸载:https://coolstart.com/how-to-uninstall 支持语言:English

    java performance tuning

    NULL 博文链接:https://huruii1987.iteye.com/blog/777910

Global site tag (gtag.js) - Google Analytics