apache php配置優化

2021-10-08 02:47:49 字數 2028 閱讀 2541

1、httpd -v 檢視http工作的模式,apache2.4有三個模式:prefork、worker、event。

worker和event型別,event相當於是worker的進化版。

2、程序和執行緒的配置

看具體是什麼模型,目前專案中使用的是event,應對高併發場景比前兩者會好。

startservers 3 //初始化的程序數,預設最大16,如果需要增大,需要設定serverlimit 值

minsparethreads 75

maxsparethreads 250 //最小/最大空閒數量,不是很關鍵,是為了當請求進來的時候可以馬上處理

serverlimit  32 //子程序最大數量(這個感覺還是不能開太大,比較程序,多的話比較耗費資源)

threadsperchild 25 //每個子程序固定的執行緒數(預設最大64 ,最高20000)

maxrequestworkers 400 

//最大工作執行緒數量,當負載不夠的情況下,系統會自動建立程序和執行緒數,從上面的配置理論上最大可以達到16*25=400,如果不夠的話,需要配置serverlimit , 一旦配置了,threadsperchild  * serverlimit (預設的程序數16)需要大於=maxrequestworkers,並且,maxrequestworkers的值需要是threadsperchild 的整數倍。

maxconnectionsperchild 20000  //需要配置下,避免記憶體洩漏

3、超時配置

keepalivetimeout:適用長連線,多個連線的間隔時間,超過後就會重新建立http連線,負載高的時候部分使用者會占用連線,導致部分使用者處理不了。

timeout:單次http請求,傳送資料的間隔超時時間。不管是客戶端發給服務端還是服務端發給客戶端,只要傳送了資料就重新計時。

requestreadtimeout: 通過reqtimeout_module模組進行設定,防止慢速攻擊

requestreadtimeout header=20-40,minrate=500 body=20,minrate=500

引數解釋:設定從客戶端接收請求頭和主體的超時值,頭至少20s,最多40s,按照每接收到到500位元組增加一秒。主體為20s超時,也是500位元組增加一秒。

proxytimeout : **超時時間

3、php-fpm引數調優

pm = static   

pm.max_children = 100 #程序數

pm.start_servers = 15  

pm.min_spare_servers = 15

pm.max_spare_servers = 60

pm.max_requests = 10000  #達到多少請求後重啟程序,如果後期伺服器記憶體不夠,試著調低該值

request_terminate_timeout = 100  # 根據自己的業務需求,因為有些程式可能跑比較長的時間,這裡插一句,決定指令碼執行的時間是由這個引數和 php.ini中的max_excute_time共同決定的,取最低值。

記憶體大的伺服器(比如8g以上)來說,指定靜態的max_children實際上更為妥當,因為頻繁開關php-fpm程序也會有時滯,所以記憶體夠大的情況下開靜態效果會更好。

檢視apache程序數目

ps aux | grep apache | wc -l

worker/event模式下,檢視執行緒數目。

ps -elf | grep apache | wc -l

檢視php-fpm程序數。

ps aux | grep php-fpm | wc -l

檢視每個fpm的占用記憶體。

ps --no-headers -o "rss,cmd" -c php-fpm | awk ' end '

apache php 環境配置

今天配置apache2.2.17 php 環境,因為以前都沒有手工配置過,所以出現了不少小問題.1.預設安裝完apache後,在c apache 目錄下有乙個httpd.conf檔案讓我比較confused,不過該檔案不需要理會,我們通過 開始 程式 apache configure apache ...

Apache PHP配置攻略

然後移動到 usr local 目錄 mv home loveme23 apache 1.3.20.tar.gz usr local mv home loveme23 php 4.4.6.tar.gz usr local 接下來解壓 tar zxvf php 4.4.6.tar.gz tar zxv...

windows配置apache php環境

1 準備好應用檔案 3 開啟conf檔案裡面的httpd.conf檔案,找到define srvroot,documentroot,listen 80 改變後面引號內的值 define srvroot d apache documentroot d apache htdocs listen 90 防...