Flask API服务器响应时间慢

时间:2015-07-07 07:32:21

标签: gunicorn flask

我使用Flask创建了一个API服务器,我使用(Current Signin State: {{skypeClient.state()}} ) gunicorn来运行它。我注意到在调用API时Flask服务器的响应时间很长。我对我的客户进行了分析,一个从我的笔记本电脑上运行,一个直接在Flask API服务器上运行。

从我的笔记本电脑:

eventlet

在服务器上:

         302556 function calls (295712 primitive calls) in 5.594 seconds                                                              

   Ordered by: internal time                                                                                                          

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)                                                               
       72    4.370    0.061    4.370    0.061 {method 'poll' of 'select.epoll' objects}                                               
       16    0.374    0.023    0.374    0.023 {method 'connect' of '_socket.socket' objects}                                          
       16    0.213    0.013    0.213    0.013 {method 'load_verify_locations' of '_ssl._SSLContext' objects}                          
       16    0.053    0.003    0.058    0.004 httplib.py:798(close)                                                                   
       52    0.034    0.001    0.034    0.001 {method 'do_handshake' of '_ssl._SSLSocket' objects}

所以,我看到我的客户端花了很长时间等待服务器响应基于配置文件结果。

我使用 231449 function calls (225936 primitive calls) in 3.320 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 12 2.132 0.178 2.132 0.178 {built-in method read} 13 0.286 0.022 0.286 0.022 {method 'poll' of 'select.epoll' objects} 12 0.119 0.010 0.119 0.010 {_ssl.sslwrap} 12 0.095 0.008 0.095 0.008 {built-in method do_handshake} 855/222 0.043 0.000 0.116 0.001 sre_parse.py:379(_parse) 1758/218 0.029 0.000 0.090 0.000 sre_compile.py:32(_compile) 1013 0.027 0.000 0.041 0.000 sre_compile.py:207(_optimize_charset) 12429 0.023 0.000 0.029 0.000 sre_parse.py:182(__next) gunicorn一起为Flask应用程序提供流量配置:

eventlet

我的客户端是一个自定义HTTP客户端,使用import multiprocessing bind = ['0.0.0.0:8000'] backlog = 2048 workers = multiprocessing.cpu_count() * 2 + 1 worker_class = 'eventlet' user = 'www-data' group = 'www-data' loglevel = 'info' 来修补eventlet并创建一个连接到服务器的池。

我坚持在这里进行故障排除。所有服务器统计信息均正常。如何检测API服务器的瓶颈?

0 个答案:

没有答案