4.3.3 应用服务器内部

第2章里我们已经讨论了如何设置适当的服务器和网络KPI。我建议把这些KPI分级定义,从最高级别开始,接下来是一般的级别,然后添加其他侧重于具体的应用技术的KPI。一个更具体的与若干应用服务器组件相关的KPI存在于应用场景。这种类型的监控可以让您看到应用服务器底层直到Java或.NET的组件和方法的相关信息。

假如应用程序存在问题,简单的一般级别应用服务器的监控不能提供更多信息。在Windows环境下基于Java的应用服务器,所有您能看到的只是一个或多个java.exe进程占用较多内存或CPU资源,而我们需要找出具体是哪些组件的调用产生了问题。

您还可能遇到线程堵塞的现象,这个时候一个应用服务器组件一直等待另外一个内部组件的响应或者一直等待另外一个服务器,例如数据库服务器的响应。当出现这种情况的时候,通常没有过多的CPU或者内存占用高的迹象,仅仅是响应时间比较长。一连串的上述问题将使得在没有详细应用服务器分析的情况下的诊断变得困难。

图4-17和图4-18展现的就是为这种类型分析所能提供的性能数据。

4.3.3 应用服务器内部 - 图1

图 4-17 Java应用服务器最差SQL语句调用

4.3.3 应用服务器内部 - 图2

图 4-18 Java应用服务器最差方法