2015-06-20 46 views
1

我有一個Python Web應用程序(使用WSGI)部署在Openshift上。該應用程序相當貪心。我注意到的是,有幾個Apache httpd服務實例始終部署。這意味着我的設備的內存使用量乘以這些進程的數量並且應用程序崩潰的頻率很高。Openshift Python多個httpd實例

我沒有很多的流量,所以沒有必要有多個httpd運行。

有什麼辦法可以配置Python盒,將其限制爲單個httpd進程

回答

2

如果您使用的是OpenShift Python盒式磁帶及其默認設置,那麼其中只有兩個進程應該在其中運行應用程序的實際副本。其他httpd進程是父監視進程和Apache子進程工作進程,它們將請求代理到實際運行Web應用程序的進程。

如果你需要控制,以減少它歸結爲一個過程,那麼你就需要遵循:

越過標準的設置和使用,而不是mod_wsgi的快車。這將默認爲您的應用程序使用一個進程,並允許您控制應用程序進程的進程數和線程數。

如果您看到很多內存使用情況,那麼它可能只是您的應用程序代碼,或者由於使用較舊的mod_wsgi而出現內存問題的外部機會,因爲存在可能導致額外的一些奇怪的角落情況內存使用情況,因爲Apache的工作方式。如果你使用mod_wsgi-express,它會使用最新的並避免這些問題。

因此,請嘗試mod_wsgi-express,如果仍然存在內存問題,建議您在mod_wsgi郵件列表中獲取幫助以進行調試。

+0

您從博客的指示就像一個魅力。現在我只有一個mod_wsgi-express進程,所以不需要加倍的內存資源。非常感謝。 – udachny