一、网站当前状况和效能现状

系统硬体配置:CPU 为两个 IntelXeon2.4G,实体记忆体为 2.5G.

系统站群软件配置:作业系统为 WindowsServer2003 标准版,资料库为 SQLServer2000.

站群服务器访问量:工作日:访问人数 10000,浏览量 30000,休息日:访问人数 4000,浏览量 10000,每多用户访问页面为 2.88 页面,平均停留时间为 3 分钟。由于存在大型下载档案,站群服务器流量每天有 80G 到 160G 左右。

WEB 系统:采用 Tomcat 站群服务器,使用 Struts 和 Hibernate.

网站系统:网站有几套不同的系统,有新闻释出 CMS 系统、档案下载系统、反馈系统等等,使用基于 Java 的 Struts 和 Hibernate 的 MVC 架构,动态应用。

站群服务器 CPU 目前通常为 40% 左右,很多情况能增加到 80-90%.

二、网站效能分析

通常情况下 CPU 达到 80% 说明系统效能存在瓶颈,需要找出系统的瓶颈究竟在哪里。

分析过程是,远端登入站群服务器,开启 SQLServer2000 的事件探查器,记录和分析 SQL 语句,同时开启工作管理员,检视各个程序占用 CPU 的状况。

经过查询,SQLServer 占用较大的 CPU,说明系统呼叫 CPU 查询较多,初步可以确认是资料库引起的系统瓶颈,由于使用 Struts 和 Hibernate 应用,呼叫资料库频繁,因此可以采用减少 SQL 查询的方式降低对 SQLServer 的呼叫,通常情况下有两种方法:Cache 或静态化。

另外,站群服务器的 Web 系统采用的架构存在一些问题,因为存在大型下载档案,占用的流量非常大,而 Tomcat 本身对于静态档案的处理效能并不好,也会对系统效能产生负面的影响。

三、网站和站群服务器优化方案

将页面静态化是通常的优化方案,但是对于当前的 Tomcat 站群服务器下的 Struts 和 Hibernate 未必有效,因为 Tomcat 对于静态 HTML 档案本身支援并不理想,并且新闻内容更新较为频繁。因此,在现有架构的基础上,可以使用 hibernate 的 ehcached 的动态快照的方式,在动态应用中减少资料库负载,提升访问速度。