亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    php怎么設(shè)置并發(fā)連接數(shù)

    php設(shè)置并發(fā)連接數(shù)的方法:1、找到php-fpm.conf配置;2、編輯選項【pm= static】、【request_terminate_timeout】、【pm.max_requests】。

    php怎么設(shè)置并發(fā)連接數(shù)

    本文操作環(huán)境:windows10系統(tǒng)、php 7、thinkpad t480電腦。

    首先我們需要在服務(wù)器中找到php-fpm.conf配置(也有可能會在引入的www.fong配置中)

    找到如下內(nèi)容:

    [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log log_level = notice   [www] listen = /tmp/php-cgi.sock listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www listen.group = www listen.mode = 0666 user = www group = www pm = static pm.max_children = 200 pm.start_servers = 40 pm.min_spare_servers = 10 pm.max_spare_servers = 20 pm.max_requests=1000 request_terminate_timeout = 100 request_slowlog_timeout = 0 slowlog = var/log/slow.log

    —————————————————————————

    pm.max_children=30 pm.max_requests=500 pm.start_servers=4 pm.max_spare_servers=30

    一. pm= static

    首先說一下pm這個值 pm = dynamic 這個是php的進程數(shù)是動態(tài)的 會根據(jù)訪問量來確定來回增加

    而在高負載的php環(huán)境下我推薦設(shè)置 pm= static php-fpm進程數(shù)固定

    二. pm.max_children=???

    當用靜態(tài)模式下 進程數(shù)確定根據(jù) pm.max_children來進進行確定 那么問題來了我的服務(wù)器應(yīng)該設(shè)定多少php-fpm呢 ?

    從理論的角度上說php-fpm進程數(shù)越多越好,相當于一個酒店有很多個充足的服務(wù)員來為你服務(wù)肯定會比較爽啊 ,你也不需要等待。

    但是。。?!,F(xiàn)實上總是殘酷的 php-fpm的進程數(shù)會受到你的內(nèi)存大小的限制。一般情況下我們 進程數(shù) =用機器內(nèi)存(M)除以2 再除以20(M);

    當然這個也不是絕對的 你需要知道:

    你可以分配給php多大內(nèi)存 :你的服務(wù)器上是不是單純的php服務(wù)器 有沒有比較耗費內(nèi)存的其他程序(mysql)。 你的每個php-fpm內(nèi)存占多大 :內(nèi)存占用多大要根據(jù)你的php代碼質(zhì)量和處理的相關(guān)業(yè)務(wù)。當然你可以用命令去統(tǒng)計你的php-fpm平均占用內(nèi)存大小。

    有人會問我如果設(shè)置不恰當會有什么狀況出現(xiàn)呢?

    當數(shù)值偏小時請求到nginx會無法分配到php-fpm進程 導(dǎo)致502錯誤

    php怎么設(shè)置并發(fā)連接數(shù)

    當數(shù)值偏大如果沒有大訪問量還好 如果訪問量較大的話 內(nèi)存都會被php占光了。導(dǎo)致系統(tǒng)響應(yīng)緩慢 cpu-system 升高 系統(tǒng)不斷的去調(diào)整內(nèi)存分配

    嚴重時會導(dǎo)致較高的 cup-wait 較高 內(nèi)存不夠用了 直接寫磁盤 磁盤io直線增加 。cpu使用率也開始爆滿。(如圖所示)

    php怎么設(shè)置并發(fā)連接數(shù)

    三.request_terminate_timeout

    計算方式如下:如果你的服務(wù)器性能足夠好,且寬帶資源足夠充足,PHP腳本沒有循環(huán)或BUG的話你可以直接將”request_terminate_timeout”設(shè) 置成0s。0s的含義是讓PHP-CGI一直執(zhí)行下去而沒有時間限制。

    而如果你做不到這一點,也就是說你的PHP-CGI可能出現(xiàn)某個BUG,或者你的寬帶不夠充足或者其他的原因?qū)е履愕腜HP-CGI能夠假死那么就建議你給”request_terminate_timeout”賦一個值,這個值可以根 據(jù)你服務(wù)器的性能進行設(shè)定。

    一般來說性能越好你可以設(shè)置越高,20分鐘-30分鐘都可以。由于我的服務(wù)器PHP腳本需要長時間運行,有的可能會超過10分鐘因此我設(shè)置了900秒,這樣不會導(dǎo)致PHP-CGI死掉而出現(xiàn)502 Bad gateway這個錯誤。

    四.pm.max_requests

    這個參數(shù)的含義是php-fpm工作進程處理完多少請求后自動重啟,主要目的就是為了控制請求處理過程中的內(nèi)存溢出,使得內(nèi)存占用在一個可接受的范圍內(nèi)。比較適用于服務(wù)器搭載項目比較雜亂,有點請求會比較占用內(nèi)存

    導(dǎo)致php-fpm占用比較大。在經(jīng)過一定次數(shù)請求后會結(jié)束掉進程,釋放自己的內(nèi)存。如果這個值太小就會導(dǎo)致所有的工作進程幾乎同時達到這個值并且進入需要重啟的狀態(tài),當所有的工作進程都在同一時刻重啟就會發(fā)生在

    數(shù)秒內(nèi)甚至更長的時間PHP將停止響應(yīng)直到所有的進程均重啟完為止。這是不能接受的,所以我一般會把這個值設(shè)置為PHP啟動后第一批工作進程達到此值需要重啟時,第一個進程重啟與最后一個進程重啟之間的時間相差

    1分鐘以上,一般在壓力比較大的晚上這個差值將會擴大到5分鐘左右,此時對進程重啟對服務(wù)器的負面影響就可以忽略了。

    下面補充幾個命令統(tǒng)計相關(guān)php-fpm 相關(guān)數(shù)據(jù)

    1、查看php-fpm的進程個數(shù)

    ps -ef |grep "php-fpm"|grep "pool"|wc -l

    2、查看每個php-fpm占用的內(nèi)存大小

    ps -ylC php-fpm --sort:rss

    3.查看PHP-FPM在你的機器上的平均內(nèi)存占用

    ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%sn", sum/NR/1024,"M") }'

    4.查看單個php-fpm進程消耗內(nèi)存的明細

    pmap $(pgrep php-fpm) | less

    重啟php-fpm

    1. 停止命令     pkill php-fpm    2.重啟或啟動命令    php-fpm -R   或 /alidata/server/php/sbin/php-fpm

    推薦學(xué)習(xí):php培訓(xùn)

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號