【发布时间】:2014-07-13 03:44:26
【问题描述】:
客户已请求使用其传出带宽。
我们的 Apache 日志有如下几行,其中 36618 表示以字节为单位的传出请求大小:
111.111.111.11 - - - foo.org [23/May/2014:01:00:15 -0400] 036618"GET /baz/bar.html HTTP/1.1" 200 3734 "http://foo.org/baz/bar.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36"
我构建了这个(主要是)Perl 单行代码,通过正则表达式获取所有这些数字,并将其附加到一个空数组,然后通过 Bash 计算器转储由 '+' 分隔的数组。 (下面的行最终通过|paste -sd+|bc 管道传递到标准输入的下面的行中。
@BYTES = (); while(<>) { push(@BYTES, $1) if ( $_ =~ qr/] (?:\d+|-) (\d+)/) }; foreach(@BYTES) { print "$_\n" }
但是,我看到的使用量比我预期的要高得多,在短短几天内就达到了数 GB。那是不对的。这里有什么问题?
更新请参阅下面的评论,我输入了错误的字段,我选择的字段是以微秒为单位提供请求的时间,一定会高于请求的大小(以字节为单位)。
【问题讨论】:
-
我填错了,对不起!我有时间在微秒内处理请求!对不起!在这种情况下,它应该是 3734。