2013-12-13 45 views
12

我正在使用免費的EC2 Micro實例在Linux上運行Apache的小型測試網站。爲什麼有這麼多的Apache進程在運行?

當我想看看後臺進程與「頂」,我看到了很多(30+)「阿帕奇」用戶

PID user  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 

12104 apache 20 0 429m 9024 2420 S 1.0 0.2 0:02.91 httpd    
12273 apache 20 0 429m 9108 2504 S 1.0 0.2 0:01.20 httpd    
... 

的我不知道這是正常的。這是否意味着我可能被某人/病毒附着?

P.S. 我只希望2-3個測試用戶在這一點上使用它。這是一個php + apache + mysql架構師。

謝謝。

+1

你能澄清幾件事情:一個網站有多小?你會期望數十個用戶在網站上或幾個?有多少是很多?幾百個apache進程還是十幾個? – dan08

+0

你還使用哪種語言和Apache綁定? –

+0

我只希望2-3個測試用戶在這一點上使用它。這是一個php + apache + mysql架構師。 – user2210021

回答

14

Apache將預先創建工作進程,因此,當負載峯值進來時,進程可以立即提取請求,而不是等待主服務器產生足夠的進程。檢查你的httpd.conf中的MinSpareServers,MaxSpareServers和ServerLimit。

+0

這是有道理的。但是,我將MaxSpareSevers更改爲12(將ServerLimit和MaxClient保持爲128),重新啓動apache,但我仍然看到30多個apache進程。有什麼想法嗎?謝謝! – user2210021

+1

在httpd配置文件中搜索字符串「server-status」。默認配置文件有一個例子,註釋了特殊URL http://your.server/server-status如何提供有關服務器和進程正在執行的所有類型的信息。刪除註釋,更改「接受」部分以允許從客戶端訪問(默認拒絕任何地方),重新啓動服務器並檢查特殊URL。服務器信息存在類似的情況,但服務器狀態有更多信息。 –

相關問題