[Linux] Nginx服務下統計網站的QPS


單位時間的請求數就是QPS,那么在nginx服務的網站下,如果要統計QPS並且按從高到低排列,需要使用awk配合sort進行處理
awk做的主要工作是把access每行日志按分隔符分開,然后循環每一行,存到一個數組里,如果只按時間不區分腳本路徑,數組里存的數據是比如arr['[28/Nov/2019:14:12:23']=20 key是時間,value是次數

使用下面這個shell可以統計到只按時間的QPS
cat /var/log/nginx/access.log|awk '{a[$4]+=1;}END{for (i in a) { printf("%s\t%i\n",i,a[i])}}'|sort -gr -k2|head

 

 

 

awk '{}END{}'這個的意思就是{}里面的會每行執行,創建一個數組,把當前$4的數據作為key,出現次數作為value,每出現一次加1,END后面的只會最后執行,END里面還有個for in循環,awk的分割規則需要根據自己的日志格式進行
sort -g是按數字排 -r是從高到低 -k2是排第二列

下面這個是把當前時間和腳本的地址也一塊作為key,這樣計算出來的是,單位時間的某個接口地址下的QPS,具體的分割規則需要根據自己的業務自行分割
cat /var/log/nginx/access.log|awk '{print $4 $8}'|awk -F '?' '{a[$1]+=1}END{for(i in a){printf("%s\t%d\n",i,a[i])}}'|sort -gr -k2|head


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM