设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
小弟请教各位大大:HTTP会话侦听器引起的性能问题 ...
返回列表
发新帖
小弟请教各位大大:HTTP会话侦听器引起的性能问题
[复制链接]
11
|
0
|
2007-4-8 13:35:00
|
显示全部楼层
|
阅读模式
各位大大,如果小弟说的不够清楚或者有表述问题,请跟贴说明谢谢。
开发环境: IBM Websphere Studio ApplicationDeveloper 5.0
部署环境: IBM Websphere Application 5.0, DELL PE2850 2G内存 2cpu
后台数据库 cache 5.2
用户数:平均:100~150,高峰期 200.(指用来连接服务器的终端)
IBM Tivoli的数据:线程池大小52,平均线程 26.
问题描述如下:
1.小弟为了实现在应用程序中实现负载均衡,几台服务器作为一个集群,将会话转发,计算负载的时候需要知道每台服务器上的连接数。
2.通过wsad生成了HTTP会话侦听器,wsad的说明是:“当创建会话对象、使会话对象无效或会话对象超时时,将通知这些侦听器”
3.测试环境没有问题,因为测试环境和财力限制,无法做比较大的压力测试,
4.当我部署侦听器到生产环境的时候,性能急剧下降,通过IBM Tivoli查看器,可以看到线程池里的线程成倍增长,瞬间突破了100。
5.我的疑问是请教各位如何改善这个监听器的性能,以及会造成这个情况的大概原因,小弟谢谢诸位帮忙。
6.侦听器的大至代码如下:(为节省篇幅省略了代码)
public class SessionListenernew implements HttpSessionListener {
public int count;//连接数
public String ip;
public SessionListenernew(){
super();
count=0;
ip="";
}
private void savecount(){//此处代码用于将连接数存入数据库
ApplicationServerModel asm=new ApplicationServerModel();
try {
asm.updatecount(ip,count);
} catch (EMRException e) {
}
}
private void getAddr()throws UnknownHostException{//取当前的服务器的ip
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress();
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("管理 会话监听:会话结束"
;
count--;
try{
this.getAddr();
}catch(UnknownHostException e){
//do nothing
}
this.savecount();
//关闭会话,并保存连接数到数据库
System.out.println("当前会话数:"+Integer.toString(count));
}
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("管理 会话监听:会话开始"
;
count++;
try {
this.getAddr();
} catch (UnknownHostException e) {
}
this.savecount();
//关闭会话,并保存连接数到数据库
System.out.println("当前会话数:"+Integer.toString(count));
}
}
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行