linux中内核的一个不错的参数somaxconn

导读:在linux中,/proc/sys/net/core/somaxconn这个参数,linux中内核的一个不错的参数somaxconn

  看下其解析:

  对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后,

  我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了.

  每一个处于监听(Listen)状态的端口,都有自己的监听队列.监听队列的长度,与如下两方面有关:

  - somaxconn参数.

  - 使用该端口的程序中listen()函数.

  1. 关于somaxconn参数:

  定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为1024,具体信息为:

  Purpose:

  Specifies the maximum listen backlog.

  Values:

  Default: 1024 connections

  Range: 0 to MAXSHORT

  Type: Connect

  Diagnosis:

  N/A

  Tuning

  Increase this parameter on busy Web servers to handle peak connection rates.

  看下FREEBSD的解析:

  限制了接收新 TCP 连接侦听队列的大小。对于一个经常处理新连接的高负载 web服务环境来说,默认的 128 太小了。大多数环境这个值建议增加到 1024 或者更多。 服务进程会自己限制侦听队列的大小(例如 sendmail(8) 或者 Apache),常常在它们的配置文件中有设置队列大小的选项。大的侦听队列对防止拒绝服务 DoS 攻击也会有所帮助。

修改somaxconn

该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。

echo 2048 >   /proc/sys/net/core/somaxconn    但是这样系统重启后保存不了

在/etc/sysctl.conf中添加如下

net.core.somaxconn = 2048

然后在终端中执行

sysctl -p

转载:http://www.233.com/linux/fudao/20100716/102722174.html

时间: 2024-10-29 00:42:50

linux中内核的一个不错的参数somaxconn的相关文章

在Linux中定时执行一个程序的方法之at命令

/*********************************************************************  * Author  : Samson  * Date    : 04/29/2014  * Test platform:  *              3.11.0-12-generic #19-Ubuntu  *              GNU bash, version 4.2.45  * ****************************

在Linux中利用命令行去传递参数给Python

: 今天在实验楼答题做挑战的时候,遇到个一点都没头绪的题目,链接:https://www.shiyanlou.com/courses/running,题目如上,因为之前没接触到这类型的题目,所以无法入手百度了一下,知道了原来有个sys.argv[]这样的东西用.要从Linux中利用命令行去传递参数给Python文件 1,要先导入系统接口模块import sys 2,再调用系统命令行参数sys.argv,这是一个列表. 索引为0的sys.argv[0]是当前文档的路径,这不是我们想要的.索引为1的

linux中如何清空一个文件的内容

方法1: echo "" > /www.jbxue.com /xxx.log 方法2: echo "" >> /www.jbxue.com /xxx.log 方法3: 此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束 方法4: clear > /opt/log/big.log 此命令会把big.log文件内容清空,而不删除文件 方法5: 同样的效果,用true.f

在URL中使用另一个url作为参数时会被`&`截断的问题

在URL中使用另一个url作为参数时会被&截断的问题 下午帮同事写一个url转二维码的小工具时,发生标题中描述的问题.比如:输入的url是http://www.example.dev/name=user&code=2000,转换为二维码后,扫描得到的url却是http://www.example.dev/name=user,&后的部分没有正确转换.问题很明显,作为参数的url中的&后的被解析为其他参数了. 前台请求的完整url是"http://{domain}/t

linux中的 tar命令的 -C 参数,以及其它一些参数

tar命令的-C参数    $ tar -cvf file2.tar /home/usr2/file2 tar: Removing leading '/' from members names home/usr2/file2 该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来.使用tar命令解压缩后会出现以下情

Linux中如何搭建一个ftp服务服务器-超详细

ftp工作是会启动两个通道: 控制通道 , 数据通道 在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式) PORT模式: 在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21)  发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来

(转)关于linux中内核编程中结构体的赋值操作(结构体指定初始化)

网址:http://blog.chinaunix.net/uid-24807808-id-3219820.html 在看linux源码的时候,经常会看到类似于下面的结构体赋值的代码: struct device my_dev = { .bus = &my_bus_type, .parent = &my_bus, .release = my_dev_release, }; 整体上看,貌似与我们平时遇到的结构题赋值差不多,可是在变量前面加了一个点,好像我们就不知道是什么意思了.  上面的这种赋

linux中内核延时函数

第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsigned long msecs); 说明:内核函数 ndelay, udelay, 以及 mdelay 对于短延时好用, 分别延后执行指定的纳秒数, 微秒数或者毫秒数. 它们涉及到的延时常常是最多几个毫秒. 第二类延时函数原型是:(使进程进入休眠) void msleep(unsigned int

mysql在linux中内核优化

linux内核优化,直接修改/etc/sysctl.conf执行 sysctl -p立即生效 # 每个端口监听队列最大长度 net.core.somaxconn = 65535 # 增加系统文件描述符限制 fs.file-max = 65535 # 当网络接受速率大于内核处理速率时,允许发送到队列中的包数目 net.core.netdev_max_backlog = 65535 # # 保持未连接的包最大数量 net.ipv4.tcp_max_syn_backlog = 65535 # 控制tc