我们总是要花大把的精力和资金,用来看看墙外的世界。
前几天被墙得厉害,各种梯子又不稳定,于是想搞一个私人的VPS服务器翻墙,结果照样被墙得厉害。 主要原因是服务器不稳定,老是丢包。 其实一般的VPS服务商,都有多台架设在不同地区的服务器,关键在于要选择一个稳定、速度快的服务器。 于是萌生了写一个脚本,去找遍历测试这些服务器地址,再根据测试结果的分析,选择比较稳定的服务器。
之前尝试了两家服务商Vultr 和 Digital Ocean(我提供的是推广链接,你和我都能获得一定金额的抵用券)。 Vultr是看中它有个日本的服务器,结果绑定PayPal后才注意到,其他的服务器都是1000G流量,只有这个日本服务器,只有寒碜的200G。 这么一搞,还不如多买几个VPN呢。 于是又想尝试 Digital Ocean 在新加坡的服务器。 但是只过了几个小时的快乐日子,服务器就丢包丢得厉害。 终于下定决心,花了一个下午的时间,写了个小型工程Ping it,用来找出比较稳定可靠的服务器。
在我的Mac Mini 上,是利用Jenkins的Job来周期性的触发一个Shell script,遍历一个host列表, 对每个host做10次ping测试,结果输出到文件中,再利用开启CGI支持的Apache服务器,启动一个Python脚本来分析处理测试数据。
这样,我就可以从网页访问我的本地服务器,获取测试结果了。
这里我给出一个结果的示例,是分析Vultr, Digital Ocean 和 Linode 的各个服务器稳定性的, 并加入了 国内的 www.baidu.com 和 国外未被墙的 www.bing.com 作参照, 每隔15分钟做一次测试,跑了一天的结果:
host loss avg stddev graph
www.baidu.com, 1.3%, 9.75, 8.77, .........11]
speedtest.tokyo.linode.com, 0.5%, 111.95, 17.37, ..........12]
wa-us-ping.vultr.com, 0.4%, 183.79, 38.19, ..................20]
sjo-ca-us-ping.vultr.com, 0.7%, 200.32, 32.20, ...................21]
lax-ca-us-ping.vultr.com, 0.5%, 196.68, 39.36, ....................22]
www.bing.com, 2.2%, 101.86, 23.76, .......................25]
fra-de-ping.vultr.com, 0.3%, 302.49, 46.00, .........................27]
par-fr-ping.vultr.com, 0.4%, 300.88, 43.94, .........................27]
hnd-jp-ping.vultr.com, 2.8%, 113.55, 23.62, ...........................29]
il-us-ping.vultr.com, 0.8%, 259.62, 50.83, ............................30]
fl-us-ping.vultr.com, 0.9%, 314.02, 43.82, ............................30]
speedtest-ams1.digitalocean.com, 0.7%, 380.15, 45.29, ..............................32]
ga-us-ping.vultr.com, 1.3%, 254.32, 50.66, ...............................33]
ams-nl-ping.vultr.com, 0.9%, 352.69, 47.50, ...............................33]
tx-us-ping.vultr.com, 1.4%, 320.91, 48.17, ..................................36]
syd-au-ping.vultr.com, 1.8%, 267.23, 49.46, ..................................36]
speedtest-ams3.digitalocean.com, 1.0%, 404.54, 49.01, ...................................37]
speedtest-ams2.digitalocean.com, 1.3%, 394.39, 46.45, ...................................37]
speedtest-sgp1.digitalocean.com, 3.2%, 189.75, 33.13, ....................................38]
speedtest.fremont.linode.com, 2.2%, 268.84, 51.42, .....................................39]
speedtest.atlanta.linode.com, 2.2%, 330.81, 49.75, ........................................
speedtest.dallas.linode.com, 3.9%, 279.52, 47.68, ........................................
lon-gb-ping.vultr.com, 5.0%, 387.17, 49.08, ........................................
speedtest-nyc2.digitalocean.com, 6.1%, 326.61, 46.17, ........................................
speedtest-sfo1.digitalocean.com, 7.0%, 281.11, 40.97, ........................................
speedtest.newark.linode.com, 6.5%, 334.33, 47.29, ........................................
speedtest-nyc1.digitalocean.com, 7.4%, 346.15, 47.42, ........................................
speedtest-nyc3.digitalocean.com, 7.5%, 333.10, 57.91, ........................................
speedtest.london.linode.com, 9.0%, 458.54, 46.11, ........................................
speedtest-lon1.digitalocean.com, 19.9%, 382.57, 47.13, ........................................
nj-us-ping.vultr.com, 20.9%, 281.61, 55.03, ........................................
表格分别展示了丢包率(loss)、平均Ping值(avg)、标准差(stddev), 最后的那些增长的数字,是一个柱形图表(得分图),直观的展示所属网站的性能,其数字,是按照某个规则,根据前面的各种数据打出的分数,数值越小,说明效果越好。 由于篇幅限制,我删除了排名靠后的几个服务器的得分图。 得分是由以下函数计算:
def pkg_score(pkg):
loss = pkg['loss'] / 30.0
delay = pkg['avg'] / 500.0
std = pkg['stddev'] / 70.0
score = (loss * 10 + delay + std) / 5
return score
其中,loss是丢包率,一般在30%以上就非常严重了,delay是ping值,在500以上非常严重,std是标准差,在70以上非常严重, 而丢包率影响最大,故最后计算分数时,给了它一个非常大的权重。
从测试结果可以看到,国内访问baidu的速度当然没的说,不然它怎么会成为“最大的ping测试目标”提供商呢。 另外我发现,Bing搜索的ping测试稳定性,并不是最好的,如果Ping搜索访问还算流畅,那么与它差不多的,甚至比它好的几个服务器,应该都是不错的选择。
最后想说的一点是,除百度外排名第一的,是一个Linode在日本的服务器。 Linode服务器的价格,比其他服务器贵上一倍,但从这个粗略的结果来看,它的价格,还是合理的。。
Comments