我有基于龙卷风的游戏服务器,托管在亚马逊云、1gb内存和10 on硬盘上,每天有500个用户,现在的用户是30+。用户在世界各地,我是托管云机在美国西部,因为大多数用户来自美国。我面临着网络延迟的问题。当我有一个用户响应时间是1秒,这也是很高的,但是当用户移动到10+时,这个响应时间开始下降到2秒,对于50+用户来说,这个响应时间是8秒。我做了测试并编写了测试脚本。test1。
上运行。
发布于 2021-05-03 04:46:33
1.网络I/O
如果在请求处理程序中执行网络绑定操作(例如连接到数据库,或将请求发送到另一个API),则使用await语句执行这些任务,以便Python可以暂停协同线并异步处理其他请求。
2. CPU任务和磁盘I/O
如果您正在执行cpu绑定操作(网络I/O以外的任何代码需要几毫秒才能运行),那么使用IOLoop.run_in_executor在一个单独的线程中运行这些任务。这将释放主线程,以便CPU可以运行其他任务。
龙卷风是一台单线程服务器。这意味着CPU只能在给定的时间运行一件事情。因此,如果单个响应花费220 to的CPU时间,而如果您有10个连接的客户端,则需要超过2秒才能为第10个客户端服务。这一次,随着客户端数量的增加,只会增加*(但并不总是按比例计算,因为Python可能会重用CPU缓存)。
看起来云服务器上的CPU速度不如您的个人CPU快,因此增加了延迟。
https://stackoverflow.com/questions/67360792
复制相似问题