Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

再次研究有关流量控制问题![如何实时计算虚拟主机的流量]

[复制链接]
BENDY 发表于 2004-4-4 07:39:29 | 显示全部楼层 |阅读模式
前二天在一个商业程序中发现一个十分奇妙的实时计算虚拟主机流量的方法。。
它竟然完全不需要任何第三方插件。且十分有效。但实际应用就估计有点难度。

它是利用apache中的log功能。直接运行系统的mysql命令。然后对每个进程进行记录。。。
它的config中的log部份信息如下:

CustomLog "|mysql -hlocalhost -uxpanel -ppass dbname" mysql
LogFormat "UPDATE hosts SET bandwidthUsed=bandwidthUsed+%B WHERE domainName = '%{Host}i';" mysql

注意。在虚拟主机上插入这语句时。直接将
domainName = '%{Host}i'
改为
domainName = '你的虚拟主机名(也就是ServerName的设定值)'
比如虚拟主机名是bendy.com的。就改为
domainName = 'bendy.com'

这下大家都发现。原来统计流量可以是这么简单的!(枉我之前写了这么长编的文章介绍方法。。)

不过正如所有人担心的一样。担心如果http进程过多。mysql子系统能否承受得住这么多的update????

呵。。大家说一说。。。。

具体的MYSQL设置部份大家应该可以做出来了。我也不多说了。

[ Last edited by BENDY on 2004-4-4 at 08:11 AM ]
 楼主| BENDY 发表于 2004-4-4 08:08:55 | 显示全部楼层
在实际应用上。有几个运行情况:
一、你对多少个虚拟主机进行统计。就在相应的<VirtualHost>中插入相应的LOG语句。如果对所有虚拟主机进行统计,就直接在全局设置中使用这个LOG语句。
二、有多少台虚拟主机在统计。就会产生多少个MYSQL进程连接。一般来说。该连接是不会断开的,看你的服务器设定了。但会产生大量的update请求。看你的mysql系统能否承受了。。我未完整地测试过有关的负荷!

[ Last edited by BENDY on 2004-4-4 at 08:39 AM ]
回复

使用道具 举报

UP.Linux 发表于 2004-4-4 13:41:07 | 显示全部楼层
或许得独立一个mysql来做了,本身mysql已有非常大的负载,再加上日志就不得了了。

不过这样统计流量倒是很简单了,突然给了我一个思路,Shell 程序的执行结果也可以很轻松放到 Mysql 里了,嗯,以前没这么用过,试试看。
回复

使用道具 举报

cqfanli 发表于 2004-4-4 13:51:00 | 显示全部楼层
对,这个思路的确非常巧妙哦,我觉得可以用它来做更多的事情呢?
回复

使用道具 举报

 楼主| BENDY 发表于 2004-4-4 14:04:29 | 显示全部楼层
是啊。。。。我也是这样想。聪明人会在一个方法中。找到另一个方法!!!!呵。。。
回复

使用道具 举报

haohaoo 发表于 2004-4-5 15:04:39 | 显示全部楼层
用个shell来统计,每天统计一次,统计完后再存到mysql里面
回复

使用道具 举报

 楼主| BENDY 发表于 2004-4-5 16:20:36 | 显示全部楼层
Originally posted by haohaoo at 2004-4-5 03:04 PM:
用个shell来统计,每天统计一次,统计完后再存到mysql里面

用shell来统计。怎统计?依照log文件吗?
用什么作为统计的材料??
回复

使用道具 举报

haohaoo 发表于 2004-4-7 13:31:01 | 显示全部楼层
Originally posted by BENDY at 2004-4-5 04:20 PM:

用shell来统计。怎统计?依照log文件吗?
用什么作为统计的材料??

对啊,根据你上面的思路啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 01:09 , Processed in 0.027189 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表