测试nginx缓存模块ngx_cache_purge

服务器环境:

前端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模块缓存功能

日志查看:为miss时说明用的不是缓存,hit说明访问的是缓存

清理缓存

访问如果要清除链接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即可清除.

附上清理脚本:

#!/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

时间: 2025-01-04 02:30:47

测试nginx缓存模块ngx_cache_purge的相关文章

nginx缓存模块配置总结proxy_cache(未完)

简介:此缓存设置用到了第三方模块purge,使用的时候就在源链接和访问的具体内容之间加入关键字"/purge/"即可. 如:访问http://192.168.0.1/a.png 会生成a.png的缓存文件: 只要通过http://192.168.0.1/purge/a.png就可以将生成的缓存清除掉了. 一.获取安装包 获取安装包:         wget http://nginx.org/download/nginx-1.7.9.tar.gz 获取缓存清理模块: wget http

nginx反向代理,动静态请求分离,以及nginx缓存应用,以及使用ngx_cache_purge清除指定URL

一,nginx反向代理配置 #tomcat Java代码   upstream tomcat_server{ server 127.0.0.1:8080; } erver{ listen 80; server_name www.wolfdream.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X

nginx缓存和自定义header

proxy_cache:nginx缓存模块,用于设置nginx的缓存功能 nginx缓存原理: nginx的缓存文件是根据key:value进行存储的,key直接存储在内存中,value指向本地文件系统目录,这个目录最多支持三级子目录 proxy_cache_path #用于设置nginx缓存的相关属性,只能出现在http段 例:proxy_cache_path  /nginx/cache1  levels=1:2 keys_zone=cache1:100m inactive=1d max_si

Nginx缓存配置以及nginx ngx_cache_purge模块的使用

web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户体验. web缓存服务器中,最著名的要数Squid Cache(简称为Squid),Squid是一个流浪的自由软件的代理服务器和Web缓存服务器.---

nginx三 之缓存模块

友情提示: 缓存模块是在动静分离的环境基础上搭建,动静分离可以参考http://www.cnblogs.com/dahuandan/p/6759212.html 介绍 提高网站响应速度是web应用不容忽视的目标,在之前动静分离的基础上,我们已经降低了后端服务器压力,提高了处理请求的性能,但是用户请求的静态资源是从硬盘读取,相比内存的性能还有很大的提高: Nginx自带的缓存模块可以把静态资源缓存到内存中,提高了用户请求静态资源的速度,并且nginx自带缓存模块配置简单,使用灵活,搭配第三方插件可

nginx安装配置+清缓存模块安装

经过一段时间的使用,发现nginx在并发与负载能力方面确实优于apache,现在已经将大部分站点从apache转到了nginx了.以下是nginx的一些简单的安装配置. 环境 操作系统:CentOS.RedHat IP地址:192.168.1.202 下载软件包 # mkdir /usr/local/src/tarbag # mkdir /usr/local/src/software # cd /usr/local/src/tarbag/ Nginx # wget http://www.ngin

Nginx 编译,加入未编译安装模块ngx_cache_purge

Nginx 编译,加入未编译安装模块ngx_cache_purge 官网下载nginx及第三方ngx_cache_purge 模块 http://wiki.nginx.org/Install http://labs.frickle.com/nginx_ngx_cache_purge/ 编译与安装 Blockquote ./configure \ –prefix=/usr/local/nginx-1.8.0 \ –sbin-path=/usr/sbin/nginx \ –conf-path=/et

Nginx 编译,添加未编译安装模块ngx_cache_purge

Nginx 编译,添加未编译安装模块ngx_cache_purge 官网下载nginx及第三方ngx_cache_purge 模块 http://wiki.nginx.org/Install http://labs.frickle.com/nginx_ngx_cache_purge/ 编译与安装 Blockquote ./configure \ –prefix=/usr/local/nginx-1.8.0 \ –sbin-path=/usr/sbin/nginx \ –conf-path=/et

nginx之三:nginx安装配置+清缓存模块安装

经过一段时间的使用,发现 nginx 在并发与负载能力方面确实优于 apache,现在已经将大部分站点从 apache 转到 了 nginx 了.以下是 nginx 的一些简单的安装配置. 环境 操作系统:CentOS.RedHat IP 地址:192.168.1.202 下载软件包 # mkdir /usr/local/src/tarbag# mkdir /usr/local/src/software# cd /usr/local/src/tarbag/# wget http://www.ng