一、网站当前状况和性能现状
系统硬件配置: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的动态缓存的方式,在动态应用中减少数据库负载,提升访问速度。