分类 高并发秒杀系统设计 下的文章

首先要知道影响在线人数的因素

1,访问量

2,网站类型:对于大多数的网站站长而言,网站的类型和性质是有所不同的,比如有小说站、论坛站、视频网站以及企业站等,那么相对来说论坛和小说站的访问量会比较大,视频网站的浏览和下载也比较耗用服务器的带宽资源,而普通企业站通常访问量比较少,所以不同的网站所需求的带宽大小也是不同的。如果是出文字的网站(如小说站),1M带宽带动日均5000IP,勉强可以。如果是普通网站有图片,有文字、论坛、新闻资讯类型网站 大概1M能带一千IP。考虑到高峰期并发,1M高峰期还会卡。

以下列子根据影响因素计算下1M带宽能同时承受多少人在线(以网络状况良好为前提)

1)、 打开网站8秒原则;

2)、 评判的只是:用户从服务器下载文件的速度;

3)、 页面的标准尺寸大小为:60KB;

参考公式:支持连接个人 = 服务器带宽/页面尺寸大小

通过计算大致结果是,1Mbps的带宽(服务器的1M带宽最快上下速度能达到1M/s,跟我们家用的带宽稍有区别)支持的连接数为:17个

因此,N M带宽可以支持的同时在线人数大概为N*17个

所以,1M带宽的云主机,日均3000IP以下应该没问题。当然如果你的每个页面都比较大的话,那就没这么多了。具体多少,可以按照上面的算法算下。

如果说服务器带宽说的5M带宽,实际上是5Mbps=625KB,需要是独享带宽,共享的话因为他人的因素无法计算。

然后计算你的网站大小,普通大小的网站页面(图片少,压缩过,代码优化)只有几K,我们姑且按照50K计算。

同时在线人数其实还关系到 IIS 这个参数限制,但是小网站几乎没有这个限制,可以不用担心,所以 625kb/50k=12.5人,大概同时在线12.5人访问这个50KB的页面是没有问题的。

要值得注意,这个是同时,也就是传统意义上的同一秒,只要有先后发送请求的顺序就可以错开,所以5M带宽严格意义上是很大的,如果你的页面小,几乎可以满足千人在线。

以上就是互联先锋推荐估算服务器带宽常用的方法,各位朋友可以参考选择更为适合自己需求的服务器带宽大小,减少不必要的带宽费用成本。

  1. 数据库需要操作时间的字段尽量用int(11),方便不同其他种类的数据库数据同步,也避免像datetime存储时时区不同造成的麻烦
  2. 数据库表默认要有sys_createtime,sys_updatetime,sys_ip,sys_status(用于区分数据的新旧,方便数据量大的时候把没用的旧数据搬到其他表格存着)
  3. 如果数据库表的内容很多,为了提高查询效率,可以水平分表,按照表数量取模(如5表,table_0,table_1,table_2,table_3,table_4,按取模结果进行查询或存储)
  4. 数据库表的垂直分表
    解决问题:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。例如:

学生答题表tt:有如下字段:
Id name 分数 题目 回答
其中题目和回答是内容比较大的字段,id name 分数比较小。
为了查询快速,就会把id name 分数合成一章表

  1. 为了满足高并发,尽量不使用外键,只在代码中做好判断
  2. 字段设置一般都设置not null,有默认值,避免新建或更新数据时的开销还有索引优化
  3. 数据库操作不允许有delete,越是大型系统越要用数据迁移代替delete