构建高性能站点 笔记

-提高性能常用对策-

1.增加带宽

2.减少网页HTTP请求

3.动态内容缓存

4.使用数据缓存

5.动态内容静态化及页面预编译

6.数据流压缩

7.WEB服务器的选择

8.使用负载均衡

9.数据库优化

10.减少视觉等待

-高性能服务器-

server Apache Nginx Lighttpd

Proxy代理 非常好 非常好 一般

Rewriter 非常好 一般

Fcgi 不好 非常好

热部署 不支持 支持 不支持

系统压力 很大 很小 比较小

稳定性 非常好 不好

安全性 一般 一般

技术支持 非常好 很少 一般

静态文件 一般 非常好

虚拟主机 支持 不支持 支持

反向代理 一般 非常好 一般

Session sticky 支持 不支持 不支持


-共享文件系统-

NFS

1.修改服务器端/etc/exports

2.启动NFS服务器端

3.获取共享的客户端mount操作或修改/etc/fstab

4.修改服务器端默认并发数:/etc/sysconfig/nfs

总结:容易搭建,但不适合I/O密集型共享,适合内部资源共享

Samba

-数据库优化-

1.正确使用索引(组合索引的引入实现叠加效应,并具有最左前缀规则)

2.慢查询日志分析(mysqlsla)

3.查询缓存

4.线程池

5.反范式设计(1NF:无重复列 2NF:非主属性非部分依赖主关键字 3NF:属性不依赖与其他非主属性)

-OSI七层模型与铁道部的基情-

1.物理层->传输媒介:铁路

2.数据链路层->寻址控制:调度站

3.网络层->路由选择:线路选择

4.传输层->数据传输:货物运送

5.会话层->节点间连接及通信:站点连接通车

6.表示层->数据加密解密:货物打包解包

7.应用层->网络服务接口:铁路服务

-杂记-

1.采用URL Rewrite(地址重写)技术,比如Apache的mode_rewrite,可重定向,如/index.html -> /read.php?book=index,可有利于搜索引擎的收录。deflate模块可压缩网页。

2.缓存方法:硬盘缓存(squid) 内存缓存(memcached) 文件描述符缓存 局部无缓存

浏览器缓存 WEB服务器缓存 分布式缓存

3.反向代理:Squid Varnish

4.web组件分离,可突破浏览器并发限制,每个域名维持一个单独的队列,可提高下载速度

5.负载均衡:HTTP重定向 DNS解析 反向代理 多网卡绑定同一IP

6.文件分发与同步:ssh webdav rsync  分布式文件系统:hadoop mogilefs

7.数据库:主从复制 读写分离 垂直分区 水平分区 数据库反向代理MySql Proxy,Spock Proxy,PostgreSQL pool

8.分布式计算:Map Reduce

9.二层交换基于MAC地址;三层交换基于IP;四层交换基于传输层TCP/UDP端口地址,判断所用协议;七层交换基于内容


-扩展学习-

apache二级域名:

假设我们要绑定的域名是yoxixi.com,二级域名是bbs.yoxixi.com,独立IP为192.168.1.1
1.#NameVirtualHost *  修改NameVirtualHost 192.168.1.1"
<VirtualHost 192.168.1.1> 
  DocumentRoot usr/local/www/ 
  ServerName   192.168.1.1
</VirtualHost> 
<VirtualHost192.168.1.1> 
  DocumentRoot usr/local/www/yoxixi/ 
  ServerName   yoxixi.com
</VirtualHost> 
<VirtualHost 192.168.1.1> 
  DocumentRoot   usr/local/www/yoxixi/bbs
  ServerName   bbs.yoxixi.com
</VirtualHost> 

常用负载均衡技术:


DNS轮循
  DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
F5 BIG-IP
  简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。
  价格:BIG-IP 6400的价格在16万元人民币左右。
  网址:http://www.f5.com.cn/(中国) http://www.f5.com/(全球)
LVS(Linux Virtual Server)
  简介:软件四层交换。LVS是在Linux内核中作四层交换,只花128个字节记录一个连接信息,不涉及到文件句柄操作,故没有65535最大文件句柄数的限制。LVS性能很高,可以支持100~400万条并发连接。
  价格:免费、开源
  网址:http://zh.linuxvirtualserver.org/
HAProxy
  简介:软件七层交换,反向代理服务器。目前还不支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。另外,HAProxy还支持双机热备。我曾经用过一段时间,能支持2~3万条并发连接。现在我用它做普通的小并发负载均衡,主要用到的是它的服务器健康检查功能。
  价格:免费、开源
  网址:http://haproxy.1wt.eu/
Nginx
  简介:软件七层交换,反向代理服务器。能够很好地支持虚拟主机,可配置性很强,可以按URL做负载均衡。我目前一直在用,大约能支持3~5万条并发连接。
  价格:免费、开源
  网址:http://wiki.codemongers.com/NginxChs(中文维基)

 

猜你喜欢

转载自shenling258-hotmail-com.iteye.com/blog/1422527