linux系统最大打开文件数和socket端口数限制的坑
2016-09-19 15:11
471 查看
由于产品需求,高并发不断创建socket短连接来仿http请求。使用java socket来实现,在centos6.5系统上运行。过程中遇到不到的坑,最头疼的就是最大打开文件数和socket可用端口限制的问题。
linux和mac默认最大打开文件数256.上限是65535.在创建socket连接时,每个连接需要占用一个文件打开,所以256是远不能满足需求的。需要进行参数修改。
另外,linux系统的最大可用socket端口也是65535.默认1024.最好设置为1024-65535端口可用。并且,设置linux内核参数,控制socket端口复用和快速释放。在开发过程中,会遇到大量socket处于time_wait状态而不释放的问题。当然,尽管内核最优且端口数设置为最高,仍然会有极限承受力。如果每个请求的响应时间为毫秒级,比如200并发创建,每个线程中2ms的时间便可请求响应完成,立即循环创建下一个,那么端口还是会被吃尽。端口释放速度小于需求速度时,系统将会报错,没有可用端口。
linux和mac默认最大打开文件数256.上限是65535.在创建socket连接时,每个连接需要占用一个文件打开,所以256是远不能满足需求的。需要进行参数修改。
另外,linux系统的最大可用socket端口也是65535.默认1024.最好设置为1024-65535端口可用。并且,设置linux内核参数,控制socket端口复用和快速释放。在开发过程中,会遇到大量socket处于time_wait状态而不释放的问题。当然,尽管内核最优且端口数设置为最高,仍然会有极限承受力。如果每个请求的响应时间为毫秒级,比如200并发创建,每个线程中2ms的时间便可请求响应完成,立即循环创建下一个,那么端口还是会被吃尽。端口释放速度小于需求速度时,系统将会报错,没有可用端口。
相关文章推荐
- 解除 Linux 系统的最大进程数和最大文件打开数限制
- 解除 Linux 系统的最大进程数和最大文件打开数限制
- 解除 Linux 系统的最大进程数和最大文件打开数限制
- LINUX系统打开的最大文件数限制
- linux增加系统最大文件打开数量
- 查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等
- 修改Linux系统打开文件数限制
- 修改linux系统打开文件数限制
- ulimit命令用来限制系统用户对shell资源的访问(设置Linux文件打开数)
- 系统进程打开文件最大句柄数的限制
- 在Linux最大打开文件数限制下 MySQL 对参数的调整
- Linux打开21号端口,并在Windows系统的主机上用XFTP拷贝云主机里的文件
- 解除Linux最大进程数和最大文件句柄打开数限制
- Linux ulimit解决最大打开文件数限制
- linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制
- linux 文件系统最大可打开文件数
- linux 向外TCP最大连接只能打开28232个端口限制tuning(转)
- 修改linux系统的最大打开文件数
- 修改Linux系统最大打开文件数
- 修改linux系统最大打开文件数