2021-05-12 14:32:11
Linux上如何檢視QPS
背景:線上有一個推薦服務,紀錄檔量比較大,想確認下是不是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左右
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-08/121655.htm
相關文章