搜尋
首頁運維NginxNginx伺服器進程數怎麼設定和利用多核心CPU的方法

nginx 設定檔nginx.conf

首先需要找到nginx 的設定檔nginx.conf 才能進行下面的操作,在lnmp一鍵安裝套件預設設定下,nginx.conf存放在

/usr/local/nginx/conf/nginx.conf

至於其他環境下安裝nginx 可以用

find / -name nginx.conf

來尋找設定檔的存放路徑。

nginx worker_processes進程數設定

nginx 的設定文件nginx.conf 中可以設定worker_processes 來更改nginx 的進程數量,根據這篇問答number of nginx worker processes顯示,建議nginx worker_processes進程數設為1,因為:

但我們的目的是要把不同的worker_processes 進程分配至不同核上的cpu 上運行,所以以我目前的vps提供者linode的512配置為例,伺服器母雞擁有8個邏輯cpu,但是作為用戶我只得到4個邏輯cpu,所以在這裡我設定為運行3個worker_processes進程,原因是在預設情況下,其他的程式會在第1個邏輯cpu(cpu0)上運行,為了不影響其他程序,我將會把這3個進程分配至另外3個邏輯cpu(cpu1、cpu2、cpu3)上運行:

worker_processes 3;

一般來說,擁有幾個邏輯cpu,就設定為幾個worker_processes 為宜,但是worker_processes 超過8個就沒有多大意義了,原因再上面那段英文裡已經提到了。

你可以使用這條指令來查看目前的cpu情況:

cat /proc/cpuinfo

或直接顯示邏輯cpu的數量:

cat /proc/cpuinfo |grep "processor"|wc -l

nginx worker_cpu_affinity 設定

根據nginx wiki 上的資料顯示:

worker_cpu_affinity 預設是沒有開啟的,根據範例我們可以看得出,0001 0010 0100 1000 分別代表第1 、2、3、4個邏輯cpu,所以我們可以設定0010 0100 1000來將3個行程分別綁定到第2、3、4個邏輯cpu上:

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

同時根據例子我們也可以看出,worker_cpu_affinity 可以將同1個程序綁定在2個邏輯cpu上:

worker_processes 2;
worker_cpu_affinity 0101 1010;

0101也就是第1、3個邏輯cpu上,1010就是第2、4個邏輯cpu上。
nginx 進程分配至多核心cpu設定的啟用和測試

儲存nginx.conf 文件,並重新載入nginx 設定檔:

/usr/local/nginx/sbin/nginx -s reload

在另一台安裝了apache的主機下執行ab 來測試:
ab -n 20000 -k http://www.1990y.com/p.php
你可以測試一個需要mysql查詢的php頁面,也可以測試一個靜態圖片或頁面。

在被測伺服器上可以使用 top 查看目前伺服器狀況,然後按 1 來顯示各個邏輯cpu的使用情況。

開啟cpu多核利用

規則設定
(1)cpu有多少個核,就有幾位數,1代表內核開啟,0代表核心關閉
(2)worker_processes最多開啟8個,8個以上效能就不會再提升了,而且穩定性會變的更低,因此8個進程夠用了

示範實例
兩核cpu,開啟兩個進程

  worker_processes 2; 
  worker_cpu_affinity 01 10;

01表示啟用了第一個cpu內核,10表示啟用了第二個cpu內核
worker_cpu_affinity 01 10;表示開啟了兩個進程,第一個進程對應著第一個cpu內核,第二個進程對應著第二個cpu內核

兩核cpu,開啟八個進程

  worker_processes 8; 
  worker_cpu_affinity 01 10 01 10 01 10 01 10;

開啟了8個進程,它們分別對應了開啟2個內核

8核cpu,開啟8個進程

  worker_processes 8; 
  worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;

00000001表示開啟第一個cpu內核,00000010表示開啟第二個cpu內核,依次類推

8核cpu,開啟2個進程

  worker_processes 2; 
  worker_cpu_affinity 10101010 01010101;

