我有一个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)
现在,如果我运行一个用户,则响应时间为2毫秒。但是,如果我放置100个用户,则响应时间为295毫秒。这是aiohttp的本质吗?
答案 0 :(得分:1)
我认为您的服务器在将输入的请求打印到stderr上花费的时间最多。
登录到控制台非常昂贵,文件或网络也相对便宜。