2018年8月1日
摘要: 经常在系统的需求书当中看到这样的描述“响应时间在3秒以内”,这类需求让测试人员无从下手,这是在多大的并发用户数下面得到这个结果?在多少存量数据的情况下得到这个结果? 1年、2年?即使随便设置个场景测完了,也不敢出具测试结论。 业务指标是从用户操作的角度体现出来的,相对于服务指标。服务指标是从系统对外 阅读全文
posted @ 2018-08-01 23:52 夜半清风 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程(线程)使用。(2) 请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件 : 多个进程(线程)之间形成一 阅读全文
posted @ 2018-08-01 23:48 夜半清风 阅读(466) 评论(0) 推荐(0) 编辑
摘要: nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。 nginx的upstream目前支持的5种方式的分配 1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端 阅读全文
posted @ 2018-08-01 23:39 夜半清风 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 一、内存回收策略和常见概念 常见内存回收策略可以从以下几个维度来理解: 1 串行&并行 串行:单线程执行内存回收工作。十分简单,无需考虑同步等问题,但耗时较长,不适合多cpu。并行:多线程并发进行回收工作。适合多CPU,效率高。2 并发& stop the world stop the world: 阅读全文
posted @ 2018-08-01 23:29 夜半清风 阅读(7282) 评论(1) 推荐(0) 编辑
摘要: Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的 阅读全文
posted @ 2018-08-01 23:21 夜半清风 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 一、连接池 1、什么是连接池?我们为什么需要它? 连接池允许多个客户端使用缓存起来的连接对象,这些对象可以连接数据库,它们是共享的、可被重复使用的。 打开/关闭数据库连接开销很大,连接池技术允许我们在连接池里维护连接对象,这样可以提高数据库的执行命令的性能。多个客户端请求可以重复使用相同的连接对象, 阅读全文
posted @ 2018-08-01 22:36 夜半清风 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权, 即在就绪状态的进程除CP 阅读全文
posted @ 2018-08-01 22:23 夜半清风 阅读(36301) 评论(3) 推荐(3) 编辑
摘要: 先来解释下什么叫TPS: TPS(Transaction Per Second):每秒事务数,指服务器在单位时间内(秒)可以处理的事务数量,一般以request/second为单位。 关于性能测试的其他一些常见术语,可参考之前的博客:性能测试:常见术语浅析 下面就说说压测中为什么TPS上不去的原因: 阅读全文
posted @ 2018-08-01 22:19 夜半清风 阅读(310) 评论(0) 推荐(0) 编辑