簡體   English   中英

高並發下在龍卷風中使用asycio循環時發生錯誤

[英]error occurs when using asycio loop in tornado under high concurrency

我在tornado項目中安裝了asyncio Ioloop ,它的單個請求運行沒有問題,但是當我進行服務器壓力測試時:

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

在龍卷風中使用asynico ioloop是否會降低性能?

您正在嘗試運行4000並行請求,這意味着同時打開4000套接字。

但是通常系統限制默認情況下僅允許打開1024個文件(嘗試ulimit -a )。

您可以通過ulimit -n 4096調用來覆蓋該限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM