当前位置: 技术问答>linux和unix
十万火急,请教一个linux容量限制的问题,高手请进
来源: 互联网 发布时间:2015-10-30
本文导语: 这里高手多,请教一个问题,描述如下: 程序是cs结构,server运行在linux下,client在windows下,通讯是socket。 现在的问题是,当server的socket连接达到600多路,线程数达到800多个时,好像不能再建立新的socket连接,有时...
这里高手多,请教一个问题,描述如下:
程序是cs结构,server运行在linux下,client在windows下,通讯是socket。
现在的问题是,当server的socket连接达到600多路,线程数达到800多个时,好像不能再建立新的socket连接,有时已建立的RTCP连接会断掉。
系统硬件资源为:
CPU : 3G
MEM: 1G
网卡:100M设置成全双工模式
/etc/security/limits.conf设置如下:
* soft nproc 8192
* soft nofile 8192
我查看了LINUX系统的占用情况,CPUsystem占用率为25%左右,user为10%左右,idle为65%,内存才使用200多兆。用sar查看了网卡的使用状况,网络吞吐量最大为24M。也就是说系统的资源使用还远远没有达到极限,可是现在socket连接数就不能再提高了,我不知道是不是因为linux里还有什么系统限制没有放开,还是因为kernel本身的处理能力不够,急死了,望高手指点。
程序是cs结构,server运行在linux下,client在windows下,通讯是socket。
现在的问题是,当server的socket连接达到600多路,线程数达到800多个时,好像不能再建立新的socket连接,有时已建立的RTCP连接会断掉。
系统硬件资源为:
CPU : 3G
MEM: 1G
网卡:100M设置成全双工模式
/etc/security/limits.conf设置如下:
* soft nproc 8192
* soft nofile 8192
我查看了LINUX系统的占用情况,CPUsystem占用率为25%左右,user为10%左右,idle为65%,内存才使用200多兆。用sar查看了网卡的使用状况,网络吞吐量最大为24M。也就是说系统的资源使用还远远没有达到极限,可是现在socket连接数就不能再提高了,我不知道是不是因为linux里还有什么系统限制没有放开,还是因为kernel本身的处理能力不够,急死了,望高手指点。
|
ulimit -a
可以看到所有限制
ulimit --help
可以看到怎么修改某个限制
可以看到所有限制
ulimit --help
可以看到怎么修改某个限制
|
这个似乎需要挂procfs才能看到(但是挂procfs可能会带来安全上的风险)
还有,你的800多threads不会都在一个process里面吧?给每个连接都分配一个thread并不是一个好主意。
还有,你的800多threads不会都在一个process里面吧?给每个连接都分配一个thread并不是一个好主意。
|
在Linux中, 每个进程都有文件句柄的限制, 你看看是不是这个问题