最大线程数开到100个没有问题
大于101个就有很多连接失败的
初步判断是tomcat的最大连接数设置的问题
重新设置tomcat server.xml
acceptCount=200后,最大线程可开到150 没有任何错误
acceptCount 指定放在队列里的请求数
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
acceptCount="200" />
package com.ask.pressure;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class AskPressure {
private static String url = "http://192.168.0.59:8080/ask/index.html";
private static Integer error = 0;
private static Integer threads = 150;
private static Long startTime;
public static void main(String[] args) {
WorkThread[] workThreads = new WorkThread[threads];
for(int i = 0; i < threads; i++){
workThreads[i] = new WorkThread();
}
startTime = System.currentTimeMillis();
//System.out.printf("线程数组初始化耗时%d毫秒\n", (System.currentTimeMillis() - startTime));
for(int i = 0; i < threads; i++){
workThreads[i].start();
}
//System.out.printf("连接失败:%d", error);
}
private static class WorkThread extends Thread {
public void run(){
long start = System.currentTimeMillis();
long end = 0;
try {
URL u = new URL(url);
HttpURLConnection urlConn = (HttpURLConnection)u.openConnection();
urlConn.setUseCaches(false);
urlConn.setRequestProperty("Content-type", "text/html; charset=UTF-8");
urlConn.connect();
//System.out.printf( "小博士页面编码: %s\n", urlConn.getContentEncoding());
InputStream is = urlConn.getInputStream();
StringBuffer buffer = new StringBuffer();
readToBuffer(buffer, is);
end = System.currentTimeMillis();
} catch (Exception e) {
synchronized(error){
error ++;
}
e.printStackTrace();
}
synchronized(threads){
threads --;
System.out.printf("还有%d个未完线程, 耗时%d毫秒\n", threads, (System.currentTimeMillis() - startTime));
if(threads == 0){
System.out.printf("总耗时:%d毫秒\n", (System.currentTimeMillis() - startTime));
System.out.printf("连接失败:%d\n", error);
}
}
}
public void readToBuffer(StringBuffer buffer, InputStream is)
throws IOException {
String line; // 用来保存每行读取的内容
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}
}
}
}
还有9个未完线程, 耗时1484毫秒
还有5个未完线程, 耗时1547毫秒
还有6个未完线程, 耗时1516毫秒
还有7个未完线程, 耗时1516毫秒
还有8个未完线程, 耗时1484毫秒
还有4个未完线程, 耗时1547毫秒
还有3个未完线程, 耗时1547毫秒
还有2个未完线程, 耗时1563毫秒
还有1个未完线程, 耗时1578毫秒
总耗时:1578毫秒
连接失败:0
还有0个未完线程, 耗时1578毫秒
总耗时:1578毫秒
连接失败:0
分享到:
相关推荐
【标题】:“(转)ab-tomcat压力测试工具” 【描述】:这篇博客文章并未提供具体的描述,但根据标题可以推断,它可能涉及一个名为"ab"的压力测试工具在Tomcat应用服务器上的使用。"ab"是Apache HTTP服务器项目的一...
这个备忘可能包含了一系列步骤,用于帮助用户在不干扰其他服务的情况下,单独启动Tomcat6实例进行测试。 描述中的“NULL”表明没有具体的细节提供,但我们可以根据常规流程来阐述相关知识点。 首先,你需要下载...
标题中的“tomcat6.0安装版及Jsp测试方法”表明了这个压缩包内容是关于Tomcat 6.0的安装教程以及如何在Tomcat环境下测试JSP页面的指导。Tomcat是一款广泛使用的开源Java Servlet容器,尤其适用于运行JSP和Servlet...
在本文中,我们将深入探讨如何详细配置Apache Tomcat服务器并进行测试,确保配置正确无误。Tomcat是一款流行的开源Java Servlet容器,用于部署Java Web应用程序,包括JSP和Servlet。 首先,我们从基础开始,即安装...
1、将解压后的myapp复制到安装目录下的webapps中(例:C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps) 2、打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明安装...
在本篇文章中,我们将详细介绍如何在 Tomcat 下配置 HTTPS 环境,包括生成密钥、配置 Tomcat 以及测试 HTTPS 连接。 一、生成密钥 在配置 HTTPS 环境之前,我们需要生成一个密钥。我们可以使用 Java 的 keytool ...
1. **压力测试工具选择**:为了准确评估Tomcat的性能,我们需要使用压力测试工具模拟多用户并发访问。这些工具通常通过录制或编写脚本来重复请求页面,例如Apache Benchmark和JMeter。选择工具时,要确保它们支持Web...
可以下载的视频,可以下载的视频,可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频可以下载的视频...
实现简单的war包输出hello world!测试windows和linux的tomcat是否安装成功。
3.2 Nginx+TOMCAT测试:部署Nginx作为反向代理,配置后端指向单个Tomcat服务器,重复相同的压力测试,观察性能变化。 3.3 多TOMCAT测试:在Nginx后端添加多个Tomcat实例,再次进行压力测试,评估负载均衡效果及整体...
简单的 简单的 tomcat集群测试
本教程详细介绍了如何在Windows 7系统下下载、安装、配置以及测试Tomcat的过程。通过以上步骤,您可以轻松地搭建起一个功能完备的Tomcat服务器环境,为Web应用程序的开发和部署提供支持。此外,了解如何配置环境变量...
tomcat-7.0.27安装与测试图解 需要先下载apache-tomcat-7.0.27.exe安装文件。 此图解文档系本人亲自安装并截图制作而成,操作过程非常具体,希望对你有所帮助。
Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...
"nginx+Redis+tomcat实现session共享测试代码"就是一个针对这一需求的解决方案。这个项目可能包含一个配置示例和一些测试用例,帮助开发者理解如何在Nginx反向代理服务器、Redis缓存系统以及Tomcat应用服务器之间...
【Tomcat远程Debug测试】是针对Java应用服务器Tomcat的一种调试方法,允许开发者在本地Eclipse环境中对运行在远程服务器上的Tomcat应用进行调试。以下是详细的步骤和知识点: 1. **配置Tomcat**: - **Windows系统...
标题中的“tomcat下的lib下的jar包”指的是Apache Tomcat服务器中的`lib`目录下的Java Archive (JAR) 文件。Tomcat是一个流行的开源Web应用程序服务器,遵循Java Servlet和JavaServer Pages(JSP)规范。在Tomcat的...