在Apache的Access Log中會看到很多如下的訪問日志:
另外一方面, 在Prefork模式下, 當請求很多, 目前的worker進程數不夠處理的時候, 就會額外再fork一些worker進程出來, 以滿足當前的請求。
而在這些請求高峰過后, 如果額外fork出來的進程數大于了MaxSpareServers, Apache就會告訴這些worker進程退出, 那么問題就來了。
這些進程都在沉睡中啊, 怎么告訴他們, 并且讓他們自我退出呢?
Apache會首先發送一個退出狀態字(GRACEFUL_CHAR !)給這些Work進程:
但此時, Worker進程不會去讀這些狀態字, 因為他們還在沉睡。
這個時候Apache就會發送一個OPTIONS請求給自己, 喚醒這些沉睡的進程:
新聞熱點
疑難解答