Apache每隔一段時間就死掉,假死,裝死,不要臉的死,只能重啓正常

服務器這幾天每隔一段時間就死,須重啓才能生效,查看Apache錯誤日誌是這樣

[Tue Dec 12 06:57:23.570079 2017] [mpm_winnt:error] [pid 5172:tid 5380] AH00326: Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
[Tue Dec 12 08:52:21.244119 2017] [mpm_winnt:crit] [pid 5172:tid 1272] AH02538: Child: Parent process exited abruptly. Child process is ending
[Tue Dec 12 08:52:28.069576 2017] [mpm_winnt:notice] [pid 5668:tid 1372] AH00418: Parent: Created child process 4716
[Tue Dec 12 08:52:31.664441 2017] [mpm_winnt:notice] [pid 4716:tid 1272] AH00354: Child: Starting 150 worker threads.

查一下報錯表示進程的線程數不夠用,可以修改ThreadsPerChild,即每個子進程開啓的併發線程數

報錯原因 ( 摘 )

Apache針對不同的操作系統提供了多個不同的MPM模塊,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。
Windows操作系統上默認的MPM模塊是mpm_winnt,mpm_winnt模塊是專門針對Windows操作系統而優化設計的MPM模塊。它只創建一個單獨的子進程,並在這個子進程中輪流產生多個線程來處理請求。
在對Apache的MPM模塊具備一定了解後,我們就可以針對不同的MPM模塊來修改Apache的最大併發連接數配置了


啓用MPM模塊配置文件

在Apace安裝目錄/conf/extra目錄中有一個名爲httpd-mpm.conf       的配置文件。該文件主要用於進行MPM模塊的相關配置
我們需要在httpd.conf文件中啓用該配置文件

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf (去掉該行前面的註釋符號"#")


修改MPM模塊配置http-mpm.conf文件中的相關配置

#由於mpm_winnt模塊只會創建1個子進程,因此這裏對單個子進程的參數設置就相當於對整個Apache的參數設置。

<IfModule mpm_winnt_module>
ThreadsPerChild      521 #默認值是150,推薦設置:小型網站=1000 中型網站=1000~2000 大型網站=2000~3500
MaxRequestsPerChild    3000 #推薦設置:小=10000 中或大=20000~100000
</IfModule>


重啓,這兩天沒出現,等等
————————————————
版權聲明:本文爲CSDN博主「今天一點也不冷」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34827048/article/details/78779147

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章