本文目錄一覽:
- 1、linux服務器 php-cgi進程數太多,內存不夠了 求解 謝謝
- 2、啟動php-fpm為什麼有啟動了多個進程
- 3、如何看php-fpm 進程數量是否足夠
- 4、windows下nginx 啟動php-cgi進程數量怎麼修改
linux服務器 php-cgi進程數太多,內存不夠了 求解 謝謝
1. 把最大的php-cgi 進程數調整到內存可承受的範圍內
2. 你自己得判斷下是不是內存的硬需求,如果實在內存不足,那就可以通過增加內存了。更甚可以採用負載均衡。
啟動php-fpm為什麼有啟動了多個進程
php-fpm的兩種進程管理模式php-fpm的進程數也是可以根據設置分為動態和靜態的。一種是直接開啟指定數量的php-fpm進程,不再增加或者減少;另一種則是開始的時候開啟一定數量的php-fpm進程,當請求量變大的時候,動態的增加php-fpm進程數到上限,當空閑的時候自動釋放空閑的進程數到一個下限。這兩種不同的執行方式,可以根據服務器的實際需求來進行調整。這裡先說一下涉及到這個的幾個參數吧,他們分別是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。pm表示使用那種方式,有兩個值可以選擇,就是static(靜態)或者dynamic(動態)。在更老一些的版本中,dynamic被稱作apache-like。這個要注意看配置文件給出的說明了。PHP5.3php-fpm的默認靜態處理方式會使得php-cgi的進程長期佔用內存而無法釋放,這也是導致nginx出錯的原因之 一,因此可以將php-fpm的處理方式改成apache模式。下面4個參數的意思分別為:pm.max_children:靜態方式下開啟的php-fpm進程數量。pm.start_servers:動態方式下的起始php-fpm進程數量。pm.min_spare_servers:動態方式下的最小php-fpm進程數量。pm.max_spare_servers:動態方式下的最大php-fpm進程數量。如果dm設置為static,那麼其實只有pm.max_children這個參數生效。系統會開啟設置的數量個php-fpm進程。如果dm設置為dynamic,那麼pm.max_children參數失效,後面3個參數生效。系統會在php-fpm運行開始的時候啟動 pm.start_servers個php-fpm進程,然後根據系統的需求動態在pm.min_spare_servers和 pm.max_spare_servers之間調整php-fpm進程數。那麼,對於我們的服務器,選擇哪種執行方式比較好呢?事實上,跟Apache一樣,我們運行的PHP程序在執行完成後,或多或少會有內存泄露的問題。這也是為什麼開始的時候一個php-fpm進程只佔用3M左右內存,運行一段時間後就會上升到20-30M的原因了。所以,動態方式因為會結束掉多餘的進程,可以回收釋放一些內存,所以推薦在內存較少的服務器或者VPS上使用。具體最大數量根據 內存/20M 得到。比如說512M的VPS,建議pm.max_spare_servers設置為20。至於pm.min_spare_servers,則建議根據服務器的負載情況來設置,比較合適的值在5~10之間。然後對於比較大內存的服務器來說,設置為靜態的話會提高效率。因為頻繁開關php-fpm進程也會有時滯,所以內存夠大的情況下開靜態效果會更好。數量也可以根據內存/30M 得到。比如說2GB內存的服務器,可以設置為50;4GB內存可以設置為100等。
如何看php-fpm 進程數量是否足夠
首先,需要預估項目在生產環境能有多少並發產生,根據預估設置初始fpm進程數配置,具體可以參考PHP文檔
對於FPM的監控
建議開啟php-fpm.conf中pm.status_path設置,可以通過url請求獲取當前時刻fpm的進程狀態,支持html,josn,xml等數據格式返回,結合定時任務,可以做成一個fpm狀態監控,通過url獲取的數據中,’listen queue’ 表示請求等待隊列,這個參數如果不為0,就表示當前進程數被使用完了,新的請求過來必須進入等待隊列,所以,通過這個參數,就可以判斷是否應該增加進程數或加強服務器配置
windows下nginx 啟動php-cgi進程數量怎麼修改
NMP環境現在還是比較多人用的,下面介紹一個修改php-cgi進程數的方法: 一、修改php-cgi: vi /usr/local/nginx/conf/nginx.conf 二、其中worker_processes 1;可以修改成2或3個,nginx本身就很強大,不需要像apache那樣,開啟過多的進程來保證其穩定運行。 vi /usr/local/php/etc/php-fpm.conf 三、找到,按你的內存容量修改PHP進程的數量,一般128內存開啟6個,256內存開啟16個。這樣能保證,在PHP大並發的情況下不會502錯誤,註:PHP5.3系列不需要修改。 四、優化後,重啟lnmp /root/lnmp restart
原創文章,作者:XDDUS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/316707.html