0.压力测试:
1.使用jprofile来检查系统的耗时,耗内存,线程等方面问题,精确到类和方法
2.使用oracle自带工具检测数据库以及sql优化内容,以及优化建议
语句的条件写成 dn like 'RAN=385, RNC_INFO=385%' and cid='33686761'比较合适
这几个语句执行次数都比较多,请看一下这些语句是否没有用动态绑定以及preparestatement
3.使用sniffer监测网络包情况
4.jboss中jmsmessage有关持久化带来的耗时问题
5.有关hibernate中批量插入和更新的效率问题.
http://www.jdon.com/article/25431.html 这个帖子详细说明了一级,二级缓存的原理
6. lsof用来查看端口占用情况(占用被什么进程占用)
root@hromcr # lsof -i|grep 7090
java 5589 v3test 11u IPv4 0x600043356c0 0t0 TCP *:7090 (LISTEN)
root@hromcr # ps -ef|grep 5589
root 7377 7282 0 16:37:00 pts/5 0:00 grep 5589
v3test 5589 5579 0 Oct 09 pts/2 152:36 /usr/jdk/jdk1.5.0_07/bin/java -server -Dprogram.name=run.sh -Djava.endorsed.dir
7.由于OMCR的相关进程在PC机的任务管理器上都显示为“JAVA”,因此回出现多个JAVA进程在任务管理器上,无法根据名称区分模块。因此目前到底是OMCR的哪一个模块CPU占用率接近100%.
解答:
Windows平台提供的进程信息不足,不能够获得启动程序时传入的参数,也就是诸如 “java - jar -XXXXX a.jar”,java后的信息不能获取,也就很难区分多个Java进程。
由于进程ID的大小是顺序分配的,请根据任务管理器中的PID进行区别,先启动的Java进程的PID相对较小,后启动的PID大。
还可以使用 window进程管理器,选择相应的Java进程后,关注它的模块信息,通常1个JVM进程依赖的Windows操作系统模块数是固定的,可以分别对OMCR通讯模块NEA、性能通讯模块PC、OMT进行观察,确定它所包含的模块数特征,最终也能够确定哪个Java进程是哪个程序。
if(SvrBeanList.instance().getSvrBeanList().size()==0)
{
ArrayList<SvrBeanInfo> mBeanList;
try {
mBeanList = ServerBeanInit.getServerBean();
SvrBeanList.instance().setSvrBeanList(mBeanList);
} catch (ServerBeanMonitorException e) {
Logger.getLogger(this.getClass()).error(e.getMessage());
}
}
//依次遍历列表对进行监控
SvrBeanInfo mSvrBeanInfo=null;
//遍历列表
for(Iterator it = SvrBeanList.instance().getSvrBeanList().iterator(); it.hasNext();)
{
try
{
mSvrBeanInfo = (SvrBeanInfo)it.next();
//获取Bean home
Object svrHome = MBeanFactory.getInitialContext(mSvrBeanInfo.getBeanName()).lookup(mSvrBeanInfo.getBeanName());
//利用反射机制获取create方法,并执行
Method method = svrHome.getClass().getMethod("create",null);
IMonitor monitor = (IMonitor)method.invoke(svrHome, null);
//调用check方法检验bean是否正常
monitor.check();
//如果Bean状态由不可用变为可用,判断是否初始化
if(mSvrBeanInfo.getState()==ServerBeanConst.SERVER_BEAN_DISCONNECT)
{
//若没有初始化,则调用init方法进行初始化
if(!monitor.isInit()){
monitor.init();
Logger.getLogger(this.getClass()).info(mSvrBeanInfo.getModuleName() + " module init successful.");
}
}
//设置为连接状态
mSvrBeanInfo.setState(ServerBeanConst.SERVER_BEAN_CONNECT);
//Logger.getLogger(this.getClass()).debug("check successful.");
}catch(Exception ex){
mSvrBeanInfo.setState(ServerBeanConst.SERVER_BEAN_DISCONNECT);
Logger.getLogger(this.getClass()).error(ex.getMessage());
break;
}
}
pstack.plockstat.lockstat.mpstat