python 3.6 aiohttp is slow



我有一个python web应用程序可以从数据库返回一些数据。但是当我有 100 个并发用户时,它会变得慢得多。首先,我认为这是数据库问题。但是在数据库上一切正常。所以我删除了所有与DB相关的代码。它本身只是一个 aiohttp 服务。

import asyncio
import asyncpg
from aiohttp import web
import os
import logging
import sys
import time
async def handle(request):
return web.Response(text="hi")
async def init_app():
"""Initialize the application server."""
app = web.Application()
# Configure service routes
app.router.add_route('GET', '/', handle)
return app
logging.basicConfig(
level=logging.DEBUG,
format='%(levelname)7s: %(message)s',
stream=sys.stderr,
)
LOG = logging.getLogger('')
loop = asyncio.get_event_loop()
app = loop.run_until_complete(init_app())
web.run_app(app)

现在,如果我运行一个用户,响应时间为 2ms。但是如果我放100个用户,响应时间为295毫秒。这就是aiohttp的本质吗?

我认为您的服务器花费在将传入请求打印到 stderr 上花费的时间最多。

登录到控制台非常昂贵,文件或网络相对便宜。

最新更新