啊里云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省流量的方案的主要内容,如果未能解决你的问题,请参考以下文章

linux系统基础优化小结

中国联通沦为「腾讯云阿里云代理」,电信移动咋看?

阿里云oss好贵啊,有没有啥更好的替换方案

百度ECharts大数据统计流量波浪动画效果

百度ECharts大数据统计流量波浪动画效果

限流量控制:高并发系统中我们如何操纵流量?