zoukankan      html  css  js  c++  java
  • [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 %i ",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 %d ",i,a[i])}}'|sort -gr -k2|head

  • 相关阅读:
    oracle的over函数应用(转载)
    Oracle decode()函数应用
    EL表达式显示数据取整问题
    null值与空值比较
    case when语句的应用
    堆排序
    希尔排序
    插入排序
    异或运算
    选择排序
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11950621.html
Copyright © 2011-2022 走看看