增大AWStats的$LIMITFLUSH,减少磁盘临时文件读写 Flush history file on disk (unique url reach flush limit of 5000)
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)… Flush history file on disk (unique url reach flush limit of 5000) Flush history file on disk (unique url reach flush limit of 5000) Flush history file on disk (unique url reach flush limit of 5000) 是AWStats统计常见的输出,每行都是在处理完一定数量的URL(缺省是5000个)后,AWStats将统计结果临时写入磁盘。最近使用AWStats处理百M级别的日志时:磁盘IO居然非常高, 发现有时候遇到页面URL个数非常多的时候(比如:在搜索引擎蜘蛛对网站进行深度遍历deep crawl时),经常会使得AWStats对缓存文件的读写过于频繁,随着生成的数据文件越来越大,每次几百M的临时文件读写也会导致统计速度越来越慢;经常一次统计数据下来会Flush history file on disk (unique url reach flush limit of 5000) 几百次;
记得以前是对AWStats进行过简单的参数配置的,可以修改flush的周期,但现在的文档中没有找到相应的配置,只好Hack了一下:awstats.pl文件将每隔发现5千个新链接改为5万个;
为了避免将蜘蛛的deep crawl识别成正常的Web浏览:经常性的发现一些蜘蛛并标识出来还是很有意义的,比如:最新发现的蜘蛛名是 “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; CollapsarDEEP)”