通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万PV的访问量等等。这时我们要预算一下大概需要多大的带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小),我们不妨在计算前先做出必要的假设:
第一:假设峰值流量是平均流量的5倍。
第二:假设每次访问平均的页面大小是100K字节左右。
如果100万PV的访问量在一天内平均分布的话,折合到每秒大约12次访问,如果按平均每次访问页面的大小是100K字节左右计算的话,这12次访问总计大约就是1200K字节,字节的单位是Byte,而带宽的单位是bit,它们之间的关系是1Byte=8bit,所以1200KByte大致就相当于9600Kbit,也就是9Mbps的样子,实际情况中,我们的网站必须能在峰值流量时保持正常访问,所以按照假设的峰值流量算,真实带宽的需求应该在45Mbps左右。
当然,这个结论是建立在前面提到的两点假设的基础上,如果你的实际情况和这两点假设有出入,那么结果也会有差别。先看我们都需要哪些服务器:服务器,页面服务器,数据库服务器,应用服务器,日志服务器等等。
对于访问量大点的网站而言,分离单独的服务器和页面服务器相当必要,我们可以用ligabcgif/>,然后设置DNS轮循,达到最初级的负载均衡。当然,服务器多了就不可避免的涉及一个同步的问题,这个可以使用rsync软件来搞定。
数据库服务器是重中之重,因为网站的瓶颈问题十有八九是出在数据库身上。现在一般的中小网站多使用MySQL数据库,不过它的集群功能似乎还没有达到stable的阶段,所以这里不做评价。一般而言,使用MySQL数据库的时候,我们应该搞一个主从(一主多从)结构,主数据库服务器使用innodb表结构,从数据服务器使用myisam表结构,充分发挥它们各自的优势,而且这样的主从结构分离了读写 *** 作,降低了读 *** 作的压力,甚至我们还可以设定一个专门的从服务器做备份服务器,方便备份。不然如果你只有一台主服务器,在大数据量的情况下,mysqlmp基本就没戏了,直接拷贝数据文件的话,还得先停止数据库服务再拷贝,否则备份文件会出错。但对于很多网站而言,即使数据库服务仅停止了一秒也是不可接受的。如果你有了一台从数据库服务器,在备份数据的时候,可以先停止服务(slavestop)再备份,再启动服务(slavestart)后从服务器会自动从主服务器同步数据,一切都没有影响。但是主从结构也是有致命缺点的,那就是主从结构只是降低了读 *** 作的压力,却不能降低写 *** 作的压力。
为了适应更大的规模,可能只剩下最后这招了:横向/纵向分割数据库。所谓横向分割数据库,就是把不同的表保存到不同的数据库服务器上,比如说用户表保存在A数据库服务器上,文章表保存在B数据库服务器上,当然这样的分割是有代价的,最基本的就是你没法进行LEFTJOIN之类的 *** 作了。所谓纵向分割数据库,一般是指按照用户标识(user_id)等来划分数据存储的服务器,比如说:我们有5台数据库服务器,那么“user_id%5+1”等于1的就保存到1号服务器,等于2的就保存到2号服务器,以此类推,纵向分隔的原则有很多种,可以视情况选择。不过和横向分割数据库一样,纵向分割数据库也是有代价的,最基本的就是我们在进行如COUNT,SUM等汇总 *** 作的时候会麻烦很多。综上所述,数据库服务器的解决方案一般视情况往往是一个混合的方案,以其发挥各种方案的优势,有时候还需要借助memcached之类的第三方软件,以便适应更大访问量的要求。
如果有专门的应用服务器来跑PHP脚本是最合适不过的了,那样我们的页面服务器只保存静态页面就可以了,可以给应用服务器设置一些诸如appdomain之类的域名来和页面服务器加以区别。对于应用服务器,我还是更倾向于使用prefork模式的apache,配上必要的xcache之类的PHP缓存软件,加载模块要越少越好,除了mod_rewrite等必要的模块,不必要的东西统统舍弃,尽量减少>
如果条件允许,独立的日志服务器也是必要的,一般小网站的做法都是把页面服务器和日志服务器合二为一了,在凌晨访问量不大的时候cron运行前一天的日志计算,不过如果你使用awstats之类的日志分析软件,对于百万级访问量而言,即使按天归档,也会消耗很多时间和服务器资源去计算,所以分离单独的日志服务器还是有好处的,这样不会影响正式服务器的工作状态。
服务器主要分为两类
非x86服务器
非x86服务器:包括大型机、小型机和UNIX服务器,它们是使用RISC(精简指令集)或EPIC(并行指令代码) 处理器,并且主要采用UNIX和其它专用 *** 作系统的服务器,精简的指令集处理器主要有IBM公司的POWER和PowerPC处理器。
EPIC处理器主要是Intel研发的安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。
x86服务器
x86服务器:又叫CISC(复杂指令集)架构服务器,通常所指的是PC服务器,它是基于PC机体系结构,使用Intel或其它兼容x86指令集的处理器芯片和Windows *** 作系统的服务器。价格优惠、兼容性好、稳定性较差、安全性不是非常高,主要用在中小型的企业和非关键业务中。
扩展资料
服务器的用途
通用型服务器
通用型服务器是没有为某种特殊服务专门设计的、可以提供各种服务功能的服务器,当前大多数服务器是通用型服务器。这类服务器因为不是专为某一功能而设计,所以在设计时就要兼顾多方面的应用需要,服务器的结构就相对较为复杂,而且要求性能较高,当然在价格上也就更贵些。
专用型服务器
专用型(或称“功能型”)服务器是专门为某一种或某几种功能专门设计的服务器。在某些方面与通用型服务器不同。如光盘镜像服务器主要是用来存放光盘镜像文件的,在服务器性能上也就需要具有相应的功能与之相适应。
光盘镜像服务器需要配备大容量、高速的硬盘以及光盘镜像软件。FTP服务器主要用于在网上(包括Intranet和Internet)进行文件传输,这就要求服务器在硬盘稳定性、存取速度、I/O(输入/输出)带宽方面具有明显优势。
而E-mail服务器则主要是要求服务器配置高速宽带上网工具,硬盘容量要大等。这些功能型的服务器的性能要求比较低,因为它只需要满足某些需要的功能应用即可,所以结构比较简单,采用单CPU结构即可;
参考资料来源 百度百科-服务器
把服务器当做代理用,在服务器安装双网卡,并运行服务器的代理软件如wingate,sygate等,将internet连入一块网卡,另一块网卡与交换机相连,将八个终端连接到交换机上就行了。在选择云服务器之前,我们应该先弄明白自己需要一台什么样的云服务器。包括它的使用场景,配置情况等。
如果你做的是一个小型的个人网站并且访问量小,那么你可以选择一台低配置的云服务器ECS就能暂时满足你的要求(通常1核2G)目前阿里云的1核2G1M带宽是918元/年。对于电商类型网站,建议至少2核4G以上。随着后面网站的发展情况,你也可以随时进行升级配置,这也是云服务器的优势所在。当然,如果你希望网站运行和访问速度更快,可以适当提高配置。
如果你要做一个多媒体型的高并发应用,这时候除了云服务器ECS(建议4核以上),同时你还要搭配对象存储OSS购买。对象存储OSS是专门用来承载、视频等文件的。以及还要配合内容分发网络CDN和负载均衡SLB,有这几个服务的完美配合,就能大大加快访问速度,减少用户等待时间。
更高需求的,比如,对于Hadoop分布式计算、海量日志处理和大型数据仓库等需要海量数据存储和离线计算的业务场景,则可以选择阿里云服务器ECS大数据类型实例规格族。大数据型实例规格族适合有大数据计算与存储分析需求的行业客户,例如互联网行业、金融行业等。
对于机器学习和深度学习等AI应用,可以选择购买GPU计算型实例,可以搭建基于TensorFlow框架等的AI应用。GPU计算型适用于图形处理、云游戏云端实时渲染、AR/VR的云端实时渲染等瘦终端场景。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)