Nginx學習筆記3--(極客時間-陶輝)
目錄
nginx模組
記憶體池
連線池
nginx模組
?nginx原始碼的/objs/ngx_modules.c中*ngx_modules[]陣列代表了編譯進nginx的模組。
nginx連線池
?每個worker程式都有一個獨立的ngx_cycle_t這樣的一個資料結構
?connections陣列:連線池
- 官方文件Core_functionality的worker_connections
Syntax: worker_connections number;
Default: worker_connections 512;
Context: events
預設512個陣列,nginx一般是要處理萬,十萬,百萬級,一般都要修改。
這些連線不止包括客戶端的連線,也包括面向伺服器的,所以做反向代理的時候等於消耗兩個連線。
? 每個連線預設對應一個讀事件一個寫事件。每個連線大概佔用96+232位元組,worker_connections配置的越大,初始化的時候預分配的記憶體就越大。
- ngx_event_handler_pt handler : 這是一個回撥方法,很多第三方模組會把它設定為自己的實現
- ngx_rbtree_node_t timer : 讀寫事件超時
- ngx_queue_t queue : 佇列
- bytes_sent
--------------------------------以下是nginx.conf--------------------------------
log_format main ‘$remote_addr - r e m o t e u s e r [ remote_user [remoteuser[time_local] "KaTeX parse error: Double superscript at position 37: … '̲status [r e q u e s t l e n g t h : request_length:requestlength:bytes_sent “KaTeX parse error: Double superscript at position 42: … '̲"http_user_agent” “$http_x_forwarded_for”’;
--------------------------------以下是log---------------------------------------
127.0.0.1 - - [22/Apr/2019:20:35:42 +0800] “GET /index2.html HTTP/1.1” 200 [465:675 “http://localhost:90/” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15” "-
記憶體池
提前分配好一些記憶體
連線記憶體池
Syntax: connection_pool_size size;
Default: connection_pool_size 256|512; #位元組,每個連線預分配記憶體大小,可以分配更大。
Context: http, server
請求記憶體池
Syntax: request_pool_size size;
Default: request_pool_size 4k; #包括head,url
Context: http, server
- 連線記憶體池:當執行一個tcp連線的時候上面可能會執行多個HTTP請求(keepalive),連線沒有關閉,有些記憶體為連線分配一次就夠,連線不關閉就不需要釋放。
- 請求記憶體池:每個HTTP請求通常會分配4K的記憶體。
?減少記憶體碎片
?提前預分配了空間,可以減少分配記憶體的次數。
相關文章
- Nginx核心知識100講-陶輝-極客時間Nginx
- Web協議詳解與抓包實戰-陶輝-極客時間Web協議
- Nginx 學習筆記Nginx筆記
- nginx學習筆記Nginx筆記
- Shell學習筆記_時間計算筆記
- 學習筆記-----一時間函式筆記函式
- 【Nginx學習筆記】-初識NginxNginx筆記
- 黃勇的OKR實戰筆記-黃勇-極客時間-返現優惠OKR筆記
- 重學前端-程劭非-極客時間前端
- Git極簡學習筆記Git筆記
- DevOps實戰筆記-石雪峰-極客時間-返現24元dev筆記
- Nginx 學習筆記--程式與模組Nginx筆記
- 【持續更新...】Nginx 學習筆記Nginx筆記
- 程式碼精進之路-範學雷-極客時間
- 【C#學習筆記】獲得系統時間C#筆記
- Nginx 學習筆記--程式與模組(二)Nginx筆記
- Redis學習筆記(十) 客戶端Redis筆記客戶端
- GitHub 極簡學習筆記(更新完畢)Github筆記
- 玩轉Git三劍客-蘇玲-極客時間Git
- 從0開始學大資料-李智慧-極客時間大資料
- 從0開始學微服務-胡忠想-極客時間微服務
- 從0開始學架構-李運華-極客時間架構
- linux學習筆記之小談時鐘時間,使用者CPU時間,系統CPU時間 .Linux筆記
- Nginx學習筆記(反向代理&搭建叢集)Nginx筆記
- nginx學習筆記(1):配置項的解析Nginx筆記
- Nginx變數詳解(學習筆記十九)Nginx變數筆記
- oracle臨時表空間學習筆記 增刪改查Oracle筆記
- 近段時間oracle學習隨筆Oracle
- 軟體工程之美-寶玉-極客時間軟體工程
- 機器學習40講-王天一-極客時間機器學習
- 面試現場-白海飛-極客時間面試
- 零基礎學Python-尹會生-極客時間Python
- 從0開始學遊戲開發-蔡能-極客時間遊戲開發
- Nginx學習筆記--Nginx圖片縮圖,水印處理模組Nginx筆記
- nginx學習筆記(6):程式模型的設計Nginx筆記模型
- nginx學習筆記(3):TCP反向代理基本配置Nginx筆記TCP
- Nginx效能優化(學習筆記二十五)Nginx優化筆記
- go 學習筆記之工作空間Go筆記