我們有一個與幾個後端Web服務集成的cherrypy服務。在負載測試期間,經過一段時間(45分鐘)後,cherrypy進程會定期崩潰。我們知道瓶頸是我們正在使用的後端Web服務。在崩潰之前,我們在訪問後端服務時會看到500和503錯誤,但我無法確定爲什麼cherrypy本身會崩潰(整個過程被終止)。你可以給我一些想法如何調查問題出在哪裏? thread_poll(50)是否可能排隊過多的請求?如何調查cherrypy崩潰?
2
A
回答
0
在我早期的CherryPy日子裏,我曾經崩潰過一次。我的意思是由段錯誤引起的Python進程崩潰。當我調查它時,我發現我混淆了MySQLdb連接,將它們緩存在由CherryPy線程交互訪問的對象中。由於MySQLdb連接不是線程安全的,因此只能從創建的線程訪問。另外,由於併發性,崩潰似乎不確定,只出現在負載測試中。因此負載測試可以在這裏用作調試工具 - 試試Apache JMeter或Locust(Pythonic)。
當一個進程崩潰時,你可以指示Linux寫一個堆棧跟蹤的核心轉儲(例如在我的例子中的MySQLdb C代碼端)。然而,外部的低級C環境對你來說(這是對我來說),堆棧跟蹤可以幫助找到導致崩潰的庫,或者至少縮小犯罪嫌疑人的圈子。這裏是an article about it。
另外我想說明的是CherryPy不太可能出現問題。它實際上非常穩定。
相關問題
- 1. iOS如何調試崩潰?
- 2. 如何調試IE8崩潰?
- 3. TextInput崩潰 - 如何調試?
- 4. 如何調試GPF崩潰?
- 5. 如何調試VB6崩潰?
- 6. 崩潰待查
- 7. 如何調試崩潰的JavaFX程序?
- 8. 如何調試ejabberd崩潰報告?
- 9. 如何調試和重現`NSOperationQueue`崩潰
- 10. 如何調試此C#崩潰?
- 11. 如何調試無痕崩潰
- 12. 如何調試崩潰應用程序
- 13. 10.9.5 libdispatch產生崩潰 - 如何調試?
- 14. 如何調試崩潰的memcached?
- 15. 如何調試python腳本崩潰python
- 16. 如何調試崩潰日誌
- 17. 如何調試和解決'DisconnectedContext'崩潰?
- 18. 如何調試無聲崩潰
- 19. 如何調試崩潰版本構建?
- 20. 如何調試SWF瀏覽器崩潰
- 21. 如何調試Sitefinity 4.0崩潰?
- 22. 如何調試崩潰的Windows服務?
- 23. 如何調試OpenGL ES崩潰?
- 24. 調查Android崩潰的有效方法?
- 25. 調試崩潰(C++)
- 26. 調試Silverlight崩潰
- 27. 調試tomcat崩潰
- 28. 調試Python崩潰
- 29. 調試WP7崩潰
- 30. 如何調查和修復libpjsua2.so崩潰
CherryPy在崩潰時拋出任何異常嗎? 您是否在任何地方使用multiprocessing.Queue? –