文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>nginx proxy_cache、varnish&squid命中率测试汇总

nginx proxy_cache、varnish&squid命中率测试汇总

时间:2010-09-14  来源:skybin090804

   经过断断续续的测试,从对nginx proxy_cache和varnish不了解,到了解其缓存管理原理和缓存
清理原则,再到现在得出第一阶段结论,总算告一个小段落。(nginx proxy_cache的一些规则和varnish安装配置在以前的文章都提过,这里就不重复)

   以下是各cache命令率的图片数据:

Nginx proxy_cache:

             用随机函数模拟用户访问,并把数据分别热点和非热点(热点图片占100张,非热点图片
             293张,随机访问100-130张),总数据为692M;访问方式大概为热点访问5次,非热点访
             问1次,访问对象连点是随机生成;proxy_cache mem为100m,disk 为200m;命中率的
             计算方式,当前数据总数中HIT数/当前数据总数。DISK使用空间为201M
 
              
 
访问数 全部命中率
446 0.71
899 0.82
1411 0.83
1891 0.84
2369 0.85
2908 0.85
3487 0.84
4025 0.83
4652 0.84
5268 0.84
5862 0.85
6546 0.85
7183 0.85
7871 0.84
8452 0.84
8590 0.84
                     


Squid cache:

用随机函数模拟用户访问,并把数据分别热点和非热点(热点图片占100张,非热点图片293张,随机访问
100-130张),总数据为692M;访问方式大概为热点访问5次,非热点访问1次,访问对象连点是随机生
成;squid_cache mem为100m,disk 为200m;命中率的结果由SQUID squid client工具查出。
DISK使用空间为196M



<
访问数 全部命中率
557 0.72
1166 0.55
1648 0.72
2163 0.69
2728 0.76
3230 0.55
3713 0.76
4329 0.69
4940 0.69
5536 0.62
6167 0.69
6799 0.65
7473 0.58
8074 0.69
8577 0.71
9149 0.72


Varnish cache:
用随机函数模拟用户访问,并把数据分别热点和非热点(热点图片占100张,非热点图片293张,随机访问
100-130张),总数据为692M;访问方式大概为热点访问5次,非热点访问1次,访问对象连点是随机生
成;squid_cache mem为100m,disk 为200m;命中率的结果由Varnish varnishstat工具查出。
DISK使用空间为292M



<
访问数 全部命中率
557 0.51
1114 0.71
1450 0.84
2007 0.87
2564 0.84
3121 0.83
3678 0.85
4135 0.87
4585 0.89
5042 0.91
5522 0.92
6133 0.92
6758 0.9
7386 0.87
8016 0.89
8746 0.87


后端机器的流量图:1:nginx 2:squid 3:varnish






从命中率/访问量图中发现命令率情况为:varnish > nginx proxy_cache > squid;
对后端影响的集中程度的情况为: nginx proxy_cache > squid > varnish;
对系统负载的影响基本相同,这个情况因为压的数据量不大所以应该明显不大;
综合几个数据,从可用性来说nginx proxy_cache比现在使用的squid要稳定,长时间来看
对后端机器影响nginx proxy_cache会不太大。具体情况要在大压力情况下或线上环境上
才能进一步说明。测试的过程中还了解了nginx proxy_cache、varnish缓存管理规则,缓存
替换规则。


模拟的测试脚本如下:

#!/bin/bash



function siege(){

   /usr/local/bin/siege -c 1 -r 232 -f cache_test.list > /dev/null 2> test.log.1 &
 
}

function wgetRANDOM(){

   number=$(($RANDOM%100))

   #echo $number
  
   [[ $number -eq 0 ]] && number=1
 
   url=`head -$number cache_test.list | tail -1`

  wget $url -O /dev/null 2> /dev/null

}

function wgetRANDOM_80(){
   number=$(($RANDOM%100))

   #echo $number

   [[ $number -eq 0 ]] && number=1

   url=`tail -$number cache_test.list | head -1`

  wget $url -O /dev/null 2> /dev/null

}

function main(){

for (( i=0;i<100;i++ ))
do
  wgetRANDOM
  sleep 1
done

}

function main_two(){

for (( i=0;i<130;i++ ))
do
  wgetRANDOM_80
  sleep 5
done

}

main &

main_two &

main &

main &
 
main &

main




相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载