- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章教你如何精准统计出你的接口"QPS"由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我们先回忆一下,QPS的概念如下所示
QPS(Query Per Second):每秒请求数,就是说服务器在一秒的时间内处理了多少个请求.
那我们怎么估出每秒钟能处理多少请求呢?
OK,用日志来估计!那日志怎么记录呢,细分下来,有两种方式.
方式一:自己在接口里记录 。
这种方式指的是在你的接口里,日志记录了能体现该接口特性的,并具有唯一性的字符串! 。
例如,下面这一段代码 。
1
2
3
4
5
6
7
8
9
10
|
@RestController
@RequestMapping
(
"/home"
)
public
class
IndexController {
//省略
@RequestMapping
(
"/index"
)
String index() {
logger.info(
"渣渣烟"
);
return
"index"
;
}
}
|
假设现在我要统计index这个接口的QPS! 。
OK,什么叫能体现该接口特性的字符串呢!就像上面的"渣渣烟"这个字符串,只在index这个接口里出现过,没在其他其他接口里出现过!因此,只要统计出"渣渣烟"这个字符串在日志里的出现次数,就能知道该接口的请求次数! 。
什么叫具有唯一性的字符串呢!所谓唯一性,指的是"渣渣烟"这个字符串,在这个接口的一次调用流程中,只出现一次!如果出现两次,就会导致到时候统计出来的次数会多一倍,所以尽量选择具有唯一性的字段! 。
方式二:利用tomcat的access log 。
如果你的日志里没有我上面提到的字段。OK,那就用tomcat自带的access log功能吧! 。
因为我平时内置的tomcat比较多,指定下面两个属性即可 。
1
2
3
4
|
server.tomcat.accesslog.directory
设定log的目录,默认: logs
server.tomcat.accesslog.enabled
是否开启access log,默认: false
|
此时,你访问一次/home/index地址,会有下面这样日志 。
127.0.0.1 - - [19/Aug/2019:23:55:27 +0800] “POST /home/index HTTP/1.1” 200 138 那么,你就可以根据日志中,该记录的出现次数,统计index接口的QPS.
实战 。
假设,你这会日志已经拿到手了,名字为xxx.log.
假设日志内容如下 。
1
2
3
|
//省略,都长差不多,贴其中一条就行
0:0:0:0:0:0:0:1 - - [27/Dec/2018:20:41:57 +0800] "GET /mvc2/upload.do HTTP/1.1" 404 949 http-bio-8080-exec-5 43
//省略
|
这个时候,你执行一串命令长下面这样的,进行统计就行! 。
1
|
cat xx.log |grep 'GET /mvc2'|cut -d ' ' -f4|uniq -c|sort -n -r
|
出来等结果就是 。
20 [27/Dec/2018:20:40:44 11 [27/Dec/2018:20:47:58 10 [27/Dec/2018:20:47:42 1 [27/Dec/2018:20:41:57 。
然后你就知道,原来在20:40:44 分。。这个接口的QPS最高,达到了惊人的20QPS! 。
现在,来讲一下命令什么意思! 。
cat xxx.log : 读文件内容 。
grep ‘GET /mvc2' : 将文件内容按照GET /mvc2 进行过滤 。
cut -d ' ' -f4 : 过滤出来的内容按照空格进行分割,取第四列内容 。
uniq -c : 每列旁边显示该行重复出现的次数 。
sort -n -r : 依照数值的大小排序 。
那么,如果是其他日志格式,无外乎 ”cut语句“的处理不同而已,道理类似!此法可以估算出单机的某接口的 “QPS” 是多少! 。
估算 。
我们现在估计出了单机的QPS。接下来,估算集群的QPS.
这就要根据负载均衡的策略来估计! 。
比如,你部署了32台机器,负载均衡的策略恰巧为轮询,那集群的QPS就是单机的QPS乘32就好了.
所以,根据具体的策略,来估计整个集群的QPS多大!一般有2000qps已经是很高的了.
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我的更多内容! 。
原文链接:https://blog.csdn.net/river131/article/details/106845576 。
最后此篇关于教你如何精准统计出你的接口"QPS"的文章就讲到这里了,如果你想了解更多关于教你如何精准统计出你的接口"QPS"的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
目录 QPS是什么 总结 QPS是什么 我们先回忆一下,QPS的概念如下所示: QPS(Query Per Second):每秒请求数,就是说服务器在一
我正在使用 Guava 速率限制器来限制每秒发送的消息 5000 条。我取得了良好的结果,但有时当 Guava 速率限制器在一秒内发送较少的记录时,剩下的记录会在另一秒内发送,假设在 1 秒内发送 1
QPS 原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS) 。 机器
作为我上一个问题的后续,How does Redis achieve the high throughput and performance? 我有以下问题 我亲眼目睹了 Redis 的运行,并对它的
背景 前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了。 在很低的 QPS 压力下服务器 load 就能达到 10-20,CPU 使用
我们创建了一个自定义搜索器。我们的文档大小在 400 000 左右。延迟保持在 100 毫秒以内,但是在我们进行负载测试时,它的 QPS 没有超过 80,延迟也增加了 4-5 秒。我们在组分布中使用
最近我的一些应用程序脚本在同时执行时显示错误。多年来一切正常,显然 Google 方面发生了变化。 这是执行记录结果: 不幸的是,错误没有显示文件名和行号来正确调试它,但我的第一行是: var ss
我们正在构建一个系统,该系统从第一天起就需要服务大量的小请求。我所说的“负载”是指每秒约 5,000 个查询。对于每个查询,我们需要从 noSQL 数据库检索大约 20 条记录。将有两批读取 - 首先
我们已经设置了具有 5 个节点的 Bigtable 集群,GCP 控制台指出它应该支持 50K QPS @ 6ms 的读取和写入。 我们正在尝试加载一个大型数据集(约 8 亿条记录),其中约 50 个
1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能
QPS、TPS、PV、UV、GMV、IP、RPS等各种名词,下面来一一解释一下。 QPS Queries Per Second,每秒查询数。每秒能够响应的查询次数。 QPS是对一个特定的查
我已经生成了应用程序资源文件的伪本地化版本(例如 Order Summary and Payment 本地化为 [[[[[Òŕd̂ër̊ S̀úm̂m̈år̀ý ân̈d̊ P̀áŷ
我有一个相当大的学校设置来记录 session 时间和链接到单独工作表的学生信息。 校长用来输入信息的 10 个学校电子表格,包括每个学生个人日历的超链接,以及查看从日历返回的出勤统计数据。 43 个
我是一名优秀的程序员,十分优秀!