歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux上如何查看QPS

Linux上如何查看QPS

日期:2017/2/28 13:59:05   编辑:Linux教程

背景:線上有一個推薦服務,日志量比較大,想確認下是不是qps過高

問題:如何根據日志查看一個服務的qps

tail -f XXX.log,可以發現日志格式如下:
[8708-10 14:51:44 638 INFO ] [async task worker[61]] recommend.components.KeywordService[87] - cateid=252 pageNum=1
[8708-10 14:51:44 666 INFO ] [async task worker[62]] recommend.components.KeywordService[87] - cateid=42205
[8708-10 14:51:44 673 INFO ] [async task worker[0]] recommend.components.KeywordService[87] - cateid=29 pageNum=2
[8708-10 14:51:44 677 INFO ] [async task worker[1]] recommend.components.KeywordService[87] - cateid=252 pageNum=3

日志規范中,有一列“請求時間”,可以通過這個“請求時間”估算出服務的qps, 步驟如下:
(1)先找一條使得一個請求有且只有一行的日志,常用工具是grep,此例需要grep recommend.components.KeywordService,得出的結果,一個請求對應一行日志
(2)取出時間這一列,常用的工具是cut或者awk,這裡介紹一下cut(大家到linux上去man一下)
-d 參數,按照某個字符分隔
-f 參數,取出分隔後的第幾列
這個例子中,按照“空格”分隔後,時間在第二列
進行1,2兩步操作後,得到的結果為
14:51:44
14:51:44
14:51:45
14:51:45
14:51:46
14:51:46
(3)對結果進行去重,取計數,常用的工具是uniq,參數是-c

故,整個shell命令是:
命令:tail -f XXX.log | grep recommend.components.KeywordService | cut -d' ' -f2 | cut -d':' -f3 | uniq -c
說明:取增量 | 一個請求取一行 | 把時間截取出來 | 把秒數截取出來 | 去重取計數
得到的結果是
136 43
126 44
115 45
131 46
132 47
可以看到,14:51:43,共有136條日志
44,有126條日志
45,有115條日志
...
結論,這個模塊,單機的qps在120-130左右

Copyright © Linux教程網 All Rights Reserved