Amazon ec2 websocket-最大客户端数

Amazon ec2 websocket-最大客户端数,amazon-ec2,websocket,apache2,mod-pywebsocket,Amazon Ec2,Websocket,Apache2,Mod Pywebsocket,我正在websocket服务器上运行一个压力测试,以测量它可以同时服务多少个客户机以及取决于这个数字的是什么 我使用的服务器实现是pywebsocket,它是apache服务器的扩展。 显然,这会为每个新客户机创建一个新线程 问题是我只能访问378个客户端,始终是相同的数目(而且非常低),对于下一个客户端,我会收到以下跟踪: [2013-08-22 07:47:09,454] [ERROR] __main__.WebSocketServer: Exception in processing re

我正在websocket服务器上运行一个压力测试,以测量它可以同时服务多少个客户机以及取决于这个数字的是什么

我使用的服务器实现是pywebsocket,它是apache服务器的扩展。 显然,这会为每个新客户机创建一个新线程

问题是我只能访问378个客户端,始终是相同的数目(而且非常低),对于下一个客户端,我会收到以下跟踪:

[2013-08-22 07:47:09,454] [ERROR] __main__.WebSocketServer: Exception in processing request from: ('::ffff:10.36.154.147', 41509, 0, 0)
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 594, in process_request
    t.start()
  File "/usr/lib/python2.7/threading.py", line 495, in start
    _start_new_thread(self.__bootstrap, ())
**error: can't start new thread**
我真的不知道这个限制是从哪里来的,进程的最大线程数似乎很低,我刚刚设置为unlimited,或者用户的最大进程数,现在也设置为unlimited

我还检查了apache2配置文件,这是我在apache2.conf中的配置文件,应该足够了:

MaxKeepAliveRequests 0
KeepAliveTimeout 5


<IfModule mpm_prefork_module>
    StartServers          50
    ServerLimit      2000
    MinSpareServers       50
    MaxSpareServers      2000
    MaxClients           2000
    MaxRequestsPerChild   2000
</IfModule>

<IfModule mpm_worker_module>
    StartServers          50
    ServerLimit      2000
    MinSpareThreads      50
    MaxSpareThreads      2000 
    ThreadLimit          0
    ThreadsPerChild      2000
    MaxClients           2000
    MaxRequestsPerChild  2000
</IfModule>

<IfModule mpm_event_module>
    StartServers          50
    ServerLimit      2000
    MinSpareThreads      50
    MaxSpareThreads      2000 
    ThreadLimit          0
    ThreadsPerChild      2000
    MaxClients           2000
    MaxRequestsPerChild  2000
</IfModule>
MaxKeepAliverRequests 0
保持超时
StartServers 50
服务器限制2000
MinSpareServers 50
MaxSpareServers 2000
MaxClients 2000
MaxRequestsPerChild 2000
StartServers 50
服务器限制2000
Minspare50
MaxSpareThreads 2000
线程限制0
ThreadsPerChild 2000
MaxClients 2000
MaxRequestsPerChild 2000
StartServers 50
服务器限制2000
Minspare50
MaxSpareThreads 2000
线程限制0
ThreadsPerChild 2000
MaxClients 2000
MaxRequestsPerChild 2000
服务器是带有ubuntu的Amazon EC2 t1.micro实例。


还有什么会导致这种限制?

尝试将ulimit-s的值减少到比unlimited/default低得多的值,因为无论哪段代码将创建多个线程,并确保/proc/sys/kernel/threads max不低于六位数