當我在燒瓶中設置選項app.run(threaded=True))
時,我的服務可以處理多個併發請求。但似乎我的服務將盡可能消耗CPU資源來處理多個併發請求。 是否有限制或控制我的應用程序使用的資源?燒瓶中多個併發請求的控制資源
回答
您可以嘗試使用資源模塊。取自this post。你會爲CPU做這樣的事情。 Here is資源模塊上的頁面。
import resource
sec = 60 * 60 # this is one hour of time.
resource.setrlimit(resource.RLIMIT_CPU, sec)
注意,這會更改CPU允許進程的時間(以秒爲單位)。如果要限制進程的堆棧/堆大小數量,則必須使用resource.RLIMIT_STACK
和resource.RLIMIT_HEAP
。這些都是以字節爲單位的,所以代碼看起來像這樣。
import resource
mem = 1024 * 1024 # this is one megabyte, you want much more than this normally
resource.setrlimit(resource.RLIMIT_STACK, mem)
resource.setrlimit(resource.RLIMIT_HEAP, mem)
這會引起衝突嗎?由於我的服務是多處理,所以創建了4個進程來處理每個請求。 –
不,多處理使用線程,即使它看起來不像它。一個進程是一個單一的程序,當程序啓動另一個程序時,它應該將它作爲一個線程啓動。我可能在這方面是錯誤的,你可能不得不作爲一個線程開始它,我不知道Python多處理如何工作。如果它不起作用,那麼你可以爲每個進程做同樣的事情,限制每個進程的資源數量。 –
其實一個wsgi服務器(gunicorn)解決了我的問題。 –
- 1. 如何在燒瓶中處理多個併發請求
- 2. 在燒瓶中發送發佈請求
- 3. 請求燒瓶API
- 4. PHP,iptables的,並請求燒瓶
- 5. 對象中的燒瓶資源html
- 6. 燒瓶請求調試
- 7. 蟒蛇燒瓶請求
- 8. 併發請求瓶蟒python
- 9. 使用燒瓶並行多請求處理
- 10. 燒瓶如何獲得請求的HTTP_ORIGIN
- 11. 用於POST請求的燒瓶404
- 12. REST API:在單個請求中請求多個資源
- 13. 多個請求燒瓶,Gunicorn,Nginx日誌不工作
- 14. 燒瓶RESTful API請求,破管[Errno 32]!
- 15. 燒瓶,處理請求1 by 1
- 16. Python燒瓶POST 400壞請求錯誤
- 17. 燒瓶錯誤:414請求 - URI太大
- 18. 燒瓶JSON請求400日誌記錄?
- 19. AngularJS GET請求燒瓶/ rest API
- 20. 燒瓶會話變量請求
- 21. 愛可信,POST請求燒瓶
- 22. 燒瓶請求似乎沒有Google-Bot
- 23. 燒瓶中的每個客戶端請求的獨立數據
- 24. 發送帶有Angularjs POST請求,並得到參數在燒瓶中後端
- 25. Python。無法向簡單的網站api發出請求。燒瓶和請求
- 26. 燒瓶JSON發佈請求不起作用
- 27. Http請求失敗,無訪問控制 - 允許 - 原始燒瓶寧靜
- 28. AJAX發佈請求是否「訪問控制允許來源」標題存在於所請求的資源「。
- 29. 發送請求身體上的$資源
- 30. 發佈至燒瓶
我的建議是使用一個更好的WSGI服務器像uwsgi或gunicorn不瓶的開發服務器,它們都具有用於控制系統資源 – danidee
選項我試着用gunicorn選項: gunicorn --workers = 4 -t 3000 myapp -b端口。 我不知道它是否在我的情況下工作(我只是希望有一半的CPU資源用於我的服務),因爲當有4個請求時,我的服務創建了大約8-10個進程。 –
我的想法是,併發進程的數量應該等於處理器的核心數量的一半。例如4核CPU上的2個進程只能佔用50%的資源。 – sytech