久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      深入了解怎么優(yōu)化php+php-fom+nginx配置參數(shù)

      怎么優(yōu)化php+php-fom+nginx配置參數(shù)?下面本篇文章給大家詳細(xì)介紹一下php+php-fom+nginx配置參數(shù)調(diào)優(yōu)的方法,希望對(duì)大家有所幫助。

      深入了解怎么優(yōu)化php+php-fom+nginx配置參數(shù)

      一、前言

      對(duì)于一臺(tái)新的服務(wù)器,安裝LNMP環(huán)境只是第一步,第二步當(dāng)然是要修改默認(rèn)的配置參數(shù),讓這些程序變得好用,性能也提升起來。這篇文章主要講述php+php-fpm+nginx的配置參數(shù),機(jī)器是4GB內(nèi)存的服務(wù)器,相關(guān)配置都是按照4GB內(nèi)存的服務(wù)器來配置的。

      1、mysql配置參數(shù):

      mysql配置參數(shù)調(diào)優(yōu)(8GB內(nèi)存和64GB內(nèi)存)
      mysql配置文件構(gòu)成以及具體的配置demo

      2、注意

      下面給出的一些配置都是相對(duì)來說會(huì)影響性能或者必須要配置的地方,沒有提及的配置都是按照默認(rèn)的來。這三個(gè)程序的配置參數(shù)很多,咱們的服務(wù)器剛開始也著實(shí)用不到太復(fù)雜的配置,下面的配置主要是為了盡量提升高并發(fā)能力以及盡量提高程序的性能。

      php和php-fpm都是5.6版本的。(一切都是為了兼容老項(xiàng)目,,苦逼)

      二、php參數(shù)配置及講解

      1、phpini的基本設(shè)置

      (1)safe_mode  這份的配置采用默認(rèn)的 (2)disable_functions  在默認(rèn)的基礎(chǔ)上,加上eval()函數(shù) (3)expose_php = off (4)register_globals和magic_quotes_gpc參數(shù)都在php5.4.0后被移除了 (5)錯(cuò)誤提示以及日志部分采用默認(rèn)的就行,現(xiàn)在大部分使用的都是框架, 查看框架的錯(cuò)誤日志更方便

      這幾個(gè)參數(shù)是網(wǎng)上經(jīng)常提及的,不過咱們這邊并不是都要按照他們的配置來,畢竟年代已久,很多bug或者性能問題都已經(jīng)被修復(fù)。

      2、php參數(shù)設(shè)置

      (1)max_execution_time = 300

      腳本運(yùn)行的最長(zhǎng)時(shí)間,超出規(guī)定時(shí)間,腳本會(huì)自動(dòng)殺死這個(gè)請(qǐng)求,為了能上傳大文件,所以這個(gè)值設(shè)置的大一些。這個(gè)值太小也會(huì)造成程序502錯(cuò)誤。

      (2)memory_limit = 128M

      每個(gè)腳本使用的最大內(nèi)存

      (3)max_inpit_time = 300

      每個(gè)腳本等待輸入數(shù)據(jù)的最長(zhǎng)時(shí)間

      (4)upload_max_filesize = 20M

      上傳文件的最大許可大小

      (5)allow_url_fopen = off

      禁止打開遠(yuǎn)程地址

      (6)post_max_size = 20M
      post上傳的大小,要>=upload_max_filesize

      (7);cgi.fix_pathinfo=1
      默認(rèn)打開,目前高版本的php已經(jīng)避免了這個(gè)漏洞,php-fpmsecurity.limit_extensions 默認(rèn)值早就是 .php了。所以咱們這個(gè)參數(shù)使用默認(rèn)的就行。
      參考:php fpm 設(shè)置項(xiàng) cgi.fix_pathinfo=1 漏洞不再出現(xiàn)

      關(guān)于php.ini,要設(shè)置的參數(shù)就是這些了,主要是增加程序的運(yùn)行時(shí)間,增加上傳文件大小等,可以方便我們平時(shí)的php開發(fā)。

      三、php-fpm設(shè)置

      1、設(shè)置子進(jìn)程數(shù),增加并發(fā)量

      log_level = notice		//notice級(jí)別的日志,默認(rèn)的 rlimit_files = 4048		//調(diào)整最大打開文件數(shù)量 pm選用動(dòng)態(tài)變化的dynamic  process.max = 150		// 最大子進(jìn)程,設(shè)置成和max_children一樣就行 pm = dynamic pm.max_children = 150	//最大子進(jìn)程,假如一個(gè)進(jìn)程30M,4G內(nèi)存的話最大為:4048/30 = 135,取150 pm.start_servers = 20 pm.min_spare_servers = 6 pm.max_spare_serveres = 30    //計(jì)算公式是:min_spare_servers ≤ start_servers ≤ max_spare_servers ≤ max_children

      這塊很多人都建議,如果你的內(nèi)存比較大,那么設(shè)置靜態(tài)的pm = static,這個(gè)時(shí)候,起作用的只有max_children參數(shù),初始的時(shí)候就有max_children個(gè)進(jìn)程,剛開始一個(gè)php-fpm進(jìn)程只占用3M左右內(nèi)存,我們4GB的機(jī)器按照一個(gè)進(jìn)程20M計(jì)算,可以設(shè)置max_children200或者150。如果是專門的php服務(wù)器,建議是設(shè)置為靜態(tài)的,性能最佳。

      如果設(shè)置成動(dòng)態(tài)的也可以,這樣的話是start_servers等程序起作用,會(huì)隨著業(yè)務(wù)的增加而不斷新增進(jìn)程,不過最大進(jìn)程數(shù)是不能超過max_children的。博主這邊考慮到機(jī)器內(nèi)存小而且機(jī)器上還跑了mysql,redis等,還是選用了動(dòng)態(tài)的,這樣一開始不會(huì)有很大的壓力,等訪問量上來了,可能會(huì)修改為靜態(tài)的。

      2、防止頻繁出現(xiàn)502錯(cuò)誤

      (1)process_control_timeout = 20

      php-fpm給子進(jìn)程分配的時(shí)間間隔

      (2)request_terminate_timeout = 320s

      表示等待320秒后,結(jié)束那些沒有自動(dòng)結(jié)束的php腳本,以釋放占用的資源。設(shè)置320s主要是因?yàn)?code>php的程序運(yùn)行時(shí)間是300s,所以對(duì)于php-fpm來說,這個(gè)值應(yīng)該是大于php腳本規(guī)定的運(yùn)行時(shí)間的(因?yàn)?code>php腳本的運(yùn)行可能還會(huì)帶有mysql服務(wù)或者其他的一些服務(wù),這個(gè)參數(shù)是殺掉這個(gè)進(jìn)程,包括著純php腳本以及其他服務(wù))。

      (3)自動(dòng)重啟設(shè)置

      #表示在emergency_restart_interval所設(shè)值內(nèi)出現(xiàn)SIGSEGV或者SIGBUS錯(cuò)誤的php-cgi進(jìn)程數(shù)如果 #超過emergency_restart_threshold個(gè)php-fpm就會(huì)優(yōu)雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值  emergency_restart_threshold = 30 emergency_restart_interval = 60s	//一分鐘內(nèi)出現(xiàn)30次上述信號(hào)即重啟php-fpm

      (4)pm.max_requests = 1000

      每一個(gè)子進(jìn)程的最大請(qǐng)求服務(wù)數(shù)量,如果超過了這個(gè)值,該子進(jìn)程會(huì)被自動(dòng)重啟。

      比如max_requests這個(gè)參數(shù),如果設(shè)置很大的話,那這個(gè)子進(jìn)程要運(yùn)行很多次才會(huì)重啟,假如這個(gè)請(qǐng)求發(fā)生了錯(cuò)誤或者內(nèi)存泄漏,那么這個(gè)值設(shè)置很大是不合適的。但如果請(qǐng)求沒有問題,這個(gè)值設(shè)置小的話就會(huì)頻繁的重啟,這樣也會(huì)碰到不少502的問題,所以要仁者見仁,智者見智的設(shè)置了,這里初始化設(shè)置1000,如果測(cè)試沒有內(nèi)存泄漏等問題,可以再大一些。

      3、php-fpm中的慢日志設(shè)置

      mysql中有慢日志這個(gè)概念,可以記錄查詢速度比較慢的sql,同樣的,php-fpm也可以開啟慢日志,記錄執(zhí)行速度比較慢的php請(qǐng)求,方便我們后續(xù)的調(diào)試和優(yōu)化。

      (1)慢日志的主要參數(shù)

      request_slowlog_timeout : 默認(rèn)是注釋的,打開注釋,設(shè)置為1,代表請(qǐng)求超過1s,就會(huì)記錄這個(gè)腳本到慢日志文件中。也可以的更大,按照需求來。
      slowlog : 默認(rèn)也是注釋的,可以打開注釋使用默認(rèn)的慢日志路徑,也可以自定義路徑。

      這里開啟慢日志,如下:

      request_slowlog_timeout = 2   # 記錄超過2s的請(qǐng)求 slowlog = /var/log/php-fpm/www-slow.log	#慢日志路徑

      (2)利用sort/uniq命令分析匯總php-fpm慢日志:

      grep -v “^$” www.log.slow.tmp | cut -d ” ” -f 3,2 | sort | uniq -c | sort -k1,1nr | head -n 50

      參數(shù)解釋:

      sort: 對(duì)單詞進(jìn)行排序 uniq -c: 顯示唯一的行,并在每行行首加上本行在文件中出現(xiàn)的次數(shù) sort -k1,1nr: 按照第一個(gè)字段,數(shù)值排序,且為逆序 head -10: 取前10行數(shù)據(jù)

      4、php-fpm中的backlog是干啥的?

      如果worker進(jìn)程不夠用,master進(jìn)程會(huì)prefork

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