第 1章 讓我們來看看基礎設施架構 1
1.1 什么是IT基礎設施 2
1.2 集中式架構與分布式架構 4
1.2.1 集中式架構 4
1.2.2 分布式架構 6
1.3 垂直分布式架構 8
1.3.1 客戶端服務器架構 8
1.3.2 三層架構 9
1.4 水平分布式架構 11
1.4.1 簡單水平分布式架構 11
1.4.2 共享式架構 13
1.5 地理分布式架構 15
1.5.1 主備式架構 15
1.5.2 災難恢復式架構 16
第 2章 讓我們來拆一拆服務器 19
2.1 物理服務器 20
2.1.1 服務器外觀和安裝位置 20
2.1.2 服務器內部結構 22
2.2 CPU 24
2.3 內存 26
2.4 I/O設備 29
2.4.1 硬盤 29
2.4.2 網卡 31
2.4.3 控制I/O 32
2.5 總線 34
2.5.1 帶寬 34
2.5.2 總線帶寬 35
2.6 小結 37
第3章 讓我們來看看三層架構系統(tǒng) 39
3.1 圖解三層架構系統(tǒng) 40
3.2 主要概念的說明 41
3.2.1 什么是進程和線程 41
3.2.2 什么是內核 44
3.3 Web數(shù)據(jù)流 48
3.3.1 從客戶端PC到Web服務器 48
3.3.2 從Web服務器到AP服務器 51
3.3.3 從AP服務器到DB服務器 53
3.3.4 從AP服務器到Web服務器 56
3.3.5 從Web服務器到客戶端PC 57
3.3.6 小結 58
3.4 虛擬化 59
3.4.1 什么是虛擬化 60
3.4.2 OS也是虛擬化技術之一 60
3.4.3 虛擬機 61
3.4.4 容器的歷史 62
3.4.5 Docker的登場 62
3.4.6 云與虛擬化技術 63
第4章 支撐基礎設施的理論基礎 65
4.1 串行與并行 66
4.1.1 什么是串行和并行 66
4.1.2 所用之處 68
4.1.3 小結 70
4.2 同步和異步 71
4.2.1 什么是同步和異步 71
4.2.2 所用之處 73
4.2.3 小結 77
4.3 Queue 78
4.3.1 什么是Queue 78
4.3.2 所用之處 79
4.3.3 小結 83
4.4 排他控制 84
4.4.1 什么是排他控制 84
4.4.2 所用之處 85
4.4.3 小結 87
4.5 有狀態(tài)和無狀態(tài) 88
4.5.1 什么是有狀態(tài)和無狀態(tài) 88
4.5.2 讓我們再深入一點 90
4.5.3 所用之處 90
4.5.4 小結 92
4.6 可變長度和固定長度 93
4.6.1 什么是可變長度和固定長度 93
4.6.2 所用之處 95
4.6.3 小結 97
4.7 數(shù)據(jù)結構(數(shù)組與鏈表) 97
4.7.1 什么是數(shù)據(jù)結構(數(shù)組與鏈表) 97
4.7.2 所用之處 99
4.7.3 小結 101
4.8 搜索算法 101
4.8.1 什么是搜索算法 101
4.8.2 所用之處 102
4.8.3 小結 106
第5章 支撐基礎設施的理論應用 109
5.1 緩存 110
5.1.1 什么是緩存 110
5.1.2 所用之處 111
5.1.3 小結 112
5.2 中斷 114
5.2.1 什么是中斷 114
5.2.2 讓我們再深入一點 114
5.2.3 所用之處 115
5.2.4 小結 117
5.3 輪詢 117
5.3.1 什么是輪詢 117
5.3.2 所用之處 118
5.3.3 小結 120
5.4 I/O大小 121
5.4.1 什么是I/O大小 121
5.4.2 所用之處 122
5.4.3 小結 126
5.5 日志記錄 127
5.5.1 什么是日志記錄 127
5.5.2 所用之處 128
5.5.3 小結 129
5.6 復制 132
5.6.1 什么是復制 132
5.6.2 所用之處 133
5.6.3 小結 135
5.7 主/從 136
5.7.1 什么是主/從 136
5.7.2 所用之處 138
5.7.3 小結 139
5.8 壓縮 139
5.8.1 什么是壓縮 139
5.8.2 讓我們再深入一點 140
5.8.3 所用之處 142
5.8.4 小結 144
5.9 錯誤檢測 144
5.9.1 什么是錯誤檢測 144
5.9.2 讓我們再深入一點 145
5.9.3 如何檢測錯誤 146
5.9.4 所用之處 147
5.9.5 小結 148
第6章 連接系統(tǒng)的網絡構造 149
6.1 網絡 150
6.2 分層結構 151
6.2.1 拿公司來比喻分層結構 151
6.2.2 分層結構分擔任務 152
6.2.3 分層模型的代表--OSI 7層模型 152
6.2.4 分層結構并非網絡獨有 153
6.3 協(xié)議 154
6.3.1 人與人之間溝通的語言也是協(xié)議 154
6.3.2 協(xié)議對計算機來說必不可少 155
6.3.3 協(xié)議對服務器內部來說也必不可少 157
6.4 TCP/IP聯(lián)通了今天的網絡 158
6.4.1 互聯(lián)網的發(fā)展與TCP/IP協(xié)議套件 158
6.4.2 TCP/IP的分層結構 158
6.5 應用層協(xié)議HTTP 160
6.5.1 HTTP的處理流程 161
6.5.2 請求與響應的具體內容 161
6.5.3 應用層協(xié)議的處理在用戶空間進行 163
6.5.4 套接字以下的處理在內核空間進行 163
6.6 傳輸層協(xié)議TCP 165
6.6.1 TCP的作用 166
6.6.2 內核空間中的TCP處理 167
6.6.3 根據(jù)端口號轉發(fā)數(shù)據(jù) 169
6.6.4 連接的建立 170
6.6.5 數(shù)據(jù)保證與重傳控制 171
6.6.6 流量控制與擁塞控制 173
6.7 網絡層協(xié)議IP 176
6.7.1 IP的作用 176
6.7.2 內核空間中的IP處理 176
6.7.3 以IP地址標記的目的地為終點的數(shù)據(jù)傳輸 178
6.7.4 私有網絡與IP地址 180
6.7.5 路由 181
6.8 鏈路層協(xié)議Ethernet 183
6.8.1 Ethernet的作用 183
6.8.2 內核空間中的Ethernet處理 184
6.8.3 同一鏈路內的數(shù)據(jù)轉發(fā) 186
6.8.4 VLAN 187
6.9 在TCP/IP通信之后 189
6.9.1 網絡交換機的中繼處理 189
6.9.2 傳輸終點的接收處理 191
第7章 實現(xiàn)基礎設施持續(xù)運轉的機制 193
7.1 容錯性與冗余化 194
7.1.1 什么是容錯性 194
7.1.2 什么是冗余化 195
7.2 服務器內部冗余化 197
7.2.1 電源、設備等的冗余化 197
7.2.2 網絡接口的冗余化 198
7.3 存儲冗余化 202
7.3.1 HDD的冗余化 202
7.3.2 路徑的冗余化 207
7.4 Web服務器冗余化 209
7.4.1 Web服務器的內部冗余化 209
7.4.2 服務器冗余化 211
7.5 AP服務器冗余化 215
7.5.1 AP服務器的冗余化 215
7.5.2 數(shù)據(jù)庫連接的冗余化 217
7.6 DB服務器冗余化 220
7.6.1 DB服務器的冗余化(主-備) 220
7.6.2 DB服務器的冗余化(主-主) 222
7.7 網絡設備冗余化 226
7.7.1 L2交換機的冗余化 226
7.7.2 L3交換機的冗余化 229
7.7.3 網絡拓撲 231
7.8 站點冗余化 235
7.8.1 站點內部冗余化的整體圖 235
7.8.2 站點間的冗余化 236
7.9 監(jiān)測 237
7.9.1 什么是監(jiān)測 237
7.9.2 存活監(jiān)測 238
7.9.3 日志監(jiān)測 239
7.9.4 性能監(jiān)測 240
7.9.5 SNMP 240
7.9.6 內容監(jiān)測 243
7.10 備份 244
7.10.1 什么是備份 244
7.10.2 系統(tǒng)備份 245
7.10.3 數(shù)據(jù)備份 247
7.11 總結 248
第8章 確保提升性能的基礎設施機制 251
8.1 響應與吞吐量 252
8.1.1 造成性能問題的兩類原因 252
8.1.2 響應問題 255
8.1.3 吞吐量問題 256
8.2 什么是瓶頸 257
8.2.1 瓶頸是制約處理速度的要因 257
8.2.2 瓶頸應該如何消除 258
8.2.3 瓶頸將永遠存在 259
8.3 從三層架構系統(tǒng)圖上發(fā)現(xiàn)的瓶頸 261
8.3.1 CPU瓶頸的例子 261
8.3.2 內存瓶頸的例子 270
8.3.3 磁盤I/O瓶頸的例子 273
8.3.4 網絡I/O瓶頸的例子 278
8.3.5 應用程序瓶頸的例子 282
8.4 總結 286