10101010表示開啟了第2,4,6,8內核,01010101表示開始了1,3,5, 7核心
2個行程對應8個核心

重啟nginx
配置完成後,需要重新啟動nginx服務

  /etc/init.d/nginx restart

以上是Nginx伺服器進程數怎麼設定和利用多核心CPU的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
NGINX單元:關鍵功能NGINX單元:關鍵功能Apr 25, 2025 am 12:17 AM

NGINXUnit是一個開源應用服務器,支持多種編程語言,提供動態配置、零停機更新和內置負載均衡等功能。 1.動態配置:無需重啟即可修改配置。 2.多語言支持:兼容Python、Go、Java、PHP等。 3.零停機更新:支持不中斷服務的應用更新。 4.內置負載均衡:可將請求分發到多個應用實例。

NGINX單元與其他應用程序服務器NGINX單元與其他應用程序服務器Apr 24, 2025 am 12:14 AM

NGINXUnit優於ApacheTomcat、Gunicorn和Node.js內置HTTP服務器,適用於多語言項目和動態配置需求。 1)支持多種編程語言,2)提供動態配置重載,3)內置負載均衡功能,適合需要高擴展性和可靠性的項目。

NGINX單元:架構及其工作原理NGINX單元:架構及其工作原理Apr 23, 2025 am 12:18 AM

NGINXUnit通過其模塊化架構和動態重配置功能提高了應用的性能和可管理性。 1)模塊化設計包括主控進程、路由器和應用進程,支持高效管理和擴展。 2)動態重配置允許在運行時無縫更新配置,適用於CI/CD環境。 3)多語言支持通過動態加載語言運行時實現,提升了開發靈活性。 4)高性能通過事件驅動模型和異步I/O實現,即使在高並發下也保持高效。 5)安全性通過隔離應用進程提高,減少應用間相互影響。

使用NGINX單元:部署和管理應用程序使用NGINX單元:部署和管理應用程序Apr 22, 2025 am 12:06 AM

NGINXUnit可用於部署和管理多種語言的應用。 1)安裝NGINXUnit。 2)配置它以運行不同類型的應用,如Python和PHP。 3)利用其動態配置功能進行應用管理。通過這些步驟,你可以高效地部署和管理應用,提升項目效率。

NGINX與Apache:Web服務器的比較分析NGINX與Apache:Web服務器的比較分析Apr 21, 2025 am 12:08 AM

NGINX更适合处理高并发连接,而Apache更适合需要复杂配置和模块扩展的场景。1.NGINX以高性能和低资源消耗著称,适合高并发。2.Apache以稳定性和丰富的模块扩展闻名,适合复杂配置需求。

NGINX單元的優勢:靈活性和性能NGINX單元的優勢:靈活性和性能Apr 20, 2025 am 12:07 AM

NGINXUnit通過其動態配置和高性能架構提升應用的靈活性和性能。 1.動態配置允許在不重啟服務器的情況下調整應用配置。 2.高性能體現在事件驅動和非阻塞架構以及多進程模型上,能夠高效處理並發連接和利用多核CPU。

NGINX與Apache:性能,可伸縮性和效率NGINX與Apache:性能,可伸縮性和效率Apr 19, 2025 am 12:05 AM

NGINX和Apache都是強大的Web服務器,各自在性能、可擴展性和效率上有獨特的優勢和不足。 1)NGINX在處理靜態內容和反向代理時表現出色,適合高並發場景。 2)Apache在處理動態內容時表現更好,適合需要豐富模塊支持的項目。選擇服務器應根據項目需求和場景來決定。

終極攤牌:nginx vs. apache終極攤牌:nginx vs. apacheApr 18, 2025 am 12:02 AM

NGINX適合處理高並發請求,Apache適合需要復雜配置和功能擴展的場景。 1.NGINX採用事件驅動、非阻塞架構,適用於高並發環境。 2.Apache採用進程或線程模型,提供豐富的模塊生態系統,適合複雜配置需求。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能