bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Nginx服務器的高性能原理IO復用介紹

這篇文章主要講解了“Nginx服務器的高性能原理IO復用介紹”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Nginx服務器的高性能原理IO復用介紹”吧!

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于做網(wǎng)站、成都網(wǎng)站設計、正安網(wǎng)絡推廣、微信平臺小程序開發(fā)、正安網(wǎng)絡營銷、正安企業(yè)策劃、正安品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供正安建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:vcdvsql.cn

導入

Nginx的處理IO的方式是異步非阻塞。Nginx之所以高性能除了異步非阻塞之外,還有一個核心的原因:IO復用。

什么是IO復用?

從最簡單的例子說起,一個請求連接來了之后,一般情況下是怎么處理請求的呢? 如圖1所示

Nginx服務器的高性能原理IO復用介紹

瀏覽器的每次請求都會分配或者新啟一個進程與之對應,去處理請求。進程上下文之間的切換和新啟進程都會很浪費資源,怎么優(yōu)化呢?(舉手)把多進城變成多線程。  那么就有了如下圖2的優(yōu)化結果。

Nginx服務器的高性能原理IO復用介紹

這么做有啥不好呢?在思考一下,線程是進程調(diào)度的最小單位,一個進程有多個線程在同時處理請求,那么如果這個進程因為異常情況意外終止了,那么它所擁有的所有的線程都將全部終止運行,換句話說,服務掛了。哈哈,好刺激。

那么IO復用派上用場了~~前面我們提到了異步非阻塞,那么我們這樣來設計,我們設計一個進程池、事件響應守護進程、請求服務進程。那么,我們的服務器的進程架構如下圖所示:

Nginx服務器的高性能原理IO復用介紹

如上圖,我們將服務器分成了三個模塊:

  1. 進程池

  2. 事件響應

  3. 事件注冊

當瀏覽器請求到達服務器之后,首先連接到(3)請求服務進程,并注冊一個事件,當請求發(fā)送數(shù)據(jù)的時候,這個時候會產(chǎn)生一個讀事件,這個時候會有(2)事件響應進程會響應,將事件交給(1)進程池處理,同時再注冊一個寫事件。當進程池將請求處理完成之后,會響應寫事件將處理的結果返回給瀏覽器。

那么IO復用所復用的是什么呢?

IO復用就是用一個進程來響應真實的請求事件。本質(zhì)上復用的是進程。

Select與Epoll

當有讀寫事件發(fā)生了,事件守護進程響應交給進程池處理,同時再注冊一個寫事件,但是進程池怎么知道是哪個socket有事件發(fā)生了呢?所以每次有事件發(fā)生的時候,事件響應進程就會遍歷一下所有的socket連接句柄,判斷一下是否有事件發(fā)生,這種響應事件的方式就被稱為Select模型。

怎么去優(yōu)化呢?如果每次有事件發(fā)生,如果能知道是確切的哪個socket連接的事件,效率就很高了,這樣方式就是Epoll模型。 舉個例子

  • 假如餐館有人要結賬,服務員就跟老板說一聲:“有人要結賬”,老板不知道是哪一桌要結賬,就需要挨個問一遍,這樣的方式就是select,時間復雜度O(n)。

  • 假如餐館有人要結賬,服務員就跟老板說一聲:“5號桌要結賬”,這樣的方式就是epoll,時間復雜度O(1)。

從大的方面了解一個高性能的服務器演化的過程,總結一下:池的概念會很大的提高性能,本次說到的是進程池,改成線程池(其實是多進程多線程模式)也是一樣。

感謝各位的閱讀,以上就是“Nginx服務器的高性能原理IO復用介紹”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Nginx服務器的高性能原理IO復用介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文題目:Nginx服務器的高性能原理IO復用介紹
網(wǎng)站URL:http://vcdvsql.cn/article28/pcdejp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作Google營銷型網(wǎng)站建設手機網(wǎng)站建設面包屑導航電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設