linux上如何查看QPS

注:本文作者是笔者的leader

背景:线上有一个推荐服务,日志量比较大,想确认下是不是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左右

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 20:32:41

linux上如何查看QPS的相关文章

Linux有问必答:Linux上如何查看某个进程的线程

原创:LCTT https://linux.cn/article-5633-1.html 译者: GOLinux本文地址:https://linux.cn/article-5633-1.html2015-6-15 15:44 收藏: 9 问题: 我的程序在其内部创建并执行了多个线程,我怎样才能在该程序创建线程后监控其中单个线程?我想要看到带有它们名称的单个线程详细情况(如,CPU/内存使用率). 线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念.当一个程序内有多个线程被叉分出用以执

Linux上如何查看Deb和RPM软件包的更新日志

导读 当一个程序或库打包成Deb或RPM软件包后会有一些元数据文件包含在其中,其中之一就是 changelog文件,它记录了软件包每次更新后发生了什么变化.因此,如果你想找出你安装或更新的软件包发生了什么变化,我们可以查看软件包的更新日志(changelog).本文将介绍如何查看基于Debian系统或红帽系统软件包的更新日志. 查看Deb软件包更新日志 方法一:apt-get 或 aptitude 最新apt-get命令可以检查包的更新日志以及该软件包是否以及安装在您的系统. $ apt-get

Linux上如何查看物理CPU个数,核数,线程数

首先,看看什么是超线程概念 超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率.超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源.当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些

查看linux上所有用户

1.查看所有用户名 cat /etc/passwd |cut -f 1 -d #是1不是L的小写 2.显示用户信息 whoami 查看当前登录用户名. id username 查看用户的uid,gid和组名. groups username 查看用户username所在的组及组内成员. groups 查看当前登录用户所在的组及组内成员. 查看linux上所有用户,布布扣,bubuko.com

linux上查看swf文件.靠谱

在linux上查看swf文件,本来想用gnash 来看,可是有的电脑上看的时候只有声音,没有图像 所以用网页来查看,推荐谷歌 我们在和flash文件的同目录下新建一个文件名为:index.html 注:名字可以任意,但后缀必须得是html网页文件 使用gedit打开文件,复制下面的html标签: <embed src="./kofwing_1-4.swf" width="100%" height="550px" /> 其中: src:

交换机,linux主机及windwos主机上路由表查看

有时候,网络故障,网络不通,有部分原因是路由信息不正确导致的.为了排查路由信息的错误导致网络不通,我们就需要学会查看路由表上的信息.在华为交换机,linux服务器和windows服务器上,路由表的查看和显示不是相同的 路由基本概念 路由就是报文从源端到目的端的路径.当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发.最佳路由的选取与发现此路由的路由协议的优先级.路由的度量有关.当多条路由的协议优先级与路由度量都相同时,可以实现负载分担,缓解网络压力:当多条路由的协议

[转帖]如何在Linux上使用命令行查看硬件信息

如何在Linux上使用命令行查看硬件信息 时间:2016-01-13   作者:admin 分类:新手入门 阅读:126次 http://embeddedlinux.org.cn/emb-linux/entry-level/201601/13-4889.html lscpu 原来更简单.. 在 Linux 中,可用于检查和查看硬件信息的命令有很多.其中某些命令可以输出特定硬件和信息,例如:CPU 和内存等.本教程列出一些 Linux 上查看硬件信息的常用命令,以帮助大家快速输出硬件的配置细节.

利用tinyproxy在Linux上搭建HTTP Proxy Server

之所以需要用到HTTP Proxy Server并不是为了要翻墙,而是为了让没有公网IP地址的内网主机通过有公网IP地址的外网主机访问Internet.举个例子,阿里云ECS在购买时可以不购买公网IP地址,但这种没有公网IP地址的ECS云主机(实例)是没有访问Internet的能力的,也就是说无法在这台实例上下载文件,这在部署应用如部署MySQL时可能遇到无法完成安装问题.解决的办法有两种,一种是在另一台具有公网访问能力的ECS实例上搭建VPN服务,另一种是在另一台具有公网访问能力的ECS实例上

在开发板Linux上挂载"驱动"挂载不成功,出现提示server 172.27.52.100 not responding, still trying

1.在开发板具体操作步骤如下: 1.1 :设置IP ifconfig eth0 172.27.52.200 1.2 :ping通 虚拟机Linux 主机Linux ping XXX.XXX.XXX.XXX 1.3.挂接 mount -t nfs -o nolock  XXX.XXX.XXX.XXX:/work/nfs_root/first_fs  /mnt // 例如:mount -t nfs -o nolock  172.27.52.100:/work/nfs_root/first_fs  /