JMeter测试有无数据库连接池的性能

使用JMeter测试一下有无数据库连接池的性能:

1.下载JMeter

2.无连接池的servlet

Java代码

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print("    This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println("test 1000 add");

DBManager db=new DBManager();
db.getConnection();

db.addUser("persia", "persia");

out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

有连接池的servlet情况:

Java代码

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print("    This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println("test 1000 add");

DBManagerByPool dbp=new DBManagerByPool();
try {
dbp.addUser("persia", "persia");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

3.JMeter测试配置:

(1)默认新建的测试计划里面新建线程组

线程数5,循环1000

(2)设置HTTP请求默认值

(3)添加(sampler里面)

2个HTTP请求分别对应有无连接池

(4)添加监听器--聚合报告

(5)运行--启动

4.测试结果:

Java代码

Label   # Samples   Average Median  90% Line    Min Max Error % Throughput  KB/sec

无连接池池   5000    88  44  89  17  1012    0   35.57680677 7.052823998

连接池 5000    50  45  68  10  236 0   35.59098836 7.194662686

总体  10000   69  45  78  10  1012    0   71.14247704 14.24239042

发现无连接池的平均反应时间为88毫秒,而有连接池的平均反应时间为50毫秒。

时间: 2024-09-01 01:33:13

JMeter测试有无数据库连接池的性能的相关文章

高性能数据库连接池的内幕

大家可能会有这样疑问:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的. 可能还会有这样的疑问:高性能这么高大上,一个小小的连接池,如何跟高大上靠上边的. 本主题将会全面介绍连接池原理,高性能的设计,优化实践,现有连接池的瓶颈及解决方案.同时也会介绍唯品会自研数据库连接池产品(代号:Caelus) 为什么要有连接池 先看一下连接池所处的位置:              应用框架的业务实现一般都会访问数据库,缓存或者HTTP服务.

Tomcat5.5数据库连接池配置指南

      今天终于把Tomcat的数据库连接池问题搞定了.我这个美国的同类真是的,每次版本变化,配置文件都要变.网络上多是讲5.0的,5.5的有所更改,我参照网上一位朋友的说明,修改了一下,终于配置成功.唉,谁叫咱英文功底不足呢. 我用的数据库是MySQL5.0,所以首先要把MySQL的JDBC驱动程序拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下. Server.xml的修改我推荐使用Tomcat的Admin组件完成,完全图形化配置,相当容易.或

Tomcat 5.5 数据库连接池配置_Tomcat

Server.xml的修改我推荐使用Tomcat的Admin组件完成,完全图形化配置,相当容易.或者按下面的写法在< GlobalNamingResources>< /GlobalNamingResources>之间写如下配置(仅供参考,各位用的时候,请改成自己数据库的配置): 复制代码 代码如下: <Resource name="jdbc/mysql" type="javax.sql.DataSource" password=&quo

基于JDBC的数据库连接池技术研究与应用

数据|数据库|数据库连接 摘 要 本文介绍了Java访问数据库的原理及其存在的问题,提出了解决办法-数据库连接池,并对其关键问题进行了分析,构建了一个简便易用的连接池并结合当前热门技术Servlet说明了其如何在开发时使用. 关键词 JDBC,Jsp/Servlet,数据库连接池,多数据库服务器和多用户,多线程 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server

Java数据库连接池原理机制详解

连接池的基本工作原理 1.基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理.我们知道,对于共享资源,有一个很著名的设计模式:资源池(Resource Pool).该模式正是为了解决资源的频繁分配?释放所造成的问题.为解决上述问题,可以采用数据库连接池技术.数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去.我们可以通过设定

Tomcat数据库连接池的配置方法总结

 数据库连接是一种关键的有限的昂贵的资源,这在多用户网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标,数据库连接池正是针对这个问题提出的. 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这样可以明显提高对数据库操作的性能. 数据库连接池在初始化的时将创建一定数量的数据库连接放到连接

JNDI数据库连接池

JNDI的全称是java命名与目录接口(Java Naming and Directory Interface),是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用.统一的接口.我们可以把JNDI简单地理解为是一种将对象和名字绑定的技术,即指定一个资源名称,将该名称与某一资源或服务相关联,当需要访问其他组件和资源时,就需要使用JNDI服务进行定位,应用程序可以通过名字获取对应的对象或服务. JNDI方式 - 配置Tomcat6.0 连接池 数据库连接池的基本思想就是为

J2EE开发技术点6:Proxool数据库连接池

前言 Proxool也是目前主流的数据库连接池,Proxool是一种Java数据库连接池技术.也是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况.下面是对Proxool连接池的一些技术小结 使用Proxool连接池方式 在官方提供的文档中,有多种使用Proxool的方式,这里只介绍两种:一种是通过配置文件的方式使用Proxool:一种是通过直接设置属性的方式使用.其中使用了Proxool连接池中的

spring+mybatis+c3p0数据库连接池或druid连接池使用配置整理

在系统性能优化的时候,或者说在进行代码开发的时候,多数人应该都知道一个很基本的原则,那就是保证功能正常良好的情况下,要尽量减少对数据库的操作. 据我所知,原因大概有这样两个: 一个是,一般情况下系统服务器和数据库服务器应该是不在同一硬件上,这时候对数据库的连接.操作就和网络有了很大的关系,连接.操作数据库越多就越影响性能. 二是,数据库的数据持久化在硬件磁盘上,对数据库数据的操作就要进行磁盘的io读写操作,同样是操作越多就越容易影响性能. 而数据库连接池的作用是负责分配.管理和释放数据库连接,它