|
对于一个访问量巨大的网站来说,使用awstats来分析其日志是一件很痛苦的事情,这往往需要耗费很多时间才能得到一个结果,偶尔还会让机器内存耗尽。在awstats的文档中,找到几个关于性能优化的建议,如下:
- 关掉DNSLookup(DNSLookup不能设置为1). 虽然这样你会丢失一些关于访问者的国家信息,但是我觉得这无关紧要,大部分网站的访问者集中在国内。这样能给awstats性能带来小小提升。
- 小心使用这三个参数: URLWithQuery, URLReferrerWithQuery ,URLWithAnchor (如果你不知道它们有什么作用最好设置为0)
- 使用最新版本的perl (例如Perl 5.8比5.6要快上5%) 。另外比较重要的一点,用标准版本的perl代替ActiveState版本的perl,因为ActiveState 5.006有内存泄漏方面的问题,它在解析日志的时候会越来越慢最终一行日志也跑不动。
- 回卷日志。尽可能的把日志分成更小的一份,这样awstats能处理的快一些,可以适当提高awstats解析频率.
- 确认HostAliases参数是完整的
- 使用最新版本的AWStats (例如AWStats 6.0比5.9快15%).
- 某些geeks,你可以考虑采用不同的参数来重新编译perl,例如使用”use64bitint=define usemymalloc=y”编译perl,这样perl的速度能提升10%.
英文原文http://awstats.sourceforge.net/docs/awstats_benchmark.html
转载http://www.ooso.net/archives/331
其他的两个优化方法
利用zcat直接读取.gz文件,过滤掉图片、js、css等文件
具体如下:
./awstats.pl -update -config=test -LogFile="/bin/zcat test.log.gz |grep -v '.gif/|.png/|.jpg/|.js/|.css' |"
通过修改awstats.pl文件来进行,其中 $LIMITFLUSH 默认值为5000,可以根据服务器自身内存进行增加,我增加到了100000,性能提高很明显。
如果你需要统计多个域名的日志,多核、多CPU的服务器则可以开启多个进程同时在后台进行分析,在shell中加上wait就可等待所有进程执行完后再进行之后的html生成。 |
|
|