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筆記
- 機器學習40講-王天一-極客時間機器學習
- 【Nginx學習筆記】-初識NginxNginx筆記
- DevOps實戰筆記-石雪峰-極客時間-返現24元dev筆記
- 重學前端-程劭非-極客時間前端
- Git極簡學習筆記Git筆記
- 【持續更新...】Nginx 學習筆記Nginx筆記
- 極客時間 拼團集合
- 黃勇的OKR實戰筆記-黃勇-極客時間-返現優惠OKR筆記
- 程式碼精進之路-範學雷-極客時間
- Nginx 學習筆記--程式與模組Nginx筆記
- Redis學習筆記(十) 客戶端Redis筆記客戶端
- Nginx變數詳解(學習筆記十九)Nginx變數筆記
- Nginx學習筆記(反向代理&搭建叢集)Nginx筆記
- Nginx 學習筆記--程式與模組(二)Nginx筆記
- GitHub 極簡學習筆記(更新完畢)Github筆記
- 程式設計師的數學筆記3--迭代法程式設計師筆記
- 玩轉Git三劍客-蘇玲-極客時間Git
- Adaptive AUTOSAR 學習筆記 16 - 時間同步和網路管理APT筆記
- 從0開始學架構-李運華-極客時間架構
- 零基礎學Python-尹會生-極客時間Python
- 從0開始學大資料-李智慧-極客時間大資料
- 從0開始學微服務-胡忠想-極客時間微服務
- Nginx效能優化(學習筆記二十五)Nginx優化筆記
- go 學習筆記之工作空間Go筆記
- OpenCV 名稱空間學習筆記OpenCV筆記
- 【Algorithm&DataStructure】極客時間-資料結構與演算法之美專欄筆記IGoASTStruct資料結構演算法筆記
- 從0開始學遊戲開發-蔡能-極客時間遊戲開發
- 學習 Nginx 的一些筆記,命令配置等Nginx筆記
- Nginx虛擬主機常用配置(學習筆記四)Nginx筆記
- nginx進階-3(32-34天)學習筆記Nginx筆記
- VisionPro學習筆記(5)——極軸展開工具PolarUnwrapTool筆記APT
- 極客時間 Redis核心技術與實戰 基礎篇 筆記03 快取穿透,雪崩,擊穿Redis筆記快取穿透
- Vue開發實戰-唐金州-極客時間Vue
- go從入門到實戰-極客時間Go
- SQL必知必會-陳暘-極客時間SQL