vi /etc/sysctl.conf
#表示SYN队列的长度,默认为1024,加大队列长度,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 65536
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 32768
#默认128,这个参数会影响到所有AF_INET类型socket的listen队列
net.core.somaxconn = 32768
#系统套接字写默认缓冲区
net.core.wmem_default = 8388608
#系统套接字读默认缓冲区
net.core.rmem_default = 8388608
#系统套接字读最大缓冲区
net.core.rmem_max = 16777216
#系统套接字写最大缓冲区
net.core.wmem_max = 16777216
#此参数与net.ipv4.tcp_wmem都是用来优化TCP接收/发送缓冲区,包含三个整数值,分别是:min,default,max:
#tcp_rmem:min表示为TCP socket预留用于接收缓冲的最小内存数量,default为TCP socket预留用于接收缓冲的缺省内存数量,max用于TCP socket接收缓冲的内存最大值。
#tcp_wmem:min表示为TCP socket预留用于发送缓冲的内存最小值,default为TCP socket预留用于发送缓冲的缺省内存值,max用于TCP socket发送缓冲的内存最大值。
net.ipv4.tcp_rmem=4096 87380 4194304
net.ipv4.tcp_wmem=4096 16384 4194304
#时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。
net.ipv4.tcp_timestamps = 0
#为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。
net.ipv4.tcp_synack_retries = 2
#在内核放弃建立连接之前发送SYN 包的数量
net.ipv4.tcp_syn_retries = 2
#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1
#确定 TCP 栈应该如何反映内存使用;每个值的单位都是内存页(通常是 4KB)。
net.ipv4.tcp_mem = 94500000 915000000 927000000
#这个值表示系统所能处理不属于任何进程的socket数量,当我们需要快速建立大量连接时,就需要关注下这个值了。
net.ipv4.tcp_max_orphans = 3276800
#如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。
net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
#用于向外连接的端口范围
net.ipv4.ip_local_port_range = 1024 65535
让以上参数生效:
/sbin/sysctl -p
调整最大文件描述符:
vi /etc/security/limits.conf
添加:
* - nofile 1006154
重启后生效(使用ulimit -n 查看)
各参数的值参考了
http://dragonsoar.iteye.com/blog/1567771
分享到:
相关推荐
通过调整 Linux TCP 参数提高服务器性能 Linux 作为一个开源操作系统,具有高度的可配置性和可扩展性,在服务器性能优化中扮演着重要角色。 TCP(Transmission Control Protocol)是 Linux 中的一个核心协议,负责...
Linux 下 TCP 参数优化 Linux 操作系统的网络性能优化是提高服务器性能的关键所在。其中,TCP 参数的优化对网络性能的影响非常大。本文将详细介绍 Linux 下 TCP 参数的优化,包括 CLOSE_WAIT 状态的生成原因、proc/...
linux tcp 内核 优化 网络,本文档对linux的tcp优化参数做了详尽的说明。很不错,值得收藏,以便日后备用。
在Linux系统中,TCP(传输控制协议)是网络通信中常用的一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP并发服务器是指能够同时处理多个客户端连接请求的服务器,这对于高并发的网络应用至关重要。本项目...
在默认参数下,若tcp对端不通知就掉线需要等待超过2个小时本端才能确认对端掉线。使用keepalive之后,多次keepalived探测失败表明链路已经断开,可及时得到链路是否存活的信息。这样做的好处是不需要自己实现心跳...
至于"Linux Tcp",Linux系统提供了丰富的内核参数和工具来调整TCP的行为,以优化网络性能。例如,通过sysctl命令可以修改net.core.somaxconn、net.ipv4.tcp_max_syn_backlog等参数,控制最大连接数和SYN队列长度,...
此外,还可以通过调整TCP参数,如`tcp_congestion_control`、`net.ipv4.tcp_no_metrics_save`、`net.ipv4.tcp_tw_reuse`等,优化服务器性能。 测试过程中,可能会遇到的问题包括:服务器响应延迟增大、连接超时、丢...
### Linux TCP服务器连接时发不出数据问题分析 #### 背景概述 本文主要探讨了在Linux环境下,当TCP服务器与客户端建立连接后,服务器在某些情况下无法向客户端正常发送数据的问题。具体场景为:服务器与两个客户端...
Linux TCPModbus客户端是用于与使用Modbus协议的设备进行通信的一种软件工具。Modbus是一种广泛应用的工业通信协议,尤其在自动化系统中,它允许不同设备间的简单数据交换。TCPModbus是Modbus协议的网络版本,通过...
8. **内核模块编译与调试**:如果需要修改TCP/IP协议栈的代码,需要了解如何编译内核模块,以及如何配置内核参数来启用或调整相关功能。 通过以上这些知识的学习和实践,开发者可以更好地理解Linux系统中TCP/IP协议...
- `sysctl`:调整内核参数,如`net.ipv4.tcp_congestion_control`,可改变默认拥塞控制算法。 理解并追踪Linux TCP/IP代码运行涉及众多细节,包括协议实现、内核数据结构、系统调用流程等。通过学习和实践,我们...
12. **`netstat`**:查看网络连接状态,包括TCP、UDP连接、监听端口等。 13. **`ifconfig`**:显示或配置网络接口信息,如IP地址、子网掩码等。 14. **`route`**:查看或修改网络路由表。 15. **`ps`**:查看当前...
前言 关于TCP服务器最大并发连接数有一种误解就是“因为端口号上限为65535,所以TCP服务器理论上的可承载的最大并发连接数也是...这个测试主要是想搞明白Linux下哪些参数配置限制了连接数的最大值,上限是多少。 一、先
9. **性能调优**:在Linux中,可以通过修改内核参数如`/proc/sys/net/ipv4/tcp_*`来优化TCP性能,例如调整重传阈值、减小TIME_WAIT延迟等。 10. **TCP Server编程**:压缩包内的"tcpServer"可能是一个简单的TCP...
参数包括协议族(如AF_INET代表IPv4)、套接字类型(如SOCK_STREAM代表TCP)和协议(通常为0)。 3. `bind()`:将套接字与特定的IP地址和端口号绑定,使得其他客户端可以通过这个地址和端口找到服务器。 4. `listen...
9. **TCP调试与分析**:Linux提供了一些工具,如`tcpdump`用于抓包分析,`ss`和`netstat`用于查看TCP连接状态,`sysctl`则可以调整TCP相关的系统参数。 深入研究Linux TCP源码有助于我们理解TCP协议的内在工作原理...
在Linux操作系统中,TCP(传输控制协议)服务器是一种常见的网络应用程序,它允许远程客户端通过TCP连接与服务器进行通信。本文将深入探讨如何在Linux环境下使用C语言实现一个简单的TCP服务器,涉及的知识点包括TCP/...
Linux 下 TCP 连接迁移技术 Linux 下 TCP 连接迁移技术是一种基于 TCP 连接迁移的负载均衡方法,它可以将一个 TCP 连接的一个端点迁移到另一个节点,而整个迁移过程对于连接的另一端点来说是透明的。这种技术可以...
3. 拥塞控制:TCP也提供了拥塞控制机制,防止网络拥塞,但你可能需要根据具体需求调整相关参数。 4. 非阻塞模式:在某些场景下,你可能希望在发送数据时使用非阻塞模式,这样当没有数据可发送时,`send()`不会阻塞。...