asyncio重构同步Web API:QPS从120提升到1680的完整记录
本文记录了一次真实的API性能优化过程。一个基于Flask+requests的聚合查询接口,在4核8G的云服务器上压测QPS只有120,P99延迟高达2.3秒。我用asyncio+aiohttp重写后,QPS提升到1680,P99降到180ms,内存占用还降低了40%。文章包含完整的before/after代码、压测配置、踩过的坑(连接池、超时、DNS缓存),以及为什么我没用FastAPI而是保留

专注于自然语言处理的工程化与业务落地。持续实践RAG知识库搭建、数据治理与评测,重点关注效果、成本、稳定性和可维护性,分享经过验证的方案与真实复盘。
本文记录了一次真实的API性能优化过程。一个基于Flask+requests的聚合查询接口,在4核8G的云服务器上压测QPS只有120,P99延迟高达2.3秒。我用asyncio+aiohttp重写后,QPS提升到1680,P99降到180ms,内存占用还降低了40%。文章包含完整的before/after代码、压测配置、踩过的坑(连接池、超时、DNS缓存),以及为什么我没用FastAPI而是保留
在商品标题向量检索场景下,本文实测Milvus 2.4.1与Qdrant 1.9.2的部署成本、查询性能与资源占用。测试集为100万条768维向量,单机16C32G配置。结果显示:Qdrant在纯向量过滤查询(过滤率30%)时P99延迟低至12ms,比Milvus快38%;但Milvus在批量写入场景吞吐量达8.2k QPS,是Qdrant的2.3倍。内存占用方面,Qdrant峰值仅6.8GB,M