常用的linux 查詢程序狀況命令
從下圖可以看出當前php-fpm所有程序平均每個程序占用了60-70mb的記憶體,啟動時間,是當天的話就是3:12,否則會顯示是x月x日。
php-fpm.conf就是php-fpm的配置檔案,路徑一般在:
/usr/local/php/etc
php-fpm.conf幾個重要的引數說明如下:
pm = dynamic #指定程序管理方式,有3種可供選擇:static、dynamic和ondemand。
pm.max_children = 100 #static模式下建立的子程序數或dynamic模式下同一時刻允許最大的php-fpm子程序數量。
pm.start_servers = 10 #動態方式下的起始php-fpm程序數量。
pm.min_spare_servers =80 #動態方式下伺服器空閒時最小php-fpm程序數量。
pm.max_spare_servers = 16 #動態方式下伺服器空閒時最大php-fpm程序數量。
pm.max_requests = 2000 #php-fpm子程序能處理的最大請求數。超過該值則自動重啟該程序,這樣達到了釋放記憶體的目的了
該值設定合理可以避免記憶體溢位,能夠及時的釋放記憶體。可以根據自己伺服器流量情況來設定
pm.process_idle_timeout = 10s
request_terminate_timeout = 600
該值也比較重要,預設是0,沒有時間限制,也就是如果某個請求非常慢,那麼該程序可能會因為一直沒有響應導致程序僵死,設定適當的值可以在超時時間中止請求。
引數配置參考:
如果**是 cpu 計算密集型的,pm.max_chindren 不能超過 cpu 的核心數。
如果不是,那麼將 pm.max_chindren 的值大於 cpu 的核心數,是非常明智的。
國外技術大拿給出這麼個公式:
在 n + 20% 和 m/m 之間。
n 是 cpu 核心數量。
m 是 php 能利用的記憶體數量。
m 是每個 php 程序平均使用的記憶體數量。
適用於 dynamic 方式。
static方式:m/(m * 1.2)
當然,還有一種保險的方式,來配置 max_children。適用於 static 方式。
先把 max_childnren 設定成乙個比較大的值。
穩定執行一段時間後,觀察 php-fpm 的 status 裡的 max
active processes 是多少
然後把 max_children 配置比它大一些就可以了。
pm.max_requests:指的是每個子程序在處理了多少個請求數量之後就重啟。
這個引數,理論上可以隨便設定,但是為了預防記憶體洩漏的風險,還是設定乙個合理的數比較好
PHP配置優化 php fpm配置解讀
php fpm是乙個php fastcgi管理器,php fpm.conf配置檔案用於控制php fpm管理程序的相關引數,比如工作子程序的數量 執行許可權 監聽埠 慢請求等等。我們在編譯安裝php的時,在.configure的時候帶 enable fpm引數即可開啟php fpm。php fpm配...
日誌 php 配置優化 php fpm配置解讀
php fpm是乙個php fastcgi管理器,php fpm.conf配置檔案用於控制php fpm管理程序的相關引數,比如工作子程序的數量 執行許可權 監聽埠 慢請求等等。我們在編譯安裝php的時,在.configure的時候帶 enable fpm引數即可開啟php fpm。php fpm配...
php fpm併發優化
伺服器lnmp環境安裝好後,沒有進行配置優化,就採用的預設配置。最近開始推廣,突然就遇到效能問題了。主要症狀是 1.有時第一次連線的時候很慢,連線上後就很快。2.採用qq登入,會變得很慢。然後其它人訪問也會變得很慢。初步分析原因是 首先排除cpu和記憶體瓶頸的問題 1.預設配置,只啟動了兩個php ...