PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法
在部署一套內(nèi)網(wǎng)測(cè)試環(huán)境時(shí),頻繁宕機(jī),開機(jī)后不斷的吃內(nèi)存,重啟apache之后內(nèi)存占用會(huì)不停的上漲,直到swap用完,直到死機(jī),由于是內(nèi)網(wǎng)環(huán)境,服務(wù)器并發(fā)和壓力都很小。
查看apache錯(cuò)誤日志,報(bào)大量類似錯(cuò)誤:
[Tue Feb 14 14:49:28 2012] [warn] child process 7751 still did not exit, sending a SIGTERM
[Tue Feb 14 14:49:30 2012] [error] child process 7603 still did not exit, sending a SIGKILL
[Tue Feb 14 14:49:30 2012] [error] child process 7614 still did not exit, sending a SIGKILL
后查出來是因?yàn)閜hp某一些腳本存在內(nèi)存泄露的代碼段。而apache處理這些代碼段的進(jìn)程的處理請(qǐng)求數(shù)被設(shè)置為無窮。也就是說這些進(jìn)程只有在apache重啟(stop-start模式)或者服務(wù)器重啟的情況下才會(huì)被kill,否則將一直運(yùn)行下去,直到耗盡系統(tǒng)的最后一點(diǎn)資源(主要是內(nèi)存)。
問題分析:
//服務(wù)器允許配置的進(jìn)程數(shù)上限
ServerLimit 1500
//設(shè)置服務(wù)器啟動(dòng)時(shí)建立的子進(jìn)程數(shù)量。因?yàn)樽舆M(jìn)程數(shù)量動(dòng)態(tài)的取決于負(fù)載的輕重,所有一般沒有必要調(diào)整這個(gè)參數(shù)。
StartServers 5
//MinSpareServers:設(shè)置空閑子進(jìn)程的最小數(shù)量。所謂空閑子進(jìn)程是指沒有正在處理請(qǐng)求的子進(jìn)程。如果當(dāng)前空閑子進(jìn)程數(shù)少于MinSpareServers,那么Apache將以最大每秒一個(gè)的速度產(chǎn)生新的子進(jìn)程。
MinSpareServers 5
//設(shè)置空閑子進(jìn)程的最大數(shù)量。如果當(dāng)前有超過MaxSpareServers數(shù)量的空閑子進(jìn)程,那么父進(jìn)程將殺死多余的子進(jìn)程。
MaxSpareServers 10
//用于客戶端請(qǐng)求的最大接入請(qǐng)求數(shù)量(最大線程數(shù))。
MaxClients 1500
//設(shè)置每個(gè)子進(jìn)程在其生存期內(nèi)允許提供的最大請(qǐng)求數(shù)量
MaxRequestsPerChild 50
問題解決:
設(shè)置 MaxRequestsPerChild 50或30
MaxRequestsPerChild不能太大,也不能設(shè)置為0,最好設(shè)置為一個(gè)相對(duì)不大的數(shù)字,100內(nèi)可能就夠了,防止httpd進(jìn)程有意外的內(nèi)存泄露。
- 在CentOS 6 中安裝WordPress(一) 安裝Apache,Mysql, PHP環(huán)境
- win7 64位系統(tǒng) 配置php最新版開發(fā)環(huán)境(php+Apache+mysql)
- apache集成php5.6方法分享
- Windows系統(tǒng)下Apache、PHP無法啟動(dòng)問題總結(jié)
- Apache2.4.x版wampserver本地php服務(wù)器如何讓外網(wǎng)訪問及啟用.htaccess
- Windows下Apache + PHP SESSION丟失的解決過程全紀(jì)錄
- apache You don''t have permission to access /test.php on this server解決方法
- Apache同時(shí)支持PHP和Python的配置方法
- 簡(jiǎn)單介紹win7下搭建apache+php+mysql開發(fā)環(huán)境
- win7系統(tǒng)配置php+Apache+mysql環(huán)境的方法
- windows下apache搭建php開發(fā)環(huán)境
- apache和PHP如何整合在一起
相關(guān)文章
Linux命令?移動(dòng)/復(fù)制文件/目錄到指定目錄下的實(shí)現(xiàn)
這篇文章主要介紹了Linux命令?移動(dòng)/復(fù)制文件/目錄到指定目錄下的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Linux中部署MeterSphere實(shí)現(xiàn)遠(yuǎn)程訪問
MeterSphere是一站式開源持續(xù)測(cè)試平臺(tái), 涵蓋測(cè)試跟蹤、接口測(cè)試、UI 測(cè)試和性能測(cè)試等功能,全面兼容 JMeter、Selenium 等主流開源標(biāo)準(zhǔn),有效助力開發(fā)和測(cè)試團(tuán)隊(duì)充分利用云彈性進(jìn)行高度可擴(kuò)展的自動(dòng)化測(cè)試,2023-10-10
本文介紹Linux中部署MeterSphere實(shí)現(xiàn)遠(yuǎn)程訪問MeterSphere界面解決Linux中Systemd服務(wù)環(huán)境變量缺失的問題
在Linux系統(tǒng)運(yùn)維中,我們可能會(huì)遇到在使用systemd管理的服務(wù)時(shí)無法獲取系統(tǒng)環(huán)境變量,尤其是PATH變量,這確實(shí)是一個(gè)常見的挑戰(zhàn),因?yàn)閟ystemd啟動(dòng)的服務(wù)通常不會(huì)加載用戶的環(huán)境變量,下面,我們將一起探討解決這一問題的幾種方法,需要的朋友可以參考下2024-01-01Apache網(wǎng)頁(yè)的優(yōu)化、安全與防盜鏈圖文詳解
防盜鏈就是防止別人的網(wǎng)站代碼里面盜用服務(wù)器的圖片、文件、視頻等相關(guān)資源,下面這篇文章主要給大家介紹了關(guān)于Apache網(wǎng)頁(yè)的優(yōu)化、安全與防盜鏈的相關(guān)資料,需要的朋友可以參考下2022-10-10linux注釋crontab文件及crontab執(zhí)行sh的坑記錄
這篇文章主要介紹了linux注釋crontab文件及crontab執(zhí)行sh的坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04