linux 高效能伺服器程式設計

2021-09-09 01:28:57 字數 608 閱讀 2134

1. 高效能定時器:時間輪,時間堆 (處理超時時間,如nginx使用紅黑樹,找出最可能超時的事件)

2. 高效能伺服器程式框架:(nginx 使用的是基於事件模型,epoll,不阻塞,非同步處理)

兩種高效的事件處理模式: reactor模式 proactor模式

兩種高效的併發模式:半同步/半非同步模式  領導者/追隨者模式

有限狀態機

提高伺服器效能的其他建議:池(如nginx,在得到乙個連線時,會建立ngx_connection_t;  在得到乙份請求的時,會建立ngx_request_t; 這些結構體的分配都在ngx_pool_t上分配,但請求完畢時或斷開連線時,釋放ngx_pool_t; 免除了多次使用malloc和free,且ngx_pool_t可重用)資料複製,上下文切換和鎖 (nginx worker process 繫結cpu, 省去上下文切換;鎖,在各個worker process shared 資料使用自旋鎖,如ngx_http_limit_req_module, 記錄每個ip的請求次數,這些資訊各個程序是共享的)

3.程序池和執行緒池 (基於事件驅動,繫結cpu,高效;支援執行緒池,為了支援第三方的庫,可能有阻塞i/o操作,或者寫第三方模組的沒注意處理事件驅動,有導致主線程阻塞的行為)

linux高效能伺服器程式設計

linux高效能伺服器程式設計 當當網 亞馬遜 目錄 第一章 tcp ip協議族 第二章 ip協議族 第三章 tcp協議詳解 第四章 tcp ip通訊案例 訪問internet 第五章 linux網路程式設計基礎api 第六章 高階io函式 第七章 linux伺服器程式規範 第八章 高效能伺服器框架...

linux高效能伺服器程式設計(1)

linux網路程式設計基礎api 1 socket位址api 2 sockt基礎api sockt的api全部定義在sys socket.h檔案中,包括 建立socket,命名socket,監聽socket,接受連線,發起連線,讀寫資料,獲取位址資訊,檢測帶外標記,以及讀取和設定socket選項。3...

Linux高效能伺服器程式設計(一)

osi分層模型 應用層 表示層 會話層 傳輸層 網路層 資料鏈路層 物理層 tcp ip模型 應用層 傳輸層 網路層 資料鏈路層 應用層 https 工作原理 1.tls與https的關係 2.什麼是證書 數字簽名 傳輸層 tcp 三次握手 四次揮手 三次握手 1.客戶端傳送syn,seq x 2....