2012-05-18 48 views
0

我有一個在ec2上運行的django應用程序。這是一個微型實例,我看到有62%的內存正在被一個沒有用戶的應用程序使用。這對我來說似乎很高,所以我做了:所以我做了:更有效地使用apache?

$ ps aux|grep apache 
root  9318 0.0 1.4 204924 9052 ?  Ss 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9323 0.1 4.7 234824 28588 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9324 0.1 4.7 235176 28780 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9325 0.1 4.8 235536 29088 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9326 0.1 4.7 234808 28564 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9327 0.1 4.7 234952 28620 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9328 0.1 4.7 235136 28892 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9329 0.1 4.6 234856 28140 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 
ubuntu 9330 0.1 4.8 235480 29356 ?  S 23:01 0:00 /usr/sbin/apache2 -k start 

爲什麼這裏有這麼多的過程?這些過程在做什麼?有沒有辦法讓這個更高效?

回答

1

這可能取決於您正在使用的Apache工作程序,但很可能Apache將爲每個傳入連接使用單獨的進程。爲了快速提供傳入連接,它會保持連接處理程序池處於打開狀態,這就是爲什麼有這麼多進程。

無論用戶數量多少,Apache都必須保留所有/大部分應用程序,Django,Python和您在內存中使用的任何第三方應用程序能夠服務的內存使用級別該網站高效。

0

對於您的情況,這是由於您的配置造成的。試着用你的配置中的StartServers,MinSpareServers和MaxSpareServers來調整它。有關調整的更多信息和選項見here

而且是你運行「自由」命令,你會看到propably大部分62%的內存緩存爲緩衝區,爲Apache是​​準備爲快。 如果你需要它,它將分配給你的應用程序,緩衝區將被刪除