您的位置:首页 > 运维架构 > Tomcat

Tomcat下WebSocket最大连接数测试

2016-08-20 14:15 621 查看
WebSocket现在很常用,想要测试tomcat的最大连接数,今天试了一个可行的办法和配置(之前是用全公司的设备一起来测试的,真机环境的测试收到网络的影响很大,其实真实环境应用中,网络才是websocket的最大瓶颈)

废话不多说~

1.Tomcat需要设置的地方(很多人从网上找的配置试了不可行):

1.1修改catalina.sh或者catalina.bat文件,加上这句话(JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xmn512m")。

1.2修改conf下server.xml,    

            <Connector port="8180" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" acceptCount="4000" 

                  maxThreads="500" maxConnections="4000" enableLookups="false"  redirectPort="8443" />

上面的设置1.1影响最终你的最大连接数,1.2的maxConnections就是最大连接数,有时候觉得设置无效,请把1.1的内存一起调大!

2.通过Java来测试最大连接数:

package com.jh.order;

import java.net.URI;

import javax.websocket.ClientEndpoint;

import javax.websocket.ContainerProvider;

import javax.websocket.Session;

import javax.websocket.WebSocketContainer;

@ClientEndpoint

public class WebSocketTest {

private String deviceId;

private Session session;

public WebSocketTest () {
}

public WebSocketTest (String deviceId) {
this.deviceId = deviceId;
}

protected boolean start() {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
String uri = "ws://192.168.12.161/orderapp/recommend?role=1&group=recommend&dldm="+ deviceId;
System.out.println("Connecting to " + uri);
try {
session = container.connectToServer(WebSocketTest.class, URI.create(uri));
System.out.println("count: " + deviceId);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

public static void main(String[] args) {
for (int i = 1; i< 50000; i++) {
WebSocketTest wSocketTest = new WebSocketTest(String.valueOf(i));
if (!wSocketTest.start()) {
System.out.println("测试结束!");
break;
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息