数据的网络传输、服务器并发处理能力、动态内容缓存、动态脚本加速、浏览器缓存、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