【发布时间】:2014-09-11 09:22:57
【问题描述】:
我编写了一个简单的网络服务,其中手持设备连接到服务器上的 Twisted 脚本。设备向脚本发送数据,脚本使用此数据查询 MySQL db,将 db 内容发送回设备。脚本基于本教程编写的脚本
这样的脚本如何处理大量连接?在我看来,它仅受服务器限制,服务器内存越高,您可以处理的连接量就越高。但是脚本在大量连接时会表现良好吗?对于每个连接,都会创建一个新的连接实例,并在有查询时为该连接创建一个新的数据库实例,所以我相信它都是异步处理的,服务器 CPU 功率和内存的唯一性能限制也是如此?通过扩展服务器来应对高连接量?对于我的服务,连接可能会在 1 到 3 小时之间保持打开状态,因此服务器内存可能会填满并导致服务器崩溃。
还有,有人知道连接实例的大小吗?
可能更多的是服务器问题而不是 Twisted 问题!但非常感谢您的阅读!
【问题讨论】:
-
我想这更像是你所说的内核/tcp-ip-stack 问题——我怀疑 Twisted 对其自身施加了任何特定限制。阅读stackoverflow.com/q/2332741/66349,我建议您考虑重新设计您的架构。也许UDP会更合适?
-
在没有明确理由的情况下切换到 UDP 是新手常见的错误。小心!
标签: python sockets asynchronous twisted