resin并发个数这么高

fxltsbl 2012-03-18 05:47:08
测试了一下resin的并发数,竟然最多有5128个
测试环境:
server端:OS:本人的机子,32位os,3g内存,1.8g双核cpu
resin:-Xmx1400m -Xss64k(设为最小,为了少占内存)
client :循环创建7000个线程,每个线程循环访问resin100次

测试结果:通过resin控制台看Thread pool中的线程数,最大达到了5128个;

总结:如果os,内存,cpu都是理想的,就resin本身而言,最大并发可以达到5k多;
问题:错误率很高,(7000个线程,每个100次req,线程池最大值5128,错误率42%;(1000个线程,每个100次req,线程池最大值388,错误率15%);综上所述,应该是说5k多并发是理想状态,实际中可能几百多就差不多了吧,欢迎拍砖


测试代码如下:
public class Test1 {
public static int success = 0;
public static int fail = 0;
public static int reject = 0;
public static void main(String[] args) throws Exception {
long a = System.currentTimeMillis();
ThreadDemo[] td = new ThreadDemo[7000];
for(int i=0;i<td.length;i++){
td[i] = new ThreadDemo(i,a);
}
for(int i=0;i<td.length;i++){
td[i].start();
}

}

public static synchronized void setValue(int s,int f,int r){
success+=s;
fail+=f;
reject+=r;
}

public static class ThreadDemo extends Thread {
private int id = 0;
private long s = 0;
public ThreadDemo(int id,long s){
this.id=id;
this.s=s;
}

@Override
public void run() {
int success = 0;
int request_fail = 0;
int request_reject = 0;
URL url;
for (int i = 0; i < 100; i++) {
try {
url = new URL("http://ip:8080/Project1/test.jsp");
InputStream is = url.openStream();
byte[] b = new byte[100];
StringBuffer sb = new StringBuffer();
while(is.read(b)!=-1){
String ss = new String(b,"utf-8");
if(!"".equals(ss.trim()))
sb.append(ss.trim());
}
is.close();
success++;
} catch (ConnectException e) {
request_fail++;
}catch(SocketException ee){
request_reject++;
}catch(Exception e){
e.printStackTrace();
}
}
Test1.setValue(success,request_fail,request_reject);
System.out.println("request --" + id + "-- url end.take "
+ (System.currentTimeMillis() - s) + "ms success="+Test1.success+" fail="+Test1.fail+" request_reject="+Test1.reject);
}
}

}
...全文
631 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxltsbl 2012-03-27
  • 打赏
  • 举报
回复
压力大不上去是测试工具的问题吧,服务器应该还可以接受请求的,不过错误率是不是个位数?[Quote=引用 2 楼 ztglf521 的回复:]

比tomcat肯定要高的

我司就是用的resin 支持每秒3000次的并发没问题 压力测试过
再高没法测试 压力打不上去
[/Quote]
我在肖申克 2012-03-23
  • 打赏
  • 举报
回复
比tomcat肯定要高的

我司就是用的resin 支持每秒3000次的并发没问题 压力测试过
再高没法测试 压力打不上去
fxltsbl 2012-03-19
  • 打赏
  • 举报
回复
不知道小弟的结论对不对

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