从7月初到10月底的4个月时间中,我们已经在服务器上导入了大量数据,建成了一批新的子网站,在接下来的一段时间内我们不准备继续大增数据量了,而是对已经导入数据的网站进行精细优化调整,这个月已经开始了这方面的工作。
MediaWiki平台的网站都是去年以及以前建成的,这次基本没有大的调整,只是一部分网站对模板进行了更新,以便嵌入microdata微数据标记,虽然也需要运行后台更新、重新生成缓存文件,不过这个对服务器的负载影响不算很大,是可以承受的。
而在对今年新做的Drupal平台的改进中,如果只是修改内页模板、block以及menu等的话,对负载的影响也不算很大,但如果涉及到新建Views就可能对MySQL造成压力,特别是我们近几个月添加的都是大数据量的子网站,一个站点就可能有数百万计的页面,用Views生成索引列表的时候运算时间很长,而当有大量这样的运算同时进行的时候,服务器就会不堪重负。
我和同事在前面商量网站改版的时候,没有过多考虑负载情况,只是本着浏览者方便的角度出发,计划增加多种Views索引列表来替代以前的Taxomony分类,还要增加地域分级的索引以及地域和行业的交叉索引,这些在设计Views中就知道将会是mysql load killer。
本周以来随着我们在多个子网站中实施改版计划,几台服务器的负载都明显增加,有一台是16核CPU持续占用都达到100%,都消耗在Apache和PHP中,另外有一台是MySQL占用了CPU的16核中的12核以上,从PHPMyAdmin中看明显是增加Views引起的。
目前只有放缓改版实施的步伐,并强制kill超时的MySQL进程,还去禁止了一些疑似采集的IP,以便先让目前的网站都能维持正常访问。这个月以来的一段时间,我们网站的访问量还在增加,AdSense的单价也有上升,所以几周来广告收入都连创新高。保证网站能被正常访问是首要的,改版可以逐步来进行。
在MediaWiki中我们为了方便浏览者也曾使用DPL动态页面列表的功能,后来因为负载问题,改用了普通页面来实现需要的索引列表功能,虽然人工来整理数据、新导入页面要麻烦一些,但可以保证服务器不受大的影响。Drupal中的Views也类似MediaWiki中的DPL,只是功能更加灵活强大,可以实现复杂的数据库查询应用,但对服务器的消耗也大,后面我们会根据实际情况来做调整。
评论