线程数

(6)Spring WebFlux性能测试——响应式Spring的道法术器

两盒软妹~` 提交于 2020-01-03 21:09:33
本系列文章索引 《响应式Spring的道法术器》 前情提要 响应式流 | Reactor 3快速上手 | Spring WebFlux快速上手 本文 源码 1.4 从负载测试看异步非阻塞的优势 前面总是“安利”异步非阻塞的好处,下面我们就实实在在感受一下响应式编程在高并发环境下的性能提升。异步非阻塞的优势体现在I/O操作方面,无论是文件I/O、网络I/O,还是数据库读写,都可能存在阻塞的情况。 我们的测试内容有三: 首先分别创建基于WebMVC和WebFlux的Web服务,来对比观察异步非阻塞能带来多大的性能提升,我们模拟一个简单的带有延迟的场景,然后启动服务使用gatling进行测试,并进行分析; 由于现在微服务架构应用越来越广泛,我们基于第一步的测试项目进一步观察调用存在延迟的服务的情况下的测试数据,其实主要是针对客户端的测试:阻塞的 RestTemplate 和非阻塞的 WebClient ; 针对MongoDB的同步和异步数据库驱动进行性能测试和分析。 说明:本节进行的并非是严谨的基于性能调优的需求的,针对具体业务场景的负载测试。本节测试场景简单而直接,各位朋友GET到我的点即可。 此外:由于本节主要是进行横向对比测试,因此不需要特定的硬件资源配置,不过还是 建议在Linux环境下进行测试 ,我最初是在Win10上跑的,当用户数上来之后出现了不少请求失败的情况

4、线程池(摘自C#高级编程第7版)

半城伤御伤魂 提交于 2020-01-02 05:00:17
1、需求背景   创建线程需要时间。如果有不同的小任务完成,就可以事先创建许多线程,在应完成这些任务时发出请求。这个线程数最好在需要更多的线程时增加,在需要释放资源时减少。 2、线程池出场   不需要自己创建这样一个列表。该列表由ThreadPool类托管。这个类会在需要时增减池中线程的线程数,直到最大的线程数。池中的最大线程数是可配置的。   在双核CPU中,默认设置为1023个工作线程和1000个I/O线程。四核CPU中,默认设置为2047个工作线程和1000个I/O线程。   也可以指定在创建线程池时应立即启动的最小线程数,以及线程池中可用的最大线程数。   如果有更多的作业要处理,线程池中线程的个数也到了极限,最新的作业就要排队,且必须等待线程完成其任务。 3、举个栗子   下面的实例首先读取工作线程和I/O线程的最大线程数,把这些信息写入控制台中,接着在for循环中,调用ThreadPool.QueueUserWorkItem()方法,传递一个WaitCallBack类型的委托,把JobForAThread()方法赋予线程池中的线程。线程池接收到这个请求后,就会从池中选择一个线程,来调用该方法。   如果线程池还没有运行,就会创建一个线程池,并启动第一个线程。如果线程池已经在运行,且有一个空闲线程来完成该任务,就把该任务传递给这个线程。 class CLRThread2

Android开发常见问题汇总

我们两清 提交于 2020-01-01 22:33:54
文章目录 1.Activity的启动模式 1.什么是Activity启动的标准模式?都会经历那些生命周期的函数? 2.什么是Activity启动的异常模式?都会经历那些生命周期? 3.怎么指定Activity在横竖屏切换的时候不敏感? 4.怎么为Activity指定为横屏或竖屏? 5.Activity启动都有哪些模式?在清单文件里面配置和在代码里面指定到底有何不同? 6.前台任务栈有Activity:AB,后台任务栈有Activity:CD,且CD的启动模式都是singleTask,现在启动Activity D,此时后退任务栈的的顺序是什么? 7.怎么给Activity指定单独的任务栈?怎么查看任务栈的? 8.Activity的启动意图都有哪些? 9.隐式意图需要配置目标组件的InterFilter,这个过滤器都有哪些信息?配置都有哪些规则? 2.跨进程通信 1.在Android开发中怎么使用多进程? 2.同一个应用中开启了多进程会造成哪些问题? 2.怎么通过Serializable来序列化和反序列化一个对象? 3.Parcelable和Serializable他们的作用是什么?有什么区别? 4.什么是Binder?什么是Binder的死亡代理? 5.什么是AIDL? 6.Android中的跨进程通信方式都有哪些? 7.什么Binder连接池? 3.View的事件体系 1

Centos安装Tomcat以及高并发优化

牧云@^-^@ 提交于 2020-01-01 13:57:08
Tomcat是一个轻量级的Web服务器。通常情况下,我们使用它运行Java代码。它也可以被称为Jsp、serlvet的容器。目前主流的有三个版本,Tomcat-7.0、Tomcat-8.5、Tomcat-9.0 。这里我们对Tomcat-9.0版本进行安装与调优。 一、 安装包及依赖环境下载 1、 Tomcat-9.0安装包下载 官网地址: 点击下载 Shell命令 wget http : / / mirrors . tuna . tsinghua . edu . cn / apache / tomcat / tomcat - 9 / v9 . 0.30 / bin / apache - tomcat - 9.0 .30 . tar . gz 2、 JDK1.8安装 Tomcat作为一个web容器,运行需要Jdk环境。同时,我们使用的Tomcat-9.0版本需要Jdk1.8版本的,在上一篇文章 《 Centos安装数据库读写分离中间件Mycat 》中有介绍,需要安装的可以查看。这里就不多做叙述。 3、 cronolog日志切割工具安装 cronolog是一个日志切割工具,可以将Tomcat的catalina.out日志按天进行切割,并输出到指定的位置。安装配置比较方便,下载完成后,解压编译一下即可使用。 该地址可能会访问不通。原因不详,你应该有办法。得到安装包后进行解压

Jmeter(四十九)_常用的性能测试监听器

点点圈 提交于 2019-12-31 03:41:59
概述 jmeter中提供了很多性能数据的监听器,我们通过监听器可以来分析性能瓶颈 本文以500线程的阶梯加压测试结果来描述图表。 常用监听器 1:Transactions per Second 监听动态TPS,用来分析吞吐量。 其中横坐标是运行时间,纵坐标是TPS值。红色表示通过的TPS,绿色表示失败的。 最大TPS大约在140左右,从1分26秒左右,开始有未通过的事物 2:Hits per Second 动态监听单位时间的点击率,也就是触发的请求数。其中横坐标是运行时间,纵坐标是HPS值。 点击率波动较大,且不能持续上升。说明性能很不稳定 3:Response Times Over Time 监听整个事物运行期间的响应时间。其中横坐标是运行时间,纵坐标是响应时间(单位是毫秒) 响应时间在4950ms左右开始稳定下来,后续又经历一次大的波动 4:Response Times vs Threads 线程活动期间的响应时间监听。其中横坐标是活动的线程数(也就是并发数),纵坐标是响应时间(单位是毫秒) 5: Active Threads Over Time 监听单位时间内活动的线程数。其中横坐标是单位时间(单位是毫秒),纵坐标是活动线程数(也就是并发数) 6:Response Times Percentiles 监听响应时间分布的百分比。其中横坐标是请求数的百分比,纵坐标是响应时间

Jmeter性能测试基础

只愿长相守 提交于 2019-12-31 03:41:28
压力测试   压力测试分两种场景:一种是单场景,压一个接口的;第二种是混合场景,多个有关联的接口。压测时间,一般场景都运行10-15分钟。如果是疲劳测试,可以压一天或一周,根据实际情况来定。 压测任务需求的确认 压测前要明确压测功能和压测指标,一般需要确定的几个问题: 固定接口参数进行压测还是进行接口参数随机化压测? 要求支持多少并发数? TPS(每秒钟处理事务数)目标多少?响应时间要达到多少? 压服务器名称还是压服务器IP,一般都是压测指定的服务器 压测设置 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问 Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。理解成准备时长:设置虚拟用户数需要多长时间全部启动。如果线程数是20,准备时长为10,那么需要10秒钟启动20个数量,也就是每秒钟启动2个线程。 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。 压测结果查看   运行完后,聚合报告会显示压测的结果。主要观察Samples、Average、error、Throughput。 Samples:表示一共发出的请求数 Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms) Error%

测试结果分析

…衆ロ難τιáo~ 提交于 2019-12-30 01:21:23
2 PerfMon Metrics Collector 用于监控机器的 CPU,Memory,SWAP,Disks I/O,Networks I/O CPU CPU 占用量百分比 Memory 存储量的使用情况 SWAP Disks I/O Networks I/O 3 Server Hits per Seconds 每秒测试计划所产生的点击服务器的次数 4 Bytes Throughput Over Time 在压力测试期间接收和发送的 bytes 数 5 Composite Timeline Graph 将你的测试计划中的所有的图表集合在同一张图标中以方便查看 6 Bytes Throughput Over Time 每秒传输字节吞吐量,表明 Jmeter 在测试时,随着时间推移发送和接受的字节数 7 Response Codes per Second 每秒返回的响应码,表明 Jmeter 测试期间,随着时间的推移返回的响应码,从中我们可 看到测试期间在哪个时间段内出现了错误。就可以分析在该时间内系统的什么环境因素, 导致的错误。 8 Response Latencies Over Time 每秒钟的响应等待时间, 表明 Jmeter 测试期间,随着时间的推移系统的响应等待时间的 变化,也是系统随着时间推移,系统效率的变化。 9 Response Times

Jmeter常用插件——Stepping Thread Group ,JMETER以及关于数据库性能分析

浪子不回头ぞ 提交于 2019-12-30 01:21:14
使用方法: 1、添加线程组——jp@gc - Stepping Thread Group 2、Stepping Thread Group界面如下: 上图的各项意思: This group will start 100 threads:设置线程组启动的线程总数为100个; First,wait for N seconds:启动第一个线程之前,需要等待N秒; Then start N threads:设置最开始时启动N个线程; Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔30秒,启动10个线程,10个线程在5秒内启动完成; Then hold load for 60 seconds:启动的线程总数达到最大值之后,再持续运行60秒; Finally,stop 5 threads every 1 seconds:每秒停止5个线程; 这里是对每个插件的用处进行解释: PerfMon Metrics Collector:用于监控机器的CPU、Memory、swap、Disks I/O、Networks I/O。CPU:cpu占用量百分比; Memory:存储量的使用情况;swap:交换区的使用情况;Disks I/O:磁盘I/O;Networks I/O:网络I/O Hits per Second

jmeter测试结果jtl字段分析

只愿长相守 提交于 2019-12-30 01:21:00
1 Bytes Throughput Over Time 每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接受的字节数 2 Response Codes per Second 每秒返回的响应码,表明Jmeter测试期间,随着时间的推移返回的响应码,从中我们可看到测试期间在哪个时间段内出现了错误。就可以分析在该时间内系统的什么环境因素,导致的错误。 3 Response Latencies Over Time 每秒钟的响应等待时间, 表明Jmeter测试期间,随着时间的推移系统的响应等待时间的变化,也是系统随着时间推移,系统效率的变化。 4 Response Times Distribution 响应时间分布, X轴表示的是响应时间,Y轴表示的是响应次数,F(X,Y)表示系统在某种响应时间内的响应次数是多少,如果在响应时间短的地方,响应次数多,说明系统的效率比较高。 5 Response Times Over Time 每秒钟响应时间,X轴表示的是系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统的响应时间的变化,可以看出响应时间稳定性 6 Response Times Percentiles 响应时间百分比,X轴表示的是百分比,Y轴表示的是响应时间,F(X,Y)表示低于某个百分比的响应时间,比如有80%的响应低于400ms。 7

jmeter服务器监控插件指标简单说明

安稳与你 提交于 2019-12-30 01:20:44
以下是下载了服务器监控插件的各个组件的功能介绍,有助于以后jmeter的性能测试 1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表) 当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数 2.jp@gc - AutoStop Listener :自动停止监听器 设置当发生某些预期之外的情况时自动停止测试 average Response Time is greater than 10000ms for 10 seconds :连续10s平均响应时间大于10000ms就停止测试 average Latency is greater than 5000ms for 10 seconds :连接10s平均等待时间大于5000ms就停止测试 Error Rate is greater than 50% for 10 seconds :10s内错误率一直高于50%就停止测试 3.jp@gc - Bytes Throughput Over Time:不同时间吞吐量(字节Bytes)展示(图表) 聚合报告里,Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表,表示每秒发送多少字节 4.jp@gc - Composite Graph: