高并发tcp连接数量限制处理

高并发tcp连接数量限制处理

ID:8874060

大小:131.50 KB

页数:3页

时间:2018-04-10

高并发tcp连接数量限制处理_第1页
高并发tcp连接数量限制处理_第2页
高并发tcp连接数量限制处理_第3页
资源描述:

《高并发tcp连接数量限制处理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、高并发TCP连接数量限制处理文档密级:内部公开高并发TCP连接数量限制处理卢振飞52053背景近期VSG和VideoPortal项目开发中,都涉及到对高速TCP连接的处理,遇到了有共性的一个问题就是当集中快速建立TCP连接时会出现无法初始化socket的情况,导致无法建立TCP连接,处理失败。其主要原因是操作系统对一个端口同时处理的socket连接数量进行了限制,一般为1024。当应用系统完成操作释放连接时,并不能马上释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间(默认240s)才释放。这样当有浪涌的TCP连接请求时容易导致大量的TCP

2、连接无法建立。解决此问题的有两个途径,一个是增加系统对端口并发连接数的限制,另一个是降低TIME_WAIT时长。Linux下的处理在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4~]$ulimit-n1024这表示当前用户的每个进程最多允许同时打开1024个文件,这102

3、4个文件中还得除去每个进程必然打开的标准输入,标准输出,标准错误,服务器监听socket,进程间通讯的unix域socket等文件,那么剩下的可用于客户端socket连接的文件数就只有大概1024-10=1014个左右。也就是说缺省情况下,基于Linux的通讯程序最多允许同时1014个TCP并发连接。对于想支持更高数量的TCP并发连接的通讯处理程序,就必须修改Linux对当前用户的进程同时打开的文件数量的软限制(softlimit)和硬限制(hardlimit)。其中软限制是指Linux2021-6-21华为机密,未经许可不得扩散第3页,共3页高并发TC

4、P连接数量限制处理文档密级:内部公开在当前系统能够承受的范围内进一步限制用户同时打开的文件数;硬限制则是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量。通常软限制小于或等于硬限制。修改上述限制的最简单的办法就是使用ulimit命令:[speng@as4~]$ulimit-n上述命令中,在中指定要设置的单一进程允许打开的最大文件数。如果系统回显类似于“Operationnotpermitted”之类的话,说明上述限制修改失败,实际上是因为在中指定的数值超过了Linux

5、系统对该用户打开文件数的软限制或硬限制。因此,就需要修改Linux系统对用户的关于打开文件数的软限制和硬限制。第一步,修改/etc/security/limits.conf文件,在文件中添加如下行:spengsoftnofile10240spenghardnofile10240其中speng指定了要修改哪个用户的打开文件数限制,可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;10240则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。修改完后保存文件。第二步,修改/etc/pam.d/l

6、ogin文件,在文件中添加如下行:sessionrequired/lib/security/pam_limits.so这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制),而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。修改完后保存此文件第三步,查看Linux系统级的最大打开文件数限制,使用如下命令:[speng@as4~]$cat/proc/sys/fs/file-max12

7、158这表明这台Linux系统最多允许同时打开(即包含所有用户打开文件数总和)12158个文件,是Linux系统级硬限制,所有用户级的打开文件数限制都不应超过这个数值。通常这个系统级硬限制是Linux系统在启动时根据系统硬件资源状况计算出来的最佳的最大同时打开文件数限制,如果没有特殊需要,不应该修改此限制,除非想为用户级打开文件数限制设置超过此限制的值。修改此硬限制的方法是修改/etc/rc.local脚本,在脚本中添加如下行:echo22158>/proc/sys/fs/file-max这是让Linux在启动完成后强行将系统级打开文件数硬限制设置为22

8、1582021-6-21华为机密,未经许可不得扩散第3页,共3页高并发TCP连接

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。