响应时间

压力&负载理论

删除回忆录丶 提交于 2019-11-28 08:04:41
一、定义: 1.压力测试 是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。 软件系统的负载压力是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等。其中并发用户数是负载压力的重要指标。 2.负载测试 是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。其中还有一种特定类型的负载测试,它是通过逐步增加软件系统的负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统提供的最大服务级别。 3.并发性能测试 通过逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的状态,综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试的重要内容。 4.疲劳强度测试 是指构建系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,使其在持续一段时间内执行业务

Nginx 配置请求响应时间

心已入冬 提交于 2019-11-28 04:51:15
1.常见默认nginx.conf配置日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for "|$request_time|$upstream_response_time'; (1)request_time 官网描述:request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the last bytes were sent to the client 。 指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出响应数据时间。 (2)upstream_response_time 官网描述:keeps times of responses obtained from upstream servers; times are kept

Apache Kylin在美团点评的应用

♀尐吖头ヾ 提交于 2019-11-27 23:54:39
本文原载自大数据杂谈微信公众号。 感谢美团点评工程师高大月撰文并授权转载。 高大月,美团点评工程师,Apache Kylin PMC成员,目前主要在美团点评数据平台负责OLAP查询引擎的建设。 背景 美团点评的OLAP需求大体分为两类: 即席查询:指用户通过手写SQL来完成一些临时的数据分析需求。这类需求的SQL形式多变、逻辑复杂,对响应时间没有严格的要求。 固化查询:指对一些固化下来的取数、看数的需求,通过数据产品的形式提供给用户,从而提高数据分析和运营的效率。这类需求的SQL有固定的模式,对响应时间有比较高的要求 。 我们针对即席查询提供了Hive和Presto两个引擎。而固化查询由于需要秒级响应,很长一段时间都是通过先在数仓对数据做预聚合,再将聚合表导入MySQL提供查询实现的。但是随着公司业务数据量和复杂度的不断提升,从2015年开始,这个方案出现了三个比较突出的问题: 随着维度的不断增加,在数仓中维护各种维度组合的聚合表的成本越来越高,数据开发效率明显下降; 数据量超过千万行后,MySQL的导入和查询变得非常慢,经常把MySQL搞崩,DBA的抱怨很大; 由于大数据平台缺乏更高效率的查询引擎,查询需求都跑在Hive/Presto上,导致集群的计算压力大,跟不上业务需求的增长。 为了解决这些痛点,我们在2015年末开始调研更高效率的OLAP引擎,寻找固化查询场景的解决方案。

Jmeter聚合报告、

こ雲淡風輕ζ 提交于 2019-11-27 20:38:00
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”。今天再次有同行问到这个报 告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅。 如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一 行数据,共有10个字段,含义分别如下。 Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性 的值 Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里 显示100 Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间 Median:中位数,也就是 50% 用户的响应时间 **90% Line:**90% 用户的响应时间 Min:最小响应时间 Max:最大响应时间 Error%:本次测试中出现错误的请求的数量/请求的总数 Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transact ion Controller 时,也可以表示类似

《高性能网站建设指南》笔记-2 规则2——使用内容发布网络

删除回忆录丶 提交于 2019-11-27 19:57:56
网站最初通常将其所有的服务器放在同一个地方。当用户群增加时,公司就必须面对服务器放置地点不再适用的事实——有必要在多个地理位置不同的服务器上部署内容。 作为实现地理位置分离的第一步, 不要 尝试适用分布式架构重新设计你的web应用程序。这样的应用程序决定了重新设计将带来令人恐惧的任务,如同步会话状态和在服务器放置地点之间复制数据库事务。重新设计这一步骤会推迟——甚至根本无法实现——缩短用户和你的内容之间的距离这一愿望。 如果 应用程序web服务器 (application web server)离用户更近,则 一个http 请求的响应时间将缩短。另一个方面,如果 组件web服务器 (component web server)离用户更近,则 多个http 请求的响应时间将缩短。 与其开始重新设计应用程序这一艰难任务,以便将应用程序web服务器分散开,不如首先将组件web服务器分散开。这不仅能达到响应时间大幅减少的目的,还很容易实现。 内容发布网络 content delivery networks 内容发布网络(CDN)是一组分布在多个不同地理位置的web服务器,用于更加有效地向用户发布内容。 无论如何也不要使用http重定向来将用户指向到本地服务器,这会使web页面反应变慢。 除了缩短响应时间之外,CDN还可以带来其他优势。他们的服务包括备份,扩展存储能力和进行缓存

高性能建设指南-2.使用内容发布网络CDN

Deadly 提交于 2019-11-27 19:57:21
1.当用户群增加时,公司就必须面对服务器放置地点不在适用的事实---有必要在多个地理位置不同的服务器上部署内容。 2.不要尝试使用分布式架构重新设计你的web应用程序。--这样做会很需要做很多工作 3.如果应用程序web服务器(Application Web Server)离用户更近,则一个HTTP请求的响应时间将缩短。 如果组件web服务器(Component Web Server)离用户更近,则多个HTTP请求的响应时间将缩短。 4.内容发布网络CDN是一组分布在多个不同地理位置的Web服务器,用于更加有效地向用户发布内容。 5.一些大型Internet公司都拥有自己的CDN,但使用一个CDN服务提供商更为有效。 6.也有很多免费的CDN服务可以使用 7.注意:无论如何也不要使用HTTP重定向来将用户指向本地服务器,这回事web页面反应速度变慢。 8.CDN优势:1.缩短响应时间2.CDN还提供备份、扩展存储能力、进行缓存的服务3有助于缓和Web流量峰值压力 9.CDN缺点:1.响应时间可能会受到其他网站流量的影响;2.无法直接控制组件服务器所带来的特殊麻烦;3.花钱、部署过程增加了一些复杂性 10.CDN适用范围:用于发布静态内容,如图片、脚本、样式表和Flash。原因:静态文件更容易存储并具有较少的依赖性。 11.测试衡量CDN优势的时候,千万记住

