php cgi.exe太多的解決方法:先檢查系統碟空間;然後將PHP安裝為CGI模式或ISAPI模式;接著修改程式;最後在web伺服器設定中最佳化fastcgi設定檔參數即可。
推薦:《PHP視訊教學》
伺服器大量php-cgi.exe進程,導致CPU佔用100%的解決
出現此問題一般為程式方面問題,如程式採用fastcgi方式運作PHP,而程式設定的StartProcesses又偏大,如6甚至更大。
解決參考:
1.檢查系統磁碟空間。查看系統臨時檔案是否過多,MySQL資料庫的臨時檔案預設存到了c:/windows/temp,導致累積了幾萬甚至上百萬的小文件,壓垮系統盤。
del *.* 刪除所有檔案
2.PHP是一種廣泛使用的動態腳本語言,不過在IIS中並沒有內建對PHP語言的支持,因此如果需要使用PHP ,必須自行安裝。 PHP可以安裝為CGI模式或ISAPI模式,由於ISAPI模式具有更高的效能,因此我建議大家使用ISAPI模式。
3.如能修改程序,建議將程式設定檔中的StartProcesses值縮到2,看是否有改善。
4.看是否伺服器有問題攻擊現象。
windows 2003 IIS6中最佳化fastcgi設定檔fcgiext.ini,減少PHP-cgi.exe進程數和所佔記憶體大小
本來聽說fastcgi比isapi好就在伺服器中安裝上了,配置環境為windows 2003 IIS6 fastcgi(FCGI) PHP5.2.17,經過與很長一段時間觀察,發現工作在FastCGI模式下的PHP會佔用越來越多的內存,訪問量稍微多點php-cgi進程就多了N個,同樣情況下能比原來用isapi模式的時候多出幾百M,我的伺服器記憶體只有2G傷不起啊。
我在網路上搜尋了一下,發現還有不少人面臨同樣的問題。來自PHP官方的一個比較正式的解釋是:php-cgi進程並沒有內存洩漏,php-cgi會在每個請求結束的時候回收腳本使用的全部內存,但是並不會釋放給操作系統,而是繼續持有以應對下一次PHP請求。這樣做大概是為了減少記憶體碎片化或是解決從系統申請記憶體之後又釋放回作業系統所需的時間不可控問題。可是如果偶然一次PHP請求使用了諸如ftp或zlib這樣的大記憶體操作,那麼將導致一大塊系統記憶體被php-cgi持續佔有,不能被利用。
解決這個問題的方法是在web伺服器設定中最佳化fastcgi設定檔參數。
在C:\WINDOWS\system32\inetsrv\fcgiext.ini 檔案中可以設定php-cgi進程相關參數,如:
[Types] php = PHP [PHP] ExePath=C:\php-5.3.8-nts-Win32-VC9-x86\php-cgi.exe maxInstances=100 InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000 RequestTimeout=600 ActivityTimeout=900
在上面的設定:
ExePath 指定了FastCGI解析程序的路径, instanceMaxRequests 指定了每个实例可以处理的最大请求数, maxInstances 指定可以启动的最大实例数目, EnvironmentVars 创建了一个环境变量 PHP_FCGI_MAX_REQUESTS ,默认值设为10000, requestTimeout 指定了请求的超时时间为600秒, activityTimeout 指定了活动会话超时时间为900秒。
一下是建議值:
maxInstances=
把這個值改小
建議
512M 内存的改maxInstances=50 1G 内存的改maxInstances=80 2G 内存的改maxInstances=140
再修改
InstanceMaxRequests=
把這個值改小
建議
512M 内存的改InstanceMaxRequests=200 1G 内存的改InstanceMaxRequests=300 2G 内存的改InstanceMaxRequests=500
改完, 重啟IIS。
instanceMaxRequests PHP_FCGI_MAX_REQUESTS 這兩個參數決定了一個php-cgi進程被建立出來之後,最多接受的PHP請求數,在lighttpd中預設配置是10000。也就是說這個php-cgi進程每接受10000次PHP請求後會終止,釋放所有內存,並重新被管理進程啟動。如果把它降低,例如改成100,那麼php-cgi重啟的週期會大大縮短,偶然的高記憶體操作造成的問題影響時間也會縮短。
maxInstances 這個參數指定可以啟動的最大實例數目,即php-cgi.exe進程的數目。如果把它降低,例如改成100,那麼在工作管理員的進程中最多只有php-cgi.exe進程,php-cgi.exe所佔用的總記憶體將大大減少。
我現在用的伺服器為windows 2003作業系統,4G內存,一個php-cgi.exe程式佔用7-25M內存,我把maxInstances值調為300,減少了php-cgi.exe進程的總數量,佔用記憶體也減少了,反應速度比以前快了不少,至少調整到多少,可根據您的網站訪問量來決定。
以上是如何解決php cgi.exe 太多的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用