NGINX原理剖析

2021-07-10 08:55:32 字數 407 閱讀 1058

nginx之所以能夠支援高併發,是由於它採用非同步、事件驅動的方式處理連線。nginx有乙個master process,負責載入配置檔案,繫結埠等特權操作;有cache manage process和cache loader process兩個程序負責硬碟快取的處理,在nginx啟動時,將硬碟的快取裝入記憶體,然後退出,開銷很小,且會定期清理硬碟到的快取到指定大小;有多個worker process處理網路連線,硬碟讀寫,及上層伺服器網路通訊。

work process是單執行緒的,乙個process程序負責多個連線和請求,nginx採用非阻塞模式(所謂阻塞意為每個連線都占用乙個程序)的socket,並利用諸如 epoll 和 kqueue 的高效方法。

《深入 nginx:我們是如何為效能和規模做設計的

》  《nginx引入執行緒池,提公升9倍效能》

epoll原理剖析

首先我們來定義流的概念,乙個流可以是檔案,socket,pipe等等可以進行i o操作的核心物件。不管是檔案,還是套接字,還是管道,我們都可以把他們看作流。之後我們來討論i o的操作,通過read,我們可以從流中讀入資料 通過write,我們可以往流寫入資料。現在假定乙個情形,我們需要從流中讀資料,...

next permutation原理剖析

最近刷leetcode的時候遇見next permutation這道題,感覺挺有意思的乙個題目,遞迴的方法是較簡單並且容易想到的,在網上搜了其餘的解法,就是std next permutation非遞迴解法,但是讓人不是很舒服的就是關於原理的部分,千篇一律的都是摘抄 stl原始碼剖析 也就是這樣的。...

SEH原理剖析

使用者層資料結構 teb teb 第乙個欄位是nttib,nttib的第乙個欄位exceptionlist是乙個鍊錶的頭結點的首 位址.當產生異常,系統會通過fs 0 找到這個鍊錶,依次呼叫處理異常.typedef struct exception registration recordexcept...