jmeter对tomcat性能测试

三世轮回 提交于 2019-11-27 19:35:32
主要对tomcat的参数做一些记录(jmeter和tomcat在同一个计算机,可能引起测试误差) 我的计算机配置 4核8线程 8G内存 案例一 tomcat JVM 1.8G堆内存,无数据库操作 #最大线程数server.tomcat.maxThreads =10000 #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCountserver.tomcat.maxConnections =20000#当线程数量达到最大线程数时所允许的最大等待队列的长度server.tomcat.acceptCount =200#最小空闲线程数server.tomcat.minSpareThreads =10 并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB) HTTP Request 1000 354 337 850 862 873 1 879 0.0% 887.3 103.9 274.6 HTTP Request 5000 1000 1047 1725 2009 2422 94 2721 0.0% 802.9 94.0 248.5 HTTP Request 10000 1692 1389

Java内存管理

霸气de小男生 提交于 2019-11-27 19:23:08
Java内存管理 Java运行时内存区 其中,对于这各个部分有一些是线程私有的,其他则是线程共享的。 线程私有的如下: 程序计数器当前线程所执行的字节码的行号指示器 Java虚拟机栈Java方法执行的内存模型,每个方法被执行时都会创建一个栈帧,存储局部变量表、操作栈、动态链接、方法出口等信息。 每个线程都有自己独立的栈空间 线程栈只存基本类型和对象地址 方法中局部变量在线程空间中 本地方法栈Native方法服务。在HotSpot虚拟机中和Java虚拟机栈合二为一。 线程共享的如下: Java堆存放对象实例,几乎所有的对象实例以及其属性都在这里分配内存。 方法区存储已经被虚拟机加载的类信息、常量、静态变量、JIT编译后的代码等数据。 运行时常量池方法区的一部分。用于存放编译期生成的各种字面量和符号引用。 直接内存NIO、Native函数直接分配的堆外内存。DirectBuffer引用也会使用此部分内存。 对象访问 Java是面向对象的一种编程语言,那么如何通过引用来访问对象呢?一般有两种方式: 1.通过句柄访问 2.直接指针(此种方式也是HotSpot虚拟机采用的方式) 内存溢出 在JVM申请内存的过程中,会遇到无法申请到足够内存,从而导致内存溢出的情况。一般有以下几种情况: 虚拟机栈和本地方法栈溢出 StackOverflowError: 线程请求的栈深度大于虚拟机所允许的最大深度

调度的基本准则和典型的调度算法

烂漫一生 提交于 2019-11-27 16:43:16
1.cpu利用率 cpu是计算机系统中最重要和昂贵的资源之一,所以应尽可能使cpu保持“忙"状态,使这以资源利用率最高 2.系统吞吐量 表示单位时间内cpu完成作业的数量。长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。而对于短作业,它们所需要消耗的处理机时间较短,因此能提高系统的吞吐量。调度算法和放方式的不同,也会对系统的吞吐量产生较大的影响。 3.周转时间。 指作业从提交到完成所用的时间,包括作业等待、在就绪队列中排队、在处理机上运行已经进行输入\输出操作时间综合。 4.等待时间 是指进程处于等处理机状态时间之和,等待时间越长,用户满意都越低。处理机调度算法实际上并不影响作业执行或输入\输出操作的时间,只影响作业在就绪队列中等待所花的时间。 5.响应时间 一般采用响应时间作为衡量调度算法的重要准则之一。从用户角度看,调度策略应尽量降低响应时间,使响应时间处在用户能接受的范围之内。 典型的调度算法: 1.先来先服务(既可以用于作业调度也可以用于进程调度,有利于cpu繁忙型不利于I\O繁忙型) 2。短作业优先(对长作业不利,没有考虑优先级) 3.优先级调度算法(既可以用于作业也可以用于进程) 4.高响应比优先调度(作业调度) 5.时间片轮转算法(进程调度) 6.多级反馈队列调度算法(集合了前几种算法的优点,时间片轮转调度算法和优先级调度算法的综合和发展) 来源: https

Jmeter 做压力测试步骤

你离开我真会死。 提交于 2019-11-27 02:18:47
参考资料: https://www.cnblogs.com/zhengah/p/4532156.html https://www.cnblogs.com/NiceTime/p/8574141.html 1.确定压测需求目标,多少算合理 PS:通过和开发业务咨询,确定目标的并发数、TPS和响应时间 概念定义: 并发数:系统同时处理的事务数 TPS:每秒钟处理事务数 响应时间:一般取平均响应时间 TPS = 并发数/响应时间 2.编写jmeter脚本,调通接口,看接口是否能正常运行; 3.根据压测目标数,不断增加压力峰值,找到性能拐点,通常是通过系统吞吐量(TPS)来控制。 在不断增加压力下,到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,此时最高点就是性能测试的拐点 4.在拐点处进行压测5min,查看数据库和服务器应用的性能情况 应用服务器:通过top(监控CPU),free(监控内存),iostat(监控磁盘swap),还有综合工具vmstat,超级监控工具dstat 数据库监控:通过配置数据库文件,开启慢日志查询,监控数据库CPU,内存,磁盘的IO等 使用的工具:Apache-jmeter-5.1.1(压力负载),Nmon(应用服务器监控),Monyog(数据库监控),Probe(Tomcat监控) 来源: https://www.cnblogs