是否有可能“检测”反应堆超载并开始丢弃连接或拒绝新的连接?我们如何避免反应堆完全超载并且无法赶上?扭曲:在反应堆过载的情况下,优雅地降低性能?
4
A
回答
1
如果我正确理解Twisted Reactors,它们不会并行化所有内容。无论排队的操作是什么,都要一一完成。
你的一个出路是自定义addCallback
,它会检查已经注册了多少个回调,并在必要时删除。
1
没有简单的方法,但这里的一些建议:http://www.mail-archive.com/[email protected]/msg00389.html
1
我会处理这每协议。当实际的服务需要时,进行节流,而不是当你认为会。我不担心有多少回调函数等待反应堆计时器,我会担心HTTP请求(例如)需要多长时间才能完成。等待反应堆的操作的数量可能是一个实现细节 - 例如,如果一个访问模式以长DeferredLists的回调结束,另一个具有更多线性的回调链,则响应时间可能不会不同,即使回调的数量是。
这可以通过保持完成逻辑操作的时间度量(例如服务HTTP请求)来完成。这样做的一个优点是它可以在问题发生之前为您提供重要信息。
相关问题
- 1. 如何让JavaScript在禁用Javascript的情况下“优雅地降级”?
- 2. 如何在未安装.NET的情况下优雅地失败?
- 3. 我可以在不降低性能的情况下制作DOM树多大?
- 4. 如何在不降低分辨率的情况下降低UIImage的质量?
- 5. 如何降低这种情况下的复杂性?
- 6. 如何保持属性名的情况下,不改变以降低在HTML敏捷性包的情况下
- 7. 扭曲的反应堆在单个程序中多次启动?
- 8. 扭曲:在反应堆运行时创建延迟
- 9. CCSprite降低性能
- 10. 在不降低minSdkVersion的情况下更新播放服务
- 11. 在不降低设备防护的情况下安装APK
- 12. 在交通繁忙的情况下LAMP堆叠的性能
- 13. 扭曲的反应堆得到当前状态
- 14. 如何在这种情况下做出优雅的设计?
- 15. 降低AWS EFS的性能
- 16. ID3D11DeviceContext ::地图性能下降
- 17. 堆交换功能似乎扭曲
- 18. jqGrid可以优雅地降级吗?
- 19. 扭曲反应堆无法从线程正确
- 20. 扭曲反应器:优先级和见解
- 21. Python的扭曲反应器类
- 22. 功能降低的CouchDB对于这种情况
- 23. 如何在不增加其他地方的复杂性的情况下降低库中的复杂度?
- 24. 通过优雅的属性
- 25. JSON.Parse的优雅降级
- 26. iPhone上的优雅降解
- 27. Dijit的优雅降解
- 28. React Native Android在没有Chrome调试的情况下性能下降
- 29. 如何优雅地测试C#中的溢出情况?
- 30. 优雅地加载图像
是的,我过去做过的一种方法是检查响应时间(例如http请求)并在新增连接数增加太多时丢弃新连接。但是这并不完美,因为在我们检测到这种情况的时候,已经有数以千计的延期已经堆积起来,所有这些都必须进行处理,从而使反应堆变得更加缓慢。 – Tommy 2010-08-10 07:01:37
当然,如果您想要优雅地降低服务质量,请在您的服务器过于疲惫地做出响应之前做到这一点。我的意见是,等待回调的数量不是你想要监控的,我会监视其他资源(SQL查询时间,内存,负载,磁盘?),但我仍然会优先考虑请求时间。 Twisted应该能够轻松有效地拒绝您的请求时间过长 - 只记录未完成请求的数量及其开始时间。或者,在代理中执行此操作,以便您根本不必担心无响应的服务器。 – 2010-08-11 23:32:13