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

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

    php寫定時器怎么避免內(nèi)存泄露

    對于PHP-FPM多進程的模式,想要避免內(nèi)存泄漏問題很簡單,就是要讓PHP-CGI在處理一定數(shù)量進程后退出即可。

    php寫定時器怎么避免內(nèi)存泄露

    否則PHP程序或第三方模塊(如Imagemagick擴展)導(dǎo)致的內(nèi)存泄漏問題會導(dǎo)致內(nèi)存耗盡或不足。

    php-fpm.conf中有相關(guān)配置: (推薦學(xué)習(xí):PHP視頻教程)

    #請自行按需求配置 pm.max_requests = 1024

    實際上還有另一個跟它有關(guān)聯(lián)的值max_children,這個是每次php-fpm會建立多少個進程,這樣實際上的內(nèi)存消耗是max_children*max_requests*每個請求使用內(nèi)存。

    另外一些粗暴的方法包括建立cron kill掉占用內(nèi)存過多的php-cgi

    1.檢查php進程的內(nèi)存占用,殺掉內(nèi)存使用超額的進程

    一般情況下,如果php-cgi進程占用超過1%的內(nèi)存,就得考慮一下是否要殺掉它了。因為普通情況下,php-cgi進程一般占用0.2%或以下。

    這里提供一個腳本供各位使用,就是放在cron任務(wù)里,每分鐘執(zhí)行一次。

    使用crontab -e 命令,然后添加如下調(diào)度任務(wù)

    * * * * * /bin/bash /usr/local/script/kill_php_cgi.sh

    kill_php_cgi.sh腳本如下

    * * * * * /bin/bash /usr/local/script/kill_php_cgi.sh  kill_php_cgi.sh腳本如下  #!/bin/sh #如果是要殺掉php-fpm的進程,下面的語句中php-cgi請改成php-fpm pids=`ps -ef|grep php-cgi|grep -v "grep"|grep -v "$0"| awk '{print $2}'` if [ "$pids" != "" ];then for  pid  in   $pids; do kill -9 $pid done  fi

    2.增加內(nèi)存,將PHP_FCGI_MAX_REQUESTS的值設(shè)置成跟你內(nèi)存總存儲量相對應(yīng)的值

    3.優(yōu)化程序,降低處理每次請求占用的內(nèi)存大小

    如果PHP-FPM能夠提供配置子進程內(nèi)存超過指定大小就被kill,那就省事多了

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