- A+
所属分类:Web技巧
昨天晚上服务器访问量较多的情况下,出现了访问拒绝。虽是采用集群方式,但是连接被占满。
猜想应该不是Web服务器这边的问题,到数据库看看,发现CPU和内存运行正常,但是网络却高达20%。
一个百兆网卡,占据20%,意思是每秒有20M的数据在传输,对于我们这样的系统来说,有点不合理。我第一想到的,是不是有大量不必要的查询存在。可是这类问题已经在之前经过了一些优化,即使是这个问题,也不应该如此突出。
今天调试代码,发现有些标注了缓存的方法却没有缓存。对比之前的示例(Spring 使用注解配置使用ehcache,http://www.zxar520.com/),查看代码才发现,是因为主配置文件中删除了一行关于ehcache的内容:
1 |
<ehcache:annotation-driven cache-manager="ehCacheManager" /> |
因此造成了缓存不起作用。
经过修改后再查看数据库网卡传输,只有1%,因为缓存的作用,加快Web服务器的处理速度,因此系统运行速度明显加快。
因此合理对系统增加缓存是非常必要的,特别是服务和数据库不在同一台服务器情况下。
因为我曾经做过一段时间的网络编程,因此对涉及网络层面的内容特别关心,也极力建议尽量在优化代码之后关注整个系统环境的网络情况。
对于缓存,我也建议大家关注下开源,免费,支持Spring注解的ehcache缓存框架。