Linux高併發高性能服務器設計
第一章 概論
高併發高性能服務器,簡單說,就是同一個時間點服務器可以接受的連接數很大,且服務器並能以相對比較快的速度提供響應。高性能服務器設計,不但是軟件架構和設計的事情,還需要在操作系統和硬件給於支持。
第二章 整體軟件架構
第三章
1) 數據拷貝(Data Copies)
2) 環境切換(Context Switches)
3) 內存分配(Memory allocation)
4) 鎖競爭(Lock contention)
高性能服務器的實現,簡單地一句話就是讓CPU高效率運轉。
何爲高效率呢,簡答說,
(1) CPU一直在做有效的事情(CPU Cache命中率提高,降低因爲CPU Cache命中率帶來的CPU開銷,操作系統內核層解決的事情,絕不把數據複製用戶層來解決)
(2) 有事情的做的時候,絕對不讓CPU閒着
高性能服務器的通常做法有:緩存,異步IO,非阻塞網絡連接,網絡事件模式,避免或減低鎖的使用,降低鎖的粒度,MVCC模式,弱化事務一致性,分解併發競爭的實體(數據庫等),分佈式分攤壓力,避免不必要內核層到用戶層複製,避免不必要的系統調用。
第一節 緩存是王道
第二節 鎖嗎?
第三節 CPU怎能睡覺?
第四節 內核進入你的應用
第五節 需要嚴格的事務嗎?
第六節 能不能讓磁盤壞了好事?
第七節 衆人拾柴,火焰高(分佈式)
第八節 多線程還是多進程?
參考文獻:
1. 高性能服務器架構(High-Performance Server Architecture)
2.