在linux tcp方面有什么调优经验或案例的,谁有资料或者整理过的,分享下哈?

在linux tcp方面有什么调优经验或案例的,谁有资料或者整理过的,分享下哈

参与12

2同行回答

zhaoxiaoyong081zhaoxiaoyong081资深工程师平安科技
TCP 优化,分三类情况详细说明第一类,在请求数比较大的场景下,你可能会看到大量处于 TIME_WAIT 状态的连接,它们会占用大量内存和端口资源。这时,我们可以优化与 TIME_WAIT 状态相关的内核选项,比如采取下面几种措施。增大处于 TIME_WAIT 状态的连接数量 net.ipv4.tcp_max_tw_bu...显示全部

TCP 优化,分三类情况详细说明

第一类,在请求数比较大的场景下,你可能会看到大量处于 TIME_WAIT 状态的连接,它们会占用大量内存和端口资源。这时,我们可以优化与 TIME_WAIT 状态相关的内核选项,比如采取下面几种措施。

增大处于 TIME_WAIT 状态的连接数量 net.ipv4.tcp_max_tw_buckets ,并增大连接跟踪表的大小 net.netfilter.nf_conntrack_max。

减小 net.ipv4.tcp_fin_timeout 和 net.netfilter.nf_conntrack_tcp_timeout_time_wait ,让系统尽快释放它们所占用的资源。

开启端口复用 net.ipv4.tcp_tw_reuse。这样,被 TIME_WAIT 状态占用的端口,还能用到新建的连接中。

增大本地端口的范围 net.ipv4.ip_local_port_range 。这样就可以支持更多连接,提高整体的并发能力。

增加最大文件描述符的数量。你可以使用 fs.nr_open 和 fs.file-max ,分别增大进程和系统的最大文件描述符数;或在应用程序的 systemd 配置文件中,配置 LimitNOFILE ,设置应用程序的最大文件描述符数。

第二类,为了缓解 SYN FLOOD 等,利用 TCP 协议特点进行攻击而引发的性能问题,你可以考虑优化与 SYN 状态相关的内核选项,比如采取下面几种措施。

增大 TCP 半连接的最大数量 net.ipv4.tcp_max_syn_backlog ,或者开启 TCP SYN Cookies net.ipv4.tcp_syncookies ,来绕开半连接数量限制的问题(注意,这两个选项不可同时使用)。

减少 SYN_RECV 状态的连接重传 SYN+ACK 包的次数 net.ipv4.tcp_synack_retries。

第三类,在长连接的场景中,通常使用 Keepalive 来检测 TCP 连接的状态,以便对端连接断开后,可以自动回收。但是,系统默认的 Keepalive 探测间隔和重试次数,一般都无法满足应用程序的性能要求。所以,这时候你需要优化与 Keepalive 相关的内核选项,比如:

缩短最后一次数据包到 Keepalive 探测包的间隔时间 net.ipv4.tcp_keepalive_time;

缩短发送 Keepalive 探测包的间隔时间 net.ipv4.tcp_keepalive_intvl;

减少 Keepalive 探测失败后,一直到通知应用程序前的重试次数 net.ipv4.tcp_keepalive_probes。

收起
保险 · 2023-06-13
浏览478

ChatGPT 回答

在银行行业中,Linux系统的TCP调优是非常重要的一项工作,可以提高系统的网络性能和稳定性。以下是一些常见的Linux TCP调优经验和案例:

  1. 调整TCP缓冲区大小:可以通过修改TCP缓冲区大小来提高网络性能。可以使用sysctl命令或修改/proc/sys/net/core/rmem_max、/proc/sys/net/core/wmem_max等文件来调整TCP缓冲区大小。
  2. 开启TCP窗口缩放:TCP窗口缩放可以提高网络吞吐量和传输速度。可以通过修改/proc/sys/net/ipv4/tcp_window_scaling文件来开启TCP窗口缩放。
  3. 调整TCP连接超时时间:可以通过调整TCP连接超时时间来提高网络稳定性。可以使用sysctl命令或修改/proc/sys/net/ipv4/tcp_keepalive_time等文件来调整TCP连接超时时间。
  4. 开启TCP快速重传:TCP快速重传可以提高网络传输速度和稳定性。可以通过修改/proc/sys/net/ipv4/tcp_fastopen等文件来开启TCP快速重传。
  5. 调整TCP拥塞控制算法:可以根据网络环境和应用场景选择合适的TCP拥塞控制算法,如CUBIC、BIC、Reno等。可以使用sysctl命令或修改/proc/sys/net/ipv4/tcp_congestion_control等文件来调整TCP拥塞控制算法。

以上是一些常见的Linux TCP调优经验和案例,可以根据实际情况进行调整和优化。同时,也可以参考Linux内核文档和网络性能优化相关的书籍和资料来深入了解Linux TCP调优。

提问者

三虎
系统运维工程师中国邮政储蓄银行
擅长领域: 服务器信创Linux

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-06-09
  • 关注会员:3 人
  • 问题浏览:1334
  • 最近回答:2023-06-13
  • X社区推广