Apache崩掉 為程序配置合適的執行緒數

2022-05-22 10:18:14 字數 1465 閱讀 9675

放假以來,伺服器apache二次崩掉了,不能再拖了,找bug解決;

崩掉的具體狀況是,伺服器出現彈框顯示:apache停止工作;

順手關掉這個可惡的小彈框,世界就清靜了,伺服器正常執行;

檢視錯誤日誌\apache\logs,找到關鍵報錯:

[mon aug 14 10:47:19.644531 2017] [mpm_winnt:error] [pid 5776:tid 4144] ah00326: server ran out of threads to serve requests. consider raising the threadsperchild setting
報錯表示程序的執行緒數不夠用,可以修改threadsperchild,即每個子程序開啟的併發執行緒數。

apache針對不同的作業系統提供了多個不同的mpm模組,例如:mpm_beosmpm_eventmpm_netwarempmt_os2mpm_preforkmpm_winntmpm_worker

windows作業系統上預設的mpm模組是mpm_winntmpm_winnt模組是專門針對windows作業系統而優化設計的mpm模組。它只建立乙個單獨的子程序,並在這個子程序中輪流產生多個執行緒來處理請求。

在對apache的mpm模組具備一定了解後,我們就可以針對不同的mpm模組來修改apache的最大併發連線數配置了。

修改mpm模組配置

1 啟用mpm模組配置檔案

在apace安裝目錄/conf/extra目錄中有乙個名為httpd-mpm.conf的配置檔案。該檔案主要用於進行mpm模組的相關配置。不過,在預設情況下,apache的mpm模組配置檔案並沒有啟用。因此,我們需要在httpd.conf檔案中啟用該配置檔案,如下所示:

# server-pool management (mpm specific)

include conf/extra/httpd-mpm.conf (去掉該行前面的注釋符號"#")

2 修改mpm模組配置檔案中的相關配置

修改http-mpm.conf檔案

#由於mpm_winnt模組只會建立1個子程序,因此這裡對單個子程序的引數設定就相當於對整個apache的引數設定。

threadsperchild 521 #預設值是150,推薦設定:小型**=1000 中型**=1000~2000 大型**=2000~3500

3 重啟phpstudy,啟動成功了,接下來幾天是觀察時間了;有錯的話再更新文章!

Apache配置為Tomcat集群的負載均衡器

1 開啟 usr local apache2 conf 目錄下的 httpd.conf 檔案,在檔案最後新增如下配置專案,如圖 4 2 1 所示。proxyrequests off proxypass balancer mycluster balancermember ajp localhost 1...

為Apache配置虛擬機器Virtual Host

配置虛擬機器最少需要修改兩個檔案,即httpd vhosts.conf 和 hosts 記住修改任何配置前先備份哦,這才是個好習慣 第一步,修改httpd vhosts.conf檔案,檔案路徑 apache conf extra 在檔案底部加入下面這段 複製下面的例子 namevirtualhost...

配置apache以支援cgi程序的執行

配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案都是cgi程式並試圖執行。scrip...