php fpm優化處理

2022-02-09 07:18:02 字數 1216 閱讀 5386

php-fpm.conf有兩個至關重要的引數:乙個是」max_children」,另乙個是」request_terminate_timeout」.

我的兩個設定的值乙個是」40″,乙個是」900″,但是這個值不是通用的,而是需要自己計算的。

計算的方式如下:

如 果你的伺服器效能足夠好,且寬頻資源足夠充足,php指令碼沒有系迴圈或bug的話你可以直接將」request_terminate_timeout」設 置成0s。0s的含義是讓php-cgi一直執行下去而沒有時間限制。而如果你做不到這一點,也就是說你的php-cgi可能出現某個bug,或者你的寬 帶不夠充足或者其他的原因導致你的php-cgi能夠假死那麼就建議你給」request_terminate_timeout」賦乙個值,這個值可以根 據你伺服器的效能進行設定。一般來說效能越好你可以設定越高,20分鐘-30分鐘都可以。由於我的伺服器php指令碼需要長時間執行,有的可能會超過10分 鐘因此我設定了900秒,這樣不會導致php-cgi死掉而出現502 bad gateway這個錯誤。

而」max_children」 這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的程序多了就會處理的很快,排隊的請求就會很少。設定」max_children」 也需要根據伺服器的效能進行設定,一般來說一台伺服器正常情況下每乙個php-cgi所耗費的內存在20m左右,因此我的」max_children」我 設定成40個,20m*40=800m也就是說在峰值的時候所有php-cgi所耗內存在800m以內,低於我的有效記憶體1gb。而如果我 的」max_children」設定的較小,比如5-10個,那麼php-cgi就會「很累」,處理速度也很慢,等待的時間也較長。如果長時間沒有得到處 理的請求就會出現504 gateway time-out這個錯誤,而正在處理的很累的那幾個php-cgi如果遇到了問題就會出現502 bad gateway這個錯誤。

max_requests即是說每個程序若超過這個數目(跟php程序有一點點關係,關 系不大),就自動殺死..我這裡應該設定512的,不過懶得壓力測試了,設定大一點,不過也不要設定過大,是個結構體,沒測試過,接近8k到9k大小.網 上動輒設定100k,有點浪費記憶體了.乙個程序浪費大小接近1m.按照網上常用配置的128個程序,大概浪費100m左右.好吧,我承認100m是白菜 價,但也別這樣浪費..= =

max_children基本就是程序數,跟nginx的程序沒有想象中的那麼大,因為fpm會自己管理程序(有待考證,起碼我簡單瀏覽了一下原始碼,認為是這個意思).引數不宜設定過大,很佔記憶體,程序的消耗就不用我多說了

記憶體優化處理

使用分析器,修改洩露的問題 避免循壞引用,dealloc rootviewcontroller block 的self 等引數 確定dealloc 方法按照預期呼叫了 基本上沒什麼好說了,你已經做了你該做的 顯然uikit本身還做了一些其它的你不需要知道的事情,也許是為了優化整個流程,也許是對特定的...

sql sever查詢優化處理

sql server查詢優化 sql語句優化彙總 有關查詢優化的討論 50種方法巧妙優化你的sql server資料庫 2008 06 11 11 25查詢速度慢的原因很多,常見如下幾種 1 沒有索引或者沒有用到索引 這是查詢慢最常見的問題,是程式設計的缺陷 2 i o吞吐量小,形成了瓶頸效應。3 ...

sql優化處理總匯

1 沒有索引或者沒有用到索引。經常會用到這樣問題這個地方該不該用索引?這個問題等下說先了解下索引。當你新增個索引的時候首先建立乙個索引檔案。一般來說,在where和join中出現的列需要建立索引,但也不完全如此,因為mysql只對 between,in,以及某些時候的like才會使用索引。因為在以萬...