单位时间的请求数就是QPS,那么在nginx服务的网站下,如果要统计QPS并且按从高到低排列,需要使用awk配合sort进行处理awk做的主要工作是把access每行日志按分隔符分开,然后循环每一行,存到一个数组里
,如果只按时间不区分脚本路径,数组里存的数据是比如arr20 key是时间,value是次数使用下面这个shell可以统计到只按时间的QPScat varlognginxaccess.log|awk
awk {}END{}这个的意思就是{}里面的会每行执行,创建一个数组,把当前4的数据作为key,出现次数作为value,每出现一次加1,END后面的只会最后执行,END里面还有个for in循环,awk
的分割规则需要根据自己的日志格式进行sort -g是按数字排 -r是从高到低 -k2是排第二列下面这个是把当前时间和脚本的地址也一块作为key,这样计算出来的是,单位时间的某个接口地址下的QPS,具体的分割规则需要根据自己的业务自行分割