测试nginx缓存模块ngx_cache_purge
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了测试nginx缓存模块ngx_cache_purge,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3866字,纯文字阅读大概需要6分钟。
内容图文
服务器环境:
前端nginx version: nginx/1.9.7
后端Apache/2.2.15 (Unix) 访问地址http://192.168.1.10:88
Kernel Version: 2.6.32-573.8.1.el6.x86_64
关于测试工具ab:
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求
使用此工具需要安装 httpd, 使用 yum –y install httpd 安装即可 .
Ab 参数详解 :
- n 在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c 一次产生的请求个数。默认是一次一个。
-t 测试所进行的最大秒数。其内部隐含值是 -n50000 ,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p 包含了需要 POST 的数据的文件。
-P 对一个中转代理提供 BASIC 认证信任。用户名和密码由一个 : 隔开,并以 base64 编码形式发送。无论服务器是否需要 ( 即 , 是否发送了 401 认证需求代码 ) ,此字符串都会被发送。
-T POST 数据所使用的 Content-type 头信息。
-v 设置显示信息的详细程度 -4 或更大值会显示头信息, 3 或更大值可以显示响应代码 (404,200 等 ),2 或更大值可以显示警告和其他信息。
-V 显示版本号并退出。
-w 以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i 执行 HEAD 请求,而不是 GET 。
-x 设置 <table> 属性的字符串。
-X 对请求使用代理服务器。
-y 设置 <tr> 属性的字符串。
-z 设置 <td> 属性的字符串。
-C 对请求附加一个 Cookie: 行。其典型形式是 name=value 的一个参数对,此参数可以重复。
-H 对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对 ( 如 ,"Accept-Encoding:zip/zop;8bit") 。
-A 对服务器提供 BASIC 认证信任。用户名和密码由一个 : 隔开,并以 base64 编码形式发送。无论服务器是否需要 ( 即 , 是否发送了 401 认证需求代码 ) ,此字符串都会被发送。
-h 显示使用方法。
-d 不显示 "percentageserved within XX [ms] table" 的消息 ( 为以前的版本提供支持 ) 。
-e 产生一个以逗号分隔的 (CSV) 文件,其中包含了处理每个相应百分比的请求所需要 ( 从 1% 到 100%) 的相应百分比的 ( 以微妙为单位 ) 时间。由于这种格式已经 “ 二进制化 ” ,所以比 ‘gnuplot‘ 格式更有用。
-g 把所有测试结果写入一个 ‘gnuplot‘ 或者 TSV( 以 Tab 分隔的 ) 文件。此文件可以方便地导入到 Gnuplot,IDL,Mathematica,Igor 甚至 Excel 中。其中的第一行为标题。
-i 执行 HEAD 请求,而不是 GET 。
-k 启用 HTTPKeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能。
-q 如果处理的请求数大于 150 , ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 -q 标记可以抑制这些信息。
Ab 性能指标 :
在进行性能测试过程中有几个指标比较重要:
1 、吞吐率( Requestsper second )
服务器并发处理能力的量化描述,单位是 reqs/s ,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a 、吞吐率和并发用户数相关
b 、不同的并发用户数下,吞吐率一般是不同的
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second=Complete requests/Time takenfor tests
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2 、并发连接数( Thenumber of concurrent connections )
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3 、并发用户数( ConcurrencyLevel )
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在 HTTP/1.1 下, IE7 支持两个并发连接, IE8 支持 6 个并发连接, FireFox3 支持 4 个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
4 、用户平均请求等待时间( Timeper request )
计算公式:处理完成所有请求数所花费的时间 / (总请求数 / 并发用户数),即:
Time per request=Time taken for tests/ ( Complete requests/Concurrency Level )
5 、服务器平均请求等待时间( Timeper request:across all concurrent requests )
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也等于用户平均请求等待时间 / 并发用户数,即
Time per request/Concurrency Level
模块ngx_cache_purge介绍:
Nginx 编译安装参数
--add-module=/root/ngx_cache_purge-2.3--prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module--with-http_gzip_static_module --with-http_stub_status_module--with-openssl=/root/openssl-1.0.1h --with-pcre --with-pcre=/root/pcre-8.38--with-zlib=/root/zlib-1.2.8
Nginx配置文件见附件
Nginx通过反向代理访问后端apache,测试使用ngx_cache_purge模块缓存功能
650) this.width=650;" border="0" width="553" height="519" src="/e/u261/themes/default/images/spacer.gif" />
日志查看:为miss时说明用的不是缓存,hit说明访问的是缓存
650) this.width=650;" border="0" width="554" height="126" src="/e/u261/themes/default/images/spacer.gif" />
650) this.width=650;" border="0" width="554" height="494" src="/e/u261/themes/default/images/spacer.gif" />
清理缓存
访问如果要清除链接 http://192.168.1.10/1.html 为则访问 http://192.168.1.10/purge/1.html 清理缓存,linux上使用命令wget http://192.168.1.10/purge/1.html即可清除.
650) this.width=650;" border="0" width="554" height="172" src="/e/u261/themes/default/images/spacer.gif" />
附上清理脚本:
#!/bin/bash
FILE=$1
Cache_Dir="/usr/local/nginx/proxy_cache"
if [ "$#" -ne 1 ];then
#清理的目录需要带/结束,如网站目录下的ab目录,则参数为/ab/目录,如网站目录下1.html,则参数/1.html
echo "Please Insert cleanNginx cache File, Example: $0 FILE"
exit 1
fi
Delete_File=$(grep -ra "KEY:$FILE" $Cache_Dir|awk -F: ‘{print $1}‘)
for file in $Delete_File;do
rm -rf $file
done
原文:http://2242558.blog.51cto.com/2232558/1719149
内容总结
以上是互联网集市为您收集整理的测试nginx缓存模块ngx_cache_purge全部内容,希望文章能够帮你解决测试nginx缓存模块ngx_cache_purge所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。