是否有可能「檢測」反應堆超載並開始丟棄連接或拒絕新的連接?我們如何避免反應堆完全超載並且無法趕上?扭曲:在反應堆過載的情況下,優雅地降低性能?
4
A
回答
1
如果我正確理解Twisted Reactors,它們不會並行化所有內容。無論排隊的操作是什麼,都要一一完成。
你的一個出路是自定義addCallback
,它會檢查已經註冊了多少個回調,並在必要時刪除。
1
沒有簡單的方法,但這裏的一些建議:http://www.mail-archive.com/[email protected]/msg00389.html
1
我會處理這每協議。當實際的服務需要時,進行節流,而不是當你認爲會。我不擔心有多少回調函數等待反應堆計時器,我會擔心HTTP請求(例如)需要多長時間才能完成。等待反應堆的操作的數量可能是一個實現細節 - 例如,如果一個訪問模式以長DeferredLists的回調結束,另一個具有更多線性的回調鏈,則響應時間可能不會不同,即使回調的數量是。
這可以通過保持完成邏輯操作的時間度量(例如服務HTTP請求)來完成。這樣做的一個優點是它可以在問題發生之前爲您提供重要信息。
相關問題
- 1. Javascript優雅地降低整個div
- 2. 扭曲的反應堆沒有scrapy
- 3. 扭曲反應堆的拆卸方法?
- 4. 如何讓JavaScript在禁用Javascript的情況下「優雅地降級」?
- 5. SDL在性能較差的情況下性能下降
- 6. 如何在未安裝.NET的情況下優雅地失敗?
- 7. 在什麼情況下Java性能會隨着內存的增加而降低?
- 8. 我可以在不降低性能的情況下製作DOM樹多大?
- 9. 如何降低這種情況下的複雜性?
- 10. 如何在不降低分辨率的情況下降低UIImage的質量?
- 11. 如何保持屬性名的情況下,不改變以降低在HTML敏捷性包的情況下
- 12. 扭曲的反應堆在單個程序中多次啓動?
- 13. 在扭曲的情況下抑制異常
- 14. 如何優雅地降低CSS視口單位?
- 15. 優雅地降低自定義元素(或聚合物元素)
- 16. 如何解決需要多個反應堆在扭曲
- 17. 扭曲:在反應堆運行時創建延遲
- 18. NVL()降低性能
- 19. CCSprite降低性能
- 20. 在不降低minSdkVersion的情況下更新播放服務
- 21. 在不保存的情況下降低JPEG圖像質量
- 22. 在不降低設備防護的情況下安裝APK
- 23. 流內在降低性能
- 24. 在交通繁忙的情況下LAMP堆疊的性能
- 25. 扭曲的Python暫停/推遲反應堆
- 26. 扭曲的反應堆得到當前狀態
- 27. 如何在這種情況下做出優雅的設計?
- 28. 如何在這種情況下降低圖像高度?
- 29. 降低過載功能(常量和VS&)
- 30. 降低AWS EFS的性能
是的,我過去做過的一種方法是檢查響應時間(例如http請求)並在新增連接數增加太多時丟棄新連接。但是這並不完美,因爲在我們檢測到這種情況的時候,已經有數以千計的延期已經堆積起來,所有這些都必須進行處理,從而使反應堆變得更加緩慢。 – Tommy 2010-08-10 07:01:37
當然,如果您想要優雅地降低服務質量,請在您的服務器過於疲憊地做出響應之前做到這一點。我的意見是,等待回調的數量不是你想要監控的,我會監視其他資源(SQL查詢時間,內存,負載,磁盤?),但我仍然會優先考慮請求時間。 Twisted應該能夠輕鬆有效地拒絕您的請求時間過長 - 只記錄未完成請求的數量及其開始時間。或者,在代理中執行此操作,以便您根本不必擔心無響應的服務器。 – 2010-08-11 23:32:13