02-带宽计算服务划分
宽带计算服务划分
带宽计算
架构网站时会提出一些目标(100 万PV/日访问量)计算带宽大小主要涉及两个指标(峰值流量和页面大小)
- 1 假设峰值流量是平均流量的5 倍
- 2 假设每次访问平均的页面大小是100K 字节左右
如果100 万PV 的访问量在一天内平均分布的话,折合到每秒大约12 次访问,如果按平均每次访问页面的大小是100K 字节左右计算的话,这12 次访 问总计大约就是1200K 字节,字节的单位是Byte ,而带宽的单位是bit ,它们之间的关系是1Byte = 8bit ,所以1200K Byte 大致就相当于9600K bit ,也就是9Mbps 的样子,实际情况中,我们的网站必须能在峰值流量时保持正常访问,所以按照假设的峰值流量算,真实带宽的需求应该在45Mbps 左右
服务器的划分
服务器类型
图片 页面 数据库 应用 日志等
图片页面服务器
对于访问量大点的网站: 分离图片和页面是很必要的
- lighttpd 跑图片(可多个)
- Apache 跑页面(可多个)
- 设置相关域名里的图片路径都使用绝对路径,,然后设置DNS 轮循,达到最初级的负载均衡
服务器同步
rsync 软件搞定
数据库服务器:(瓶颈所在)
- 中小企业用 MySQL (一主多从缺点是不能降低写压力)
主用innodb 表结构,从用myisam 表结构能发挥优势,而且主从读写分离,降低读压力。甚至专门做一台从来备份,在备份数 据的时候,可以先停止服务(slave stop )再备份,再启动服务(slave start )后从服务器会自动从主服务器同步数据,一切都没有影响。 - 更大规模:横向/ 纵向分割数据库
横向分割数据库:就是把不同的表保存到不同的数据库服务器上
纵向分割数据库:一般是指按照用户标识(user_id )等来划分数据存储的服务器
数据库服务器的解决方案一般视情况往往是一个混合的方案,以其发挥各种方案的优势,有时候还需要借助 memcached 之类的第三方软件,以便适应更大访问量的要求。
应用服务器:PHP脚本那样我们的页面服务器只保存静态页面
使用prefork 模式的apache + xcache 之类的PHP 缓存软件,加载模块要越少越好,除了mod_rewrite 等必要的模块,不必要的东西统统舍弃,尽量减少httpd 进程的内存消耗,而那些图片服务器,页面服务器等静态内容就可以使用lighttpd 或者tux 来搞,充分发挥各种服务器的特点。
日志服务器
如果条件允许,独立的日志服务器也是必要的,一般小网站的做法都是把页面服务器和日志服务器合二为一了,在凌晨访问量不大的时候cron 运行前一天 的日志计算,不过如果你使用awstats 之类的日志分析软件,对于百万级访问量而言,即使按天归档,也会消耗很多时间和服务器资源去计算,所以分离单独的日志服务器还是有好处的,这样不会影响正式服务器的工作状态。
本文来自博客园,站在巨人的肩膀上,坚持开源精神,遵循开源协议:Apache Licene 2.0协议。
浙公网安备 33010602011771号