2016-12-16 1 views
1

я установил asyncioIoloop в tornado проекте на, он бежал без проблем с одним запросом, но когда я сделал стресс-тест сервера:ошибка возникает при использовании asycio цикла в торнадо под высоким параллелизмом

ab -n 10000 -c 4000 -p '/home/mwh/ad_tornado/for_test/task.json' -T 'application/x-www-form-urlencoded' '192.168.1.170/hwSdk/tsk/get_t_k.json' 

Это случилось ошибки:

[E 161216 10:32:22 base_events:1090] Exception in callback BaseAsyncIOLoop._handle_events(11, 1) 
handle: <Handle BaseAsyncIOLoop._handle_events(11, 1)> 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.4/asyncio/events.py", line 125, in _run 
    File "/home/mwh/virtualenv_mwh/lib/python3.4/site-packages/tornado/platform/asyncio.py", line 114, in _handle_events 
    File "/home/mwh/virtualenv_mwh/lib/python3.4/site-packages/tornado/stack_context.py", line 275, in null_wrapper 
    File "/home/mwh/virtualenv_mwh/lib/python3.4/site-packages/tornado/netutil.py", line 260, in accept_handler 
    File "/usr/local/lib/python3.4/socket.py", line 187, in accept 
OSError: [Errno 24] Too many open files 

Возможно ли, что использование асинико-илоопа в торнадо ухудшит производительность?

+0

Я думаю, что у вас закончились доступные сокеты ... Что, если это так, вам нужно делать что-то немного синхронно ... Является ли ваш скрипт python действующим как клиент? Если это так, то вы не испытываете «стресс» сервера - это проблема с клиентом, и эта проблема никогда не появится. – Zizouz212

ответ

2

Вы пытаетесь запустить 4000 параллельных запросов, то есть 4000 открытые сокеты одновременно.

Но, как правило, системные ограничения позволяют использовать только 1024 открытых файла по умолчанию (попробуйте ulimit -a).

Вы можете изменить лимит на ulimit -n 4096.

+0

Я установил системные ограничения, разрешив 65536 открытых файлов, но это были ошибки, подобные тем же. Я обнаружил, что каждый процесс разрешает 1024 открытых файла по умолчанию, и я запускал 4 экземпляра торнадо в моем тесте. Как настроить процесс, разрешает открытые файлы по мере изменения идентификатора процесса при повторном открытии экземпляра торнадо? –

+1

попытайтесь следовать этому руководству: http://www.nateware.com/linux-network-tuning-for-2013.html#.WFUEgaJ96Rt – offline15

Смежные вопросы