zoukankan      html  css  js  c++  java
  • LoaRunner性能测试系统学习教程:日志文件分析(8)

    上期我们讲到LoaRunner性能测试MPM相关参数,这期我们讲LoaRunner性能测试日志文件分析。

    日志文件分析

    为了有效地管理web服务器,以及获取有关服务器活动和性能相关的数据反馈。Apache HTTP Server提供了非常全面和灵活的日志功能。主要介绍如何配置日志文件以及理解日志文件中所包含的内容。主要介绍的日志文件有两类:access_log日志文件和error_log日志文件。

    access_log日志文件

    access_log日志文件主要是记录客户端访问服务器的所有请求信息。access_log日志文件所在位置由customLog指令设置,其指令语法如下:  CustomLog"logs/access_log"common  设置access_log日志文件格式可以使用LogFormat指令日志的格式设置参数如下:  LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i""combined  LogFormat"%h%l%u%t"%r"%>s%b"common  日志格式设置有两种:common和combined一般我们使用的是默认的common格式。  
    上面是日志记录内容的格式定义,格式是由百分号和相关指令组成,每个指令都表示服务器的一条特定的日志信息,文字字符也以字符串复制到日志输出中,如果要表示引号字符必须使用反斜杠进行转义,以防止将其解释为格式字符串的结尾。  common格式的日志内容如下:  192.168.40.134--[19/Oct/2019:16:23:19+0800]"GET/ecshop3/images/201605/thumb_img/62_thumb_G_1462952557730.jpgHTTP/1.1"2002064  192.168.40.134--[19/Oct/2019:16:23:19+0800]"GET/ecshop3/data/afficheimg/1462958213922967180.jpgHTTP/1.1"200158999  日志内容各部分的含义如下:  192.168.40.134(%h)  表示向服务器发出请求的客户端(远程主机)的IP地址。如果将HostnameLookups指令设置为On,那么这个内容可能为主机名,而非IP地址。
    但是,不建议使用此配置,因为它会显著降低服务器的速度。相反,最好使用日志后处理器(如logresolve)来确定主机名。  需要注意的是我们看到日志文件内容中的IP地址不一定是用户所在机器的地址。如果在用户和服务器之间存在代理服务器,则该地址将是代理的地址,而不是始发机器的IP地址。  
    -(%l)  输出中出现的“-”字符,是连字符的意思,表示请求的信息不可用,这是由客户机的RFC1413本身的一些特性标识的,这种信息是很不可靠的,但是如果将IdentityCheck设置为On,那么apache服务器才会尝试去确定此信息。  
    -(%u)  这是访问服务器的用户ID,这个ID是由HTTP身份验证来确定的,这个值一般是保存到远程用户环境变量中的CGI脚本中。如果服务器不信任此值,因为用户尚未通过身份验证。如果文档不受密码保护,则此部分将与前一部分一样为“-”。  
    [19/Oct/2019:16:23:19+0800](%t)  表示访问服务器时,服务器的时间。+0800表示服务器所处时区位于UTC之后的8小时。  GET/ecshop3/images/201605/thumb_img/62_thumb_G_1462952557730.jpgHTTP/1.1("%r")  表示访问服务器的资源的相关信息,包括请求方式、服务器资源位置、客户端向服务器发送请求时的协议和协议版本信息。  
    200(%>s)  这表示客户端请求服务器后返回的状态码,此信息非常有价值,它揭示了请求是否成功以及失败的。关于HTTP响应状态码的详细可以查看HTTP规范RFC2616第10节内容。  2064(%b)  表示服务器发送给客户端的字节数,但这个字节数,不包括响应头的信息如果服务器没有向客户端发送任何内容,则该值为“-”,若记录为0则表示不记录任何内容。  
    Combined格式的日志内容如下:  127.0.0.1-frank[10/Oct/2000:13:55:36-0700]"GET/apache_pb.gifHTTP/1.0"2002326"http://www.example.com/start.html""Mozilla/4.08[en](Win98;I;Nav)"  Combined日志内容与common日志内容信息差不多只是多出了以下两个字段:  "http://www.example.com/start.html"("%{Referer}i")  表示客户端所访问资源的引用站点。如实例中表示是所访问资源apache_pb.gif的链接或包含apache_pb.gif的页面。  "Mozilla/4.08[en](Win98;I;Nav)"("%{User-agent}i")  表示发送HTTP请求的客户端自身的标识信息。 

    error_log日志文件

    error_log记录两类错误信息:一是文档类的错误信息;二是CGI编译类的错误信息;是最要的日志文件之一,错误日志命名和位置是由ErrorLog指令来设置,error_log日志文件会记录处理请求时遇到的任何错误相关信息,当启动服务器或服务器操作出现问题时,首先会分析error_log日志文件,分析错误的详细信息以及如何解决问题。  
    error_log错误日志路径设置如下:  ErrorLog"logs/error_log"  错误日志的格式由ErrorLogFormat指令定义您可以使用该指令自定义记录的值。如果不指定格式,则默认为“格式定义”。典型的日志消息如下:  [FriSep0910:42:29.9020222011][core:error][pid35708:tid4328636416][client72.15.99.187]Filedoesnotexist:/usr/local/apache2/htdocs/favicon.ico  第一部分内容表示记录错误日志信息的日期和时间。  第二部分内容表示引起错误信息的是模块,以及该错误信息的严重级别。  第三部分内容表示产生错误信息的进程号和线程号。  第四部分内容表示发送请求的客户端信息。  第五部分内容表示错误的详细信息,这种情况表示找不到资源,所访问的资源不存在。  
    在linux或unix操作系统下,如果需要动态查看日志信息变化情况可以使用以下命令:  tail-ferror_log  但这个命令不具体统计功能,如果需要对日志文件进行相关的统计的话,使用上面的命令是不够的。关于如果分析日志文件在下面的小节中我们会详细介绍。

     日志文件分析工具或指令

    上面介绍了两种常见的日志文件,在工作中很多人可能会使用tail-f命令来查看日志文件。但这个命令是不具体统计功能的,它只能实时的看到最后几行日志信息进行变化。并且在实际工作中这个日志文件可能会很多,有的数据量比较多的时候可能一天会产生几个TB的日志信息,这样给统计工作带来难度,那么如果我们需要日志文件进行分析和统计那怎么处理呢?  一般分析日志文件有两种方法:一是使用分析工具ApacheLogsViewer;二是使用命令进行统计。  
    1)ApacheLogsViewer  ApacheLogsViewer(ALV)是一个免费且功能强大的工具,可让您更轻松地监视,查看和分析Apache/IIS/nginx日志。它为日志文件提供搜索和筛选功能,并根据其状态代码突出显示各种HTTP请求。该工具还带有生成报告功能,因此您可以在几秒钟内生成一个饼图/条形图。与此相关的还有统计信息,您可以设置相关的筛选条件对日志信息进行筛选和统计。  
    关于分析服务器相关日志信息的工具其实也不少,不是只有这款工具,大家有兴趣的话可以在网上找到不少关于这类日志文件的分析工具。  
    关于ApacheLogsViewer工具如何使用我们就做介绍了,这个使用比较简单,大家安装好就会使用,ApacheLogsViewer主界面如图所示。

    2)Unix/Linux命令统计  除了使用工具统计外还可以使用一些常见的命令对日志文件进行分析与统计。以下是一些常见的用于监控和统计日志文件的命令。  动态查看日志文件  tail-faccess_log  查看apache的进程数  psaux|grep'httpd'|wc-l  分析某天一共的请求数  cataccess_log|grep'15/Jun/2019'|awk'{print$2}'|sort|uniq-c  分析某天指定的IP访问的URL情况  cataccess_log|grep'15/Jun/2019'|grep'192.168.40.134'|awk'{print$7}'|sort|uniq-c|sort-nr  查看当天访问排行前10的url  cataccess_log|grep'15/Jun/2019'|awk'{print$7}'|sort|uniq-c|sort-nr|head-n10  查看访问次数最多的时间点  awk'{print$4}'access_log|cut-c14-18|sort|uniq-c|sort-nr|head 

    小结

    主要介绍了Apache服务器的监控与调优。不管是什么类型的web服务器还是应用服务器,我们做性能测试首先应该掌握如何监控服务器,主要介绍了两种监控服务器的方法:status和apachtop两种。监控服务器是为了得到服务器的实时数据,为分析做准备。
    但仅仅是监控还是不够的,我们必须知道Apache工作原理分析那些指令会影响服务器的信息,当然对Apache服务器来说,其调优最核心的就是MPM相关参数的设置,这些参数设置的如何会直接影响服务器的性能。所以必须对MPM的工作原理和参数有深入的了解。
    最后才是分析日志文件,通过分析日志文件来确定请求的相关信息,协助判断结果,分析日志的文件通常会有两种一是使用工具分析日志文件;二是使用相关的linux命令来分析和统计日志文件。

  • 相关阅读:
    生成函数解决多重集合的计数问题
    kmp板子
    poj1001
    【题解】洛谷P1315 [NOIP2011TG] 观光公交(前缀和+贪心)
    【题解】洛谷P1941 [NOIP2014TG] 飞扬的小鸟(背包DP)
    【题解】洛谷P2679 [NOIP2015TG] 子串(DP+滚动数组)
    【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)
    【题解】洛谷P1052 [NOIP2005TG] 过河(DP+离散化)
    [arc063F]Snuke's Coloring 2-[线段树+观察]
    [agc001E]BBQ Hard[组合数性质+dp]
  • 原文地址:https://www.cnblogs.com/chuansinfo/p/14030696.html
Copyright © 2011-2022 走看看