因为网络带宽和流量对于服务器来说至关重要,所以在选购服务器之前应该很好的了解这个概念,要么很容易被主机商忽悠。下面是带宽容易出现的几个误区。
一.容易混淆的两个单位:字节和位
说到带宽,就会涉及到带宽的单位,带宽一般用位做单位,英文是bit,例如adsl的带宽是2mb,实际上就是2mbit每秒。前面的M,还有对应的K, G大家应该都遇到过,表示数量级,进制是1024,估算的时候也可以简单的用1000代替。也就是1G=1024M 1M=1024K.
用电脑的人一般都会熟悉这样的概念,例如我的硬盘是160G。这个160G表示什么呢,其实是160G Byte,也就是160G比特,这样大家就知道了,这个和上面说的那个2mb是不一样的。
比特和位的关系:一个byte等于8bit。缩写的时候两个都是b,习惯上byte缩写用大写的B,而bit用小写的b,但是很多时候书写很混乱,所以看到主机商标的带宽要先搞清楚是byte还是bit。一般说机房带宽,主机端口带宽都是bit,但是有些主机限制峰值带宽,而这个有的主机商用byte,有的用bit,相差8倍,所以要先弄清楚。
二.共享和独享之分
这个虚拟主机一般不说,只有在主机租用和托管的时候会提到,因为虚拟主机肯定是分享一个服务器的带宽,没有独享的。但是因为虚拟主机就是从服务器上分出来的,所以还是明白服务器的带宽情况比较好。国内常见的是100M共享和10M独享,100M共享其实就是一个机柜分享一个100M的端口,至于每台服务器能分到多少,取决于这个机柜的服务器数量和每个服务器的带宽占用情况。而10M独享,就是给每台服务器一个10M的端口。一般来说,100M共享每台服务器分到的大约在2M到5M左右,所以10M独享是优于100M共享的。
国内的虚拟主机用的服务器多数是100M共享,也有10M独享的,但是有人说他的服务器是100M独享的就要小心了,骗人的嫌疑很大。
除了以上说的,其实一个服务器能够分到的带宽还取决于整个机房的带宽是否充裕。10M独享或者是100M独享其实只是10M端口或者100M端口接到了交换机上,做个极端的例子,假设机房给你了100M的端口,但是机房到公网的出口实际上只有10M,那么其实你的最大带宽也就是10M而已。从这个意义上说,100M独享其实还是共享,并不是把你的出口接到了主干网上。再大一层次,如果是某个主干网拥塞,就是给你1G端口接到主干网上,带宽照样会限制。所以独享和共享其实是相对的。
一般来说,假如一个机房的出口带宽是10G,分给服务器或者机柜的带宽累加值会大于这个值,也就是所谓的超卖。如果没有超卖,10G的带宽只能分给100个百M共享的机柜。因为并不是每台服务器每时每刻都会占满带宽,超卖会更充分的利用资源。虚拟主机的带宽以及其他资源都和这个道理差不多,也会存在超卖的现象,但是只要是合理的,都是对用户和主机商都有利的。关于虚拟主机超卖的分析我们以后专门介绍。
三.流量
对于网络带宽控制,不少主机商,尤其是美国主机都会限制流量,那么我们就分析一下网站带宽大小指标流量的具体概念,感觉一下。
1.10M独享的服务器的每月最大流量:
带宽用的是bit,所以别忘记8倍的差别。宽带带宽计算如下:(10m x 3600 x 24 x30) /(1024x8) =3164GB
也就是10M独享的服务器每个月的流量上限是3000G,可以看出来,不管主机商是否明确写着限制流量,其实都是有限制的,只是写不写而已。上面计算的是理想状态,一看来说都是达不到最大带宽的。
一般来说,一台服务器上至少要放100个网站(很多都是几百个),那么如果平均算,每个网站分到的流量实际上只有30G每个月。
2.1G流量意味着什么?
假设你的一个页面是100KB,那么1G流量可以访问的页面是:(1x1024x1024)/100=10485,也就是说每天1G流量可以承受1万PV,很多个人网站是达不到这么大pv的,所以很多网站每个月30G流量足够了。当然如果下载的话流量就可能会很大。
另外,一个页面文件100K,访问时消耗的流量未必就是100K,浏览器都会缓存页面,很多元素是不会重复计算流量的。另外还可以通过gzip等方式降低流量占用。
所以,一般情况下,流量限制并没有多数人想像的那么可怕,而且不管主机商是否限制,其实都隐含了流量限制。如果你的服务器只有1M的带宽,你拼命的用,一个月也只能用掉300G而已。
普通用户请求下载服务器上的大文件不会有大问题,下载带宽通常在几十M左右,因此一个请求对服务器的带宽压力不大。但当服务器作为CDN回源时就千万要注意了,CDN的机房带宽通常可以达到数百M甚至上G,而IDC机房的带宽费用往往是根据峰值带宽来计算。
因此如果CDN回源大文件时不对服务器带宽做限制,将会出现瞬间极大峰值,造成不必要的经济损失。
解决问题的核心在于限制服务器上行带宽。
我们通过对nginx增加带宽限制尝试解决这个问题。
nginx里有2个配置项
limit_rate <size>限制单个请求带宽峰值,512, 1k, 10m
limit_rate_after <size>当下载超过一定大小后开始限制,100m, 100k
进行如此配置后,我们用curl进行测试,发现当文件下载超过一定大小后,下载速率就会降到limit_rate设定的带宽值。
总结:如果网站有大文件资源时,一定要注意下载速率的配置,特别是在做CDN回源时尤其必须对速率进行配置。即便不做CDN回源,在某些特殊场景下也有可能出现高带宽下载,因此要特别注意
为了保证服务器的应用和安全,需要进行端口设置,使端口与提供的服务相匹配,并且要关闭不需要的端口。进行服务器端口的设置,可以在操作系统中进行设置,也可以通过一些工具软件进行设置。
在系统中进行设置
右击网上邻居图标,选择属性命令,在弹出的对话框中选择本地连接,单击鼠标右键选择属性,弹出本地连接属性对话框,在此连接使用下列选定的组件区域选中Internet协议(TCP/IP),再单击属性按钮,在弹出的Internet协议(TCP/IP)属性对话框中单击高级按钮,又弹出一个TCP/IP属性对话框,选择选项选项卡,在可选的设置区域选择TCP/IP筛选,单击属性按钮,打开TCP/IP筛选对话框,,在其中添加需要开放的TCP,UDP端口即可。
通过工具软件进行设置
在系统中设置端口很简单,但还有更加简单的方法,那就是使用设置端口的工具软件。使用这类软件的好处是设置操作简单,同时还有日志功能,例如使用PortBlocker软件,这款软件主要针对同时连接局域网和互联网的用户,当局域网服务器与互联网连接以后,管理员就有必要更加注意端口的设置。这款软件专门检测和拦截来自互联网的通信,如果发现有任何连接未开放端口的通信请求,该软件就会弹出窗口报告IP地址和要访问的端口。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)