如何监测Web应用

以前公司的项目中,总是有这样和那样的问题,会引起系统出错。
排除这些问题的方法,无非模拟测试与监测,

  • 模式测试
1)内部使用放开权限的压力测试;
2)针对数据量访问大的页面关闭cache,压力测试;


  • 监测并汇成报告
在做这些测试的时候,有一个很重要的问题,就是如何实时记录下当前系统运行的状态。
1)JVM剖析器,如JProfiler和Jvisualvm,它们可以生成快照报告,方便记录在测试期间内存和对象的使用情况。
2) 数据库方面,从Oracle11G开始,也有类似JVM剖析器的快照报告生成机制,可以记录下测试期间SQL语句的执行效率和次数。这个仅仅是在数据库端。
3)实际上还有许多辅助的监测手段,如监测当前JVM内存使用情况、应用连接池的使用情况和用户的访问轨迹(ClickStream)。其中部分可以使用linux的计划任务,实时将结果写入到日志文件。

这里要单独介绍一下ClickStream(http://svn.opensymphony.com/svn/clickstream/trunk/),它可以实时显示出当前所有登录用户的Sesssion及每个用户动作(过滤器定义的扫描)。
这个项目基本上没有更新(也不必再更新),已经慢慢消失掉了。自己曾经改造过它,记录下用户访问.do和.jsp文件的服务器端页面时长,并记录到数据库中。这样可以方便的知道那些页面或者action可能会有性能瓶颈,或被频繁调用而没有做优化处理。

你可能感兴趣的:(如何监测Web应用)