我尝试设置Linux内核。编辑/etc/sysctl.conf并执行sysctl -p
之后
它显示错误
Invalid argument" setting key "net.core.somaxconn"
Linux发行版:Ubuntu 12.04.4 LTS,x86_64、3.2.0-60-generic$ cat /etc/sysctl.conf
net.ipv4.conf.eth0.arp_notify = 1
vm.swappiness = 0
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
fs.file-max = 1048576
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_syn_backlog = 409600
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_orphans = 262144
我可以将net.core.somaxconn
增加到262144
吗? 最佳答案
尝试微调Nginx时遇到了同样的问题。这是针对Ubuntu内核制作的补丁程序的问题。
这
因此,inet_listen()
中的backlog参数
不应超过USHRT_MAX
。 listen()
系统调用中的backlog参数被截断为somaxconn
值。 因此,somaxconn
的值不应超过65535
(USHRT_MAX
)。
简而言之,为了使net.core.somaxconn
正常工作,您不应赋予比65535
更大的值(value)
这很可悲,但是除非您确定重新获得内核,否则我们必须忍受它:
https://lists.ubuntu.com/archives/kernel-team/2013-October/033041.html
关于linux - 无效的参数”设置键 "net.core.somaxconn",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23862410/