-提高性能常用对策-
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(中文维基)