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