中文字幕视频在线看,亚洲精品无码久久久久av老牛,亚洲精品无码av片,亚洲av影院一区二区三区,亚洲国产精品成人久久久

centos查看cpu核心數(shù)量

今天來給大家講解一下Nginx的工作原理以及的一些可優(yōu)化的參數(shù)配置,也都是在實(shí)際工作中總結(jié)出來的經(jīng)驗(yàn)。

一、nginx工作原理

1.1、nginx進(jìn)程模型

nginx在啟動(dòng)后,會(huì)有一個(gè)master進(jìn)程和多個(gè)worker進(jìn)程。master進(jìn)程主要用來管理worker進(jìn)程,如下圖所示:

centos查看cpu核心數(shù)量

centos查看cpu核心數(shù)量

1.2、master和worker的工作職責(zé)

master是一個(gè)領(lǐng)導(dǎo),它只負(fù)責(zé)管理worker,具體的工作任務(wù)由下面的worker(工人)去做。

master的職責(zé):接收來自外界的信號(hào),向各worker進(jìn)程發(fā)送信號(hào),監(jiān)控worker進(jìn)程的運(yùn)行狀態(tài),當(dāng)worker進(jìn)程退出后(異常情況下),會(huì)自動(dòng)重新啟動(dòng)新的worker進(jìn)程。

worker的職責(zé):處理來自客戶端的請(qǐng)求,多個(gè)worker進(jìn)程之間是對(duì)等的,他們同等競(jìng)爭(zhēng)來自客戶端的請(qǐng)求,如下圖所示:

centos查看cpu核心數(shù)量

各個(gè)worker進(jìn)程互相之間是獨(dú)立的,一個(gè)請(qǐng)求只可能在一個(gè)worker進(jìn)程中處理,一個(gè)worker進(jìn)程,不可能處理其它進(jìn)程的請(qǐng)求。

1.3、master-workers的機(jī)制的好處

1、對(duì)于每個(gè) worker 進(jìn)程來說,獨(dú)立的進(jìn)程,不需要加鎖,所以省掉了加鎖帶來的開銷,同時(shí)在編程以及問題查找時(shí),也會(huì)方便很多。

2、采用獨(dú)立的進(jìn)程,可以讓互相之間不會(huì)影響,一個(gè)進(jìn)程退出后,其它進(jìn)程還在工作,服務(wù)不會(huì)中斷,master 進(jìn)程則很快啟動(dòng)新的worker 進(jìn)程。當(dāng)然,worker 進(jìn)程的異常退出,肯定是程序有 bug 了,異常退出,會(huì)導(dǎo)致當(dāng)前 worker 上的所有請(qǐng)求失敗,不過不會(huì)影響到所有請(qǐng)求,所以降低了風(fēng)險(xiǎn)。

二、優(yōu)化參數(shù)配置

2.1、worker_processes進(jìn)程數(shù)設(shè)置

Nginx 采用了 io 多路復(fù)用機(jī)制,每個(gè) worker 都是一個(gè)獨(dú)立的進(jìn)程,但每個(gè)進(jìn)程里只有一個(gè)主線程,通過異步非阻塞的方式來處理請(qǐng)求, 即使是千上萬個(gè)請(qǐng)求也不在話下。每個(gè) worker的線程可以把一個(gè) cpu的性能發(fā)揮到極致,所以?worker 數(shù)和服務(wù)器的cpu核數(shù)相等是最為適宜的。設(shè)少了會(huì)浪費(fèi) cpu,設(shè)多了會(huì)造成 cpu 頻繁切換上下文帶來的損耗。

修改Nginx的nginx.conf配置文件,設(shè)置worker_processes進(jìn)程數(shù)量

# 設(shè)置 worker 數(shù)量。
worker_processes 2
centos查看cpu核心數(shù)量

centos查看cpu核心數(shù)量

CentOS 查看系統(tǒng) CPU個(gè)數(shù)、核心數(shù)、線程數(shù)的幾個(gè)命令:

1、查看CPU物理個(gè)數(shù)
  grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心數(shù)量

查看 CPU物理個(gè)數(shù)

2、查看CPU核數(shù)
  grep ‘core id’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心數(shù)量

查看 CPU核數(shù)

3、查看CPU線程數(shù)
  grep ‘processor’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心數(shù)量

查看 CPU線程數(shù)

2.2、Nginx能支持的最大并發(fā)數(shù)

nginx的配置文件中有一個(gè)worker_connection屬性的配置,這個(gè)是表示每個(gè) worker 進(jìn)程所能建立連接的最大值,所以,一個(gè) nginx 能建立的最大連接數(shù),理論上應(yīng)該是 worker_connections * worker_processes。

那么問題來了,發(fā)送一個(gè)http請(qǐng)求,占用了woker的幾個(gè)連接數(shù)呢?答案應(yīng)該是2個(gè)或者4個(gè)

如果是支持 http1.1 的瀏覽器每次訪問要占兩個(gè)連接,所以Nginx處理普通的靜態(tài)訪問最大并發(fā)數(shù)是: worker_connections * worker_processes /2

如果是作為HTTP反向代理服務(wù)器,Nginx能處理的最大并發(fā)數(shù)量應(yīng)該是 worker_connections *worker_processes/4。因?yàn)樽鳛榉聪虼矸?wù)器,每個(gè)并發(fā)會(huì)建立與客戶端的連接和與后端服務(wù)的連接,會(huì)占用兩個(gè)連接。

舉個(gè)例子:

nginx 有一個(gè) master ,有四個(gè) worker ,每個(gè) worker 支持最大的連接數(shù)1024 ,那么nginx支持的最大并發(fā)數(shù)是多少?

普通的靜態(tài)訪問最大并發(fā)數(shù)是: worker_connections * worker_processes /2

所以就是1024*4/2=2048

而如果是 HTTP 作 為反向代理來說,最大并發(fā)數(shù)量應(yīng)該是 worker_connections *worker_processes/4

所以就是1024*4/4=1024

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處:

(0)
尊云-小張的頭像尊云-小張
上一篇 2024 年 5 月 5 日 09:44
下一篇 2024 年 5 月 5 日 09:51

相關(guān)推薦

發(fā)表回復(fù)

登錄后才能評(píng)論

聯(lián)系我們

400-900-3935

在線咨詢: QQ交談

郵件:cong@zun.com

工作時(shí)間:365天無休服務(wù) 24小時(shí)在線

添加微信