《构建高性能web站点》笔记

数据的网络传输、服务器并发处理能力、动态内容缓存、动态脚本加速、浏览器缓存、web服务器缓存、反向代理缓存、web组件分离、分布式缓存、数据库性能优化、web负载均衡、共享文件系统、内容分发和同步、分布式文件系统、数据库扩展、分布式计算、性能监控

1、数据如何发送:应用程序调用胸痛函数库接口向内核发出调用请求,系统内核随后将数据从用户态内存区复制到内核缓冲区,内核缓冲区是共用的,所以数据要以队列方式传输。到了内存缓冲区后会复制到网卡的缓冲区,数据之间的复制始终按照连接两端设备的内部总线宽度来复制,也就是字节的整倍数,比如32位总线的主机系统中,任何时候只能复制32位的比特信息。网卡缓冲区中的数据需要被转换成物理信号来发送。

2、阻塞IO和阻塞IO:等不等待

3、PIO和DMA:内存和磁盘的交互是否需要经手CPU

4、nginx占用内存极少

5、长连接:减少连接时间

6、epoll:总调度系统

7、apache的fork模式:一个进程一个连接;worker模式:一个线程一个连接。一般使用第一个种方式

8、nginx的worker_processes 表示启动几个worker进程

9、动态网页做缓存,减少计算和与DB的交互等开销。小站点考虑APC,大站点考虑专门的缓存服务器做memcached。部分做局部无缓存

10、动态脚本加速:APC、XCache、eAccelerator

11、检查函数运行的性能:linux--KCacheGrind  windows--WinCacheGrind

12、浏览器缓存协商,编程语言上可以设置:last-modified,expires,cache-control参数来设置浏览器缓存策略

13、web服务器缓存:apache、nginx都提供了缓存模块

14、反向代理服务器缓存工具:varnish(首选)、squid

15、负载均衡包括DNS负载均衡、反向代理负载均衡、IP负载均衡(LVS-NAT,LVS-DR,LVS-TUN),RR顺序轮询的性能并不好。

16、利用共享文件系统实现图片共享(nfs,samba跨平台),nfs不适合作为I/O密集型文件的共享方案,默认情况下NFS的进程数是4,通过更改/etc/sysconfig/nfs种的进程数:USE_KERNEL_NFSD_NUMBER=“64”。在NFS客户端上查看IO:nfsstat 

17、文件分发机制:nfs,samba,scp,sftp,webdav,rsync

18、分布式文件系统:hadoop,MogileFS

19、nginx可以实现webdav

20、mysql的主从复制:开启主服务器上的二进制日志;在主从服务器上分别进行简单的配置和授权

21、mysql proxy实现mysql的负载均衡,一主多从,一写多读。Spock Proxy,改进版

22、Job Server:Gearman远程函数调用,MemcacheQ,改进版


PDF:http://www.jb51.net/books/560398.html

你可能感兴趣的:(《构建高性能web站点》笔记)