Linux 服务器系统连接数只能跑几百就跑不上去了是什么原因?是不是有1024打开文件限制
Linux 服务器系统连接数只能跑几百就跑不上去了是什么原因?是不是有1024打开文件限制服务器这个主机的端口时通时不通,端口扫描经常跳出关闭,你觉得是咋回事
看内核日志,服务器上运行dmesg,一般是连接表被打满了,系统内核参数没优化引起
我看TCP连接数并不多,只有几百,1000都不到
系统默认限制1024,如果不是系统内核问题,,那就是机房的网络原因
现在只有400多,这台主机的速度也一直起不来,这是截图,最高也就到1000
要看系统日志才知道,监控不准的,因为没有TCP握手包含进去吧,你找开发看一下
我把你的建议转给运维看一下,阿里云的主机,连接数跑到3000多了
不同商家提供的系统不一样的,都是模板,可能有优化过,如果是默认未优化的则需要自己去优化,就和我上面说的,系统默认值限制是1024
还有这个讲究
是的,就和阿里云的服务器一样,本来系统默认值,阿里云优化后是65535
Linux的 max open files 是最大连接数的意思吗?
是最大文件打开数量,差不多
为什么是差不多呢?文件跟连接又不是一回事
先看日志输出吧,有什么信息
开发看到的,就是说这个满了。
那文件打开数量先改了吧
ulimit -n 1048576
echo "* soft nofile 1048576" >> /etc/security/limits.conf
echo "* hard nofile 1048576" >> /etc/security/limits.conf
重启软件进程,就行了
如果是文件打开受限,日志输出内容为-bash: ulimit: open files: cannot modify limit: Operation not permitted
开发已经都改成10万了,我再试试看。
嗯
改成10万之后,端口的情况有所改善,从原来的大部分时候不通,变成了大部分时候通
可以改成100w,只要系统日志不再跳出那个就可以了。
我不太明白的是,max open files 为什么跟连接数有关系
打开文件的前提肯定是要有连接先进来啊。打开文件满了 系统就会发出限制,然后跳出错误。此时新的连接自然进不来了。所以才让你看下日志,有没有跳出这个东西。
哦,那台主机,之前 max open files 是 1024 改成10万之后,TCP连接的【timewait】明显增加了很多。这是正常的吗?
正常
timewait是干嘛的?
这个不用管,系统内核是自动控制的,系统默认值180000,超过会自动控制上限,主要用于连接保持重新快速握手建立连接
哦,是不是之前因为max open files很低,所以系统就没有保持这种连接了?
是啊,都被限制住了,连接都进不来,max open files是服务器必须调整的优化项
嗯,阿里云的主机这项默认值是6.5万,这台主机的是1024
对的,所以我之前才说,不同商家提供的模板操作系统不同,阿里云默认值也是65535
阿里云这个默认值有点迷惑性,会让我以为最大值就是65535
这些都是厂商定制的系统模板,用于批量自动化部署安装,做了“优化”
嗯,了解
一些相关案例可参考:https://bbs.itzmx.com/thread-8598-1-1.html
页:
[1]