2011-01-04 2 views
1

Я тестирую NodeJs, особенно параллелизм. Я использую Tsung для этого. К сожалению, Tsung, похоже, не может породить достаточно пользователей. Я получаю только около 30K одновременных подключений, хотя ~ 2GB RAM все еще не используется. (Check the charts)Увеличьте максимальные соединения под Ubuntu? (Tsu concurrency test)

XML-файла-Config заключается в следующем:

<tsung loglevel="notice" version="1.0"> 
<!-- Client side setup --> 
− 
<clients> 
<client host="localhost" use_controller_vm="false"/> 
<client host="localhost" use_controller_vm="false"/> 
</clients> 
<!-- Server side setup --> 
− 
<servers> 
<server host="localhost" port="8000" type="tcp"/> 
</servers> 
− 
<!-- 
to start os monitoring (cpu, network, memory). Use an erlang 
    agent on the remote machine or SNMP. erlang is the default 
--> 
− 
<monitoring> 
<monitor host="localhost" type="erlang"/> 
</monitoring> 
− 
<load> 
−  
<arrivalphase phase="1" duration="50" unit="minute"> 
<users interarrival="0.000000001" unit="second"/> 
</arrivalphase> 
</load> 
− 
<sessions> 
− 
<session name="nodeJS" probability="100" type="ts_http"> 
− 
<for from="0" to="40" incr="1" var="counter"> 
− 
<request> 
<http url="http://localhost:8000/" version="1.1" method="GET"/> 
</request> 
<thinktime random="false" value="300"/> 
</for> 
</session> 
</sessions> 
</tsung> 

Так как увеличить пользователей, так что используется вся RAM ???

ответ

0

В зависимости от архитектуры процессора, узел может поддерживать только 1 ГБ оперативной памяти: http://code.google.com/p/v8/issues/detail?id=847

Чтобы обойти эту проблему вы можете запускать несколько экземпляров узла (и они разговаривают друг с другом, если это необходимо). Библиотеки, такие как multi-node, могут помочь с этим: https://github.com/kriszyp/multi-node

В противном случае вам нужно заглянуть в настройку своего сервера для множества длительных подключений - вне моего опыта, но есть много людей, которые думают об этом. Вот поток от nodejs Google Group о поддержке соединений 100k: https://groups.google.com/d/topic/nodejs/0Z34PH_R88o/discussion

3

Я решил проблему !!! Мне просто нужно было увеличить диапазон портов. С оперативной памятью 4 ГБ я достигаю максимально возможного диапазона портов. Точно 61980 одновременных подключений. Великий NodeJs!

+1

Какие-либо дополнительные советы по этому поводу? Вы в конечном итоге используете большую часть ОЗУ? Какая настройка - я знаю, что на узле есть проблемы только с поддержкой 1 ГБ ОЗУ. – tofutim

+0

Какую команду вы использовали для увеличения диапазона портов? –