啊里云oss省流量的方案
Posted 爱钓鱼的程序猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了啊里云oss省流量的方案相关的知识,希望对你有一定的参考价值。
方案一,oss+cdn,因为cdn单价便宜,所以使用这个方案非常不错,还可以加速。
但是我发现海外的cdn节点一点都不便宜,而且目前暂无海外流量包,仅支持按量计费
按量付费:
国内0.24/G
北美0.46/G,亚太0.79-0.85 中东非洲等1.31,南美1.31
所以,如果我们的是海外的站点,那么使用cdn这个方案并不能省到流量。
方案二,shell监控ecs流量动态切换资源链接。
通过观察发现服务器的流量并不是24小时都处理满载的状态运行。而是波浪形的,
在非满载运行的情况下,完全是可以把资源用回服务器的。
我们设定一个阀值比如8M峰值就使用oss的资源,其他时间则使用服务器的。
这样可以充分利用服务器的原本宽带资源。
我们写一个shell来监控,把资源标识放到一个文件中(或者存入redis),便于其他程序去获取
trf.sh
#!/bin/bash
function trfrecord()
if [ ! -f "trf.record" ]; then
pre=""
else
pre=$(cat trf.record)
fi
timestamp=`date +%s`
trf=$(cat /proc/net/dev | grep eth0 | tr : " " | awk 'print $10')
echo $trf":"$timestamp > trf.record
ll=0
if [ $pre ];then
trfpre=$(echo $pre|awk -F ":" 'print $1')
timepre=$(echo $pre|awk -F ":" 'print $2')
ll=$[$[$trf-$trfpre]/$[$timestamp-$timepre]]
fi
llb=$[$ll*8]
####8M的阀值####
poin=$[1048576*8]
if [ $llb -gt $poin ];then
echo 'oos'>'/www/trf'
#redis-cli set trf oss
else
echo 'ecs'>'/www/trf'
#redis-cli set trf ecs
fi
####5秒的间隔####
step=5
while [[ true ]]; do
trfrecord
sleep $step
done
运行使用命令:
nohup ./trf.sh >/dev/null 2>&1 &
部署了这个方案后,服务器流量得到了充分的利用,oss直接节省了至少一半的流量。
结束shell
ps -ef | grep trf
kill id
well done!!!!!!!!!!!!
以上是关于啊里云oss省流量的方案的主要内容,如果未能解决你的问题,请参考以下文章