2011-05-30 23 views
2

我希望這是要問這個問題,所以正確的地方:睡覺PHP進程(mod_fcgid)counsuming RAM迅速

我們正在運行的Apache運行PHP的FCGI在Debian(虛擬化)服務器。今天,管理員告訴我,這些進程正在使用系統上的RAM。他讓我看看我的代碼。

嗯,我認爲,實際上我沒有控制的PHP進程,因爲Apache衍生他們,所以這似乎更像是一個服務器配置問題。似乎每個請求都會產生一個新的php進程(這沒關係)。腳本終止後,PHP進程進入休眠狀態。

這就是頂部長相。我的記憶排序,這些都是PHP進程(它們對用戶EDEM運行):

top - 14:49:35 up 41 days, 2:09, 2 users, load average: 0.16, 0.13, 0.06 
Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie 
Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                                   
12358 edem  20 0 67380 6464 2976 S 0.3 0.2 0:00.06 php                                    
12250 edem  20 0 66960 9776 6584 S 0.0 0.3 0:00.11 php                                    
12253 edem  20 0 67480 7812 3832 S 0.0 0.3 0:00.19 php                                    
12254 edem  20 0 67464 7108 3316 S 0.0 0.2 0:00.07 php                                    
12255 edem  20 0 67404 7340 3604 S 0.0 0.2 0:00.14 php                                    
12256 edem  20 0 67464 7128 3336 S 0.0 0.2 0:00.07 php                                    
12257 edem  20 0 67380 6484 3000 S 0.0 0.2 0:00.04 php                                    
12258 edem  20 0 67464 7092 3312 S 0.0 0.2 0:00.05 php                                    
12259 edem  20 0 67464 7184 3392 S 0.0 0.2 0:00.07 php                                    
12260 edem  20 0 67464 7088 3296 S 0.0 0.2 0:00.06 php                                    
12263 edem  20 0 66960 9780 6584 S 0.0 0.3 0:00.11 php                                    
12265 edem  20 0 67464 7084 3280 S 0.0 0.2 0:00.09 php                                    
12266 edem  20 0 67436 7376 3600 S 0.0 0.2 0:00.14 php                                    
12267 edem  20 0 67464 7144 3340 S 0.0 0.2 0:00.06 php                                    
12268 edem  20 0 67380 6508 3016 S 0.0 0.2 0:00.05 php                                    
12269 edem  20 0 67540 7672 3820 S 0.0 0.2 0:00.22 php                                    
12270 edem  20 0 67496 6488 3040 S 0.0 0.2 0:00.05 php                                    
12271 edem  20 0 67436 7372 3596 S 0.0 0.2 0:00.15 php                                    
12272 edem  20 0 67464 7108 3304 S 0.0 0.2 0:00.07 php                                    
12277 edem  20 0 66960 9776 6584 S 0.0 0.3 0:00.11 php                                    
12279 edem  20 0 67436 7368 3596 S 0.0 0.2 0:00.15 php                                    
12280 edem  20 0 67464 7096 3296 S 0.0 0.2 0:00.07 php                                    
12281 edem  20 0 67464 7748 3808 S 0.0 0.2 0:00.18 php                                    
12282 edem  20 0 67496 7388 3600 S 0.0 0.2 0:00.14 php                                    
12283 edem  20 0 67380 6464 2976 S 0.0 0.2 0:00.04 php                                    
12284 edem  20 0 67380 6464 2976 S 0.0 0.2 0:00.05 php                                    
12285 edem  20 0 67464 7168 3368 S 0.0 0.2 0:00.07 php                                    
12286 edem  20 0 67464 7104 3304 S 0.0 0.2 0:00.06 php                                    
12287 edem  20 0 66960 9780 6584 S 0.0 0.3 0:00.11 php                                    
12289 edem  20 0 67464 7140 3336 S 0.0 0.2 0:00.07 php 

你有任何IDE如何殺死那些睡眠(空轉)PHP進程?有什麼我做錯了嗎?

+0

相關:http://stackoverflow.com/questions/18621883/mod-fcgid-processes-and-xcache-lifetime – trante 2013-09-09 19:10:24

回答

3

edem,我想你不會殺了他們。作爲fastcgi的想法不會產生新的進程。請參閱http://en.wikipedia.org/wiki/FastCGI#Implementation_details

FastCGI不是爲每個請求創建新進程,而是使用持久進程來處理一系列請求。這些進程由FastCGI服務器擁有,而不是Web服務器。

作爲一種解決方法,您可以嘗試使用您的web服務器fcgi設置來例如減少「睡眠」號碼。此外,我認爲你的管理員會告訴你一些高峯使用情況,但我們並沒有在這裏看到它,因爲你可能在平靜的時間裏記住你的記憶。

+0

現在井的使用並沒有波動。從9:00到18:00,Web服務器的使用情況幾乎是一樣的,因爲這是一個行業應用程序...除了午餐時間。感謝您提供的信息,我會仔細研究這一點。 – 2011-05-30 13:20:34