Linux下解决高并发socket最大连接数所受的各种限制(解除IO限制)
linux作为服务器系统,当运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况
本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立到3800左右时,再也不能建立tcp连接,最总上网搜索,参考:http://blog.csdn.net/guowake/article/details/6615728解决了连接限制的问题,此处记录下来,方便日后工作继续使用,虽然参考博文中内容有点多,文中所描述的内容也不怎么明白,但总结下来,按如下几步操作即可(我映像中,按此方法设置后,测试建立连接8000多时也未出现什么错误) :
- 第一步,修改/etc/security/limits.conf文件,在文件中添加如下行(*指代系统用户名),修改Linux系统对用户的关于打开文件数的软限制和硬限制:
 
* soft nofile 20000
* hard nofile 20000
- 第二步,修改/etc/pam.d/login文件,在文件中添加如下行:
 
session required /lib/security/pam_limits.so
    如果是64bit系统的话,应该为 :
    session required /lib64/security/pam_limits.so
- 第三步,修改/etc/sysctl.conf文件,在文件中(清楚文件原始内容)添加如下行(修改网络内核对TCP连接的有关限制):
 
net.ipv4.ip_local_port_range = net.core.rmem_max= net.core.wmem_max= net.ipv4.tcp_rmem= net.ipv4.tcp_wmem= net.ipv4.tcp_fin_timeout = net.ipv4.tcp_tw_recycle = net.ipv4.tcp_timestamps = net.ipv4.tcp_window_scaling = net.ipv4.tcp_sack = net.core.netdev_max_backlog = net.ipv4.tcp_no_metrics_save= net.core.somaxconn = net.ipv4.tcp_syncookies = net.ipv4.tcp_max_orphans = net.ipv4.tcp_max_syn_backlog = net.ipv4.tcp_synack_retries = net.ipv4.tcp_syn_retries =
- 第四步,执行如下命令(使上述设置生效):
 
/sbin/sysctl -p /etc/sysctl.conf /sbin/sysctl -w net.ipv4.route.flush=
- 第五步,执行如下命令(linux系统优化完网络必须调高系统允许打开的文件数才能支持大的并发,默认1024是远远不够的):
 
echo ulimit -HSn >> /etc/rc.local echo ulimit -HSn >>/root/.bash_profile ulimit -HSn
- 第六步,重启机器。
 
Linux下解决高并发socket最大连接数所受的各种限制(解除IO限制)的更多相关文章
- Linux下解决高并发socket最大连接数限制,tcp默认1024个连接
		
linux作为服务器系统,当socket运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况 本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立 ...
 - 实战解读丨Linux下实现高并发socket最大连接数的配置方法
		
摘要:Linux操作系统,无论是编写客户端程序还是服务端程序,在高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制. [诉求场景] Linux操作系统,无论是编写 ...
 - Linux下高并发socket最大连接数所受的各种限制(详解)
		
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...
 - [转载] Linux下高并发socket最大连接数所受的各种限制
		
原文: http://mp.weixin.qq.com/s?__biz=MzAwNjMxNjQzNA==&mid=207772333&idx=1&sn=cfc8aadb422f ...
 - Linux下高并发socket最大连接数所受的各种限制
		
http://blog.csdn.net/guowake/article/details/6615728 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行 ...
 - Linux下高并发socket最大连接数所受的各种限制(转)
		
1.修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个 ...
 - 教你修改Linux下高并发socket最大连接数所受的各种限制
		
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开 文件数量的限制(这是因为系统为 ...
 - Linux下高并发socket最大连接数
		
http://soft.chinabyte.com/os/285/12349285.shtml (转载时原文内容做个修改) 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是 ...
 - Linux下高并发socket最大连接数各种限制的调优
		
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...
 
随机推荐
- DaoImpl中实现查询分页-使用HibernateCallback来做更加方便
			
/** * */ package com.wolfgang.dao; import java.sql.SQLException; import java.util.List; import org.h ...
 - BZOJ 1069 最大土地面积
			
Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第1行一个正整数N,接下来N行,每行2个数x,y ...
 - [BZOJ 2821] 作诗(Poetize) 【分块】
			
题目链接:BZOJ - 2821 题目分析 因为强制在线了,所以无法用莫队..可以使用分块来做. 做法是,将 n 个数分成 n/x 个块,每个块大小为 x .先预处理出 f[i][j] ,表示从第 i ...
 - Billboard
			
hdu2795:http://acm.hdu.edu.cn/showproblem.php?pid=2795 题意:给一个h*w的公告牌,h是高度,w是宽度,一个单位高度1为一行,然后会有一些公告贴上 ...
 - int  和String之间的互转
			
int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i); ...
 - Maven实战一
			
转载:http://www.iteye.com/topic/1123221 1. 用Maven 命令创建一个简单的Maven项目 在cmd中运行如下命令: Cmd代码 mvn archetype:ge ...
 - VS2012(update3)编译Qt5.1.1 32位静态库debug-and-release版及结果分享
			
1. 下载zip源码,我下载的是qt-everywhere-opensource-src-5.1.1.zip这个文件. 2.安装python 3.解压缩qt-everywhere-opensource ...
 - 华为5700交换机通过外部开源protal和本地aaa用户认证的一些问题
			
http://support.huawei.com/ecommunity/bbs/10178271.html?p=1#p0 华为5700交换机通过外部开源protal和本地aaa用户认证的一些问题 各 ...
 - LA3353
			
感觉好久没做网络流这类的题目都不快会做了 网络流建模之前首先要分析性质 选择要求每个点恰属一个环就代表每个点在选择的图中,只有唯一入度和唯一出度 那就简单了,对n个点拆点,对于原图的边i-->j ...
 - joelonsoftware 读书摘录
			
joelonsoftware 读书摘录 <五个为什么> 1.“黑天鹅难题”,代表外来因素,是一个超出正常预料之外的事件. 2.丰田佐吉的“五个为什么”,当某个地方出现问题时,你就一 ...