Chinaunix首页 | 论坛 | 博客
  • 博客访问: 825303
  • 博文数量: 167
  • 博客积分: 7173
  • 博客等级: 少将
  • 技术积分: 1671
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 23:07
文章分类

全部博文(167)

文章存档

2018年(1)

2017年(11)

2012年(2)

2011年(27)

2010年(88)

2009年(38)

分类: 系统运维

2010-09-14 18:23:57

   经过断断续续的测试,从对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
 
              
 
访问数全部命中率
4460.71
8990.82
14110.83
18910.84
23690.85
29080.85
34870.84
40250.83
46520.84
52680.84
58620.85
65460.85
71830.85
78710.84
84520.84
85900.84
                     


Squid cache:

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



<
访问数全部命中率
5570.72
11660.55
16480.72
21630.69
27280.76
32300.55
37130.76
43290.69
49400.69
55360.62
61670.69
67990.65
74730.58
80740.69
85770.71
91490.72


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



<
访问数全部命中率
5570.51
11140.71
14500.84
20070.87
25640.84
31210.83
36780.85
41350.87
45850.89
50420.91
55220.92
61330.92
67580.9
73860.87
80160.89
87460.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




阅读(3084) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~