热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AWStats性能优化调整

声明:本文优化措施来源awstats官方网站和其他友人的博客(如有冒犯还请见谅,感谢你的互联网分享精神),优化过程为自己实际应用。一、现状网站每月大概有50万访问者(500,000visitsmonth),每天的nginxlog大小为62M(约30万条记录),使用awstats分

声明:本文优化措施来源awstats官方网站和其他友人的博客(如有冒犯还请见谅,感谢你的互联网分享精神),优化过程为自己实际应用。

一、现状

网站每月大概有50万访问者(500,000visits/month),每天的nginx log 大小为62M(约30万条记录),使用awstats分析需要至少2小时,性能非常低,速度非常慢,与AWStats千万级日志解决方案的称号不匹配。

二、系统环境

Xeon(R)四核E5504 2.00GHz CPU

内存 3GB

PERL5.10  (最新版本5.14)

AWStats 6.7 (最新版本7.0)

AWStats官方性能基准:http://awstats.sourceforge.net/docs/awstats_benchmark.html

三、优化措施

1、关闭awstats配置文件中反向dns查找(DNSLookup=0)。

DNSlookup是用来根据参观者ip查询参观者的网域/国家信息。一般情况下DNS查询的很慢,具体取决于网络环境和系统配置。关闭DNSlookup会节省99%的分析时间。实际测试62M日志(30万条记录)如开启dnslookup分析时间在2小时以上,而关闭dnslookup的话分析时间在1分钟,极大缩短了分析时间。关掉dnslookup的损失就是无法获得参观者的国家信息,awstats官方建议如需要国家信息,采用更加精确的geoip插件来代替dnslookup。

2、关闭 URLWithQuery, URLReferrerWithQuery ,URLWithAnchor (如果你不知道它们有什么作用最好设置为0),awstats默认关闭这3个选项。

3、升级perl版本(perl 5.8要比perl 5.6快5%),用标准的perl发行版本代替ActiveState版本(因为ActiveState有内存泄露的问题,会导致分析会越来越慢以致最后一行也不能分析)。

4、日志循环(Rotate your log),把log分割成更小的部分,使用crontab适当提高分析频率,可以让awstats分析的更快些。

5、升级awstats版本(AWStats 6.0 要比awstats 5.9 快15%)。

6、确保awstats配置文件中HostAliases参数的完整性。

7、使用zcat直接读取.gz文件,过滤掉图片、js、css等文件

具体如下:

./awstats.pl -update -cOnfig=test -LogFile="/bin/zcat test.log.gz |grep -v '.gif/|.png/|.jpg/|.js/|.css' |"

8、通过修改awstats.pl文件来进行,其中 $LIMITFLUSH 默认值为5000,可以根据服务器自身内存进行增加,我增加到了100000,性能会有一定的提升。

# vi  /usr/lib/cgi-bin/awstats.pl

38 $LIMITFLUSH=5000;    # Nb of records in data arrays after how we need to flush data on disk

四、优化结果

优化前,分析30万条记录需要至少2个小时;关闭dnslookup后,分析30万条记录需要1分钟。

优化后的结果可以满足目前需求。其他优化措施再修改后效果不明显。

五、性能瓶颈

由于awstats有很多丰富的统计指标:蜘蛛识别 浏览器识别,file.html' target='_blank'>文件类型统计等,漂亮的分析结果页面,是Webalizer、analog不能及的,这在一定程度上肯定会消耗更长的分析时间。

但对于一个访问量巨大的网站来说,用awstats分析是一件很痛苦的事情。awstats官方建议是当访问量超过 4,000,000visits/month时,推荐使用统计指标更少、速度更快的Analog或者Webalizer。


推荐阅读
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • nginx 反向代理proxy参数讲解
    ![](http:i2.51cto.comimagesblog20180805c32a728954d93ee2a4e4fb59c150a15b.png?x-oss-processi ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • CentOS 7配置SSH远程访问及控制
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Docker安装Nginx 反向代理服务器
    前端代码扔在服务器上怎么运行,首先安装Nginx,这里我用Docker安装Nginx文章目录一、安装nginxdocker镜像1、获取nginx官方镜像 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
author-avatar
密歇根的闪闪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有