作業系統及核心版本
cat /etc/redhat-release
centos linux release 7.2.1511 (core)
[root@tomcat01 conf]
# uname -a
linux tomcat01 3.10.0-327.el7.x86_64 #1 smp thu nov 19 22:10:57 utc 2015 x86_64 x86_64 x86_64 gnu/linux
1、檢視程序的開啟最大檔案數,預設為1024
[root@localhost ~]
# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7168
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
posix message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time
(seconds, -t) unlimited
max user processes (-u) 7168
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
可以直接加上 -n引數檢視
ulimit -n
檢視系統最大開啟檔案數
cat /proc/sys/fs/file-max
2、修改方法
臨時修改
程序開啟最大檔案數:退出終端後失效
ulimit -n 65535
系統開啟最大檔案數 重啟後失效
echo 6553500 > /proc/sys/fs/file-max
永久修改方法
程序開啟最大檔案數:在配置檔案最後加上兩行
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
系統開啟最大檔案數:修改配置檔案如下
echo
"fs.file-max=6553500"
>> /etc/sysctl.conf
sysctl -p
以下是調優後的nginx配置檔案
}}
worker_processes 8;
nginx 程序數,建議按照cpu 數目來指定,一般為它的倍數 (如,2個四核的cpu計為8)。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
為每個程序分配cpu,上例中將8 個程序分配到8 個cpu,當然可以寫多個,或者將乙個程序分配到多個cpu。
worker_rlimit_nofile 65535;
這個指令是指當乙個nginx 程序開啟的最多檔案描述符數目,理論值應該是最多開啟檔案數(ulimit -n)與nginx 程序數相除,但是nginx 分配請求並不是那麼均勻,所以最好與ulimit -n 的值保持一致。
現在在linux 2.6核心下開啟檔案開啟數為65535,worker_rlimit_nofile就相應應該填寫65535。
這是因為nginx排程時分配請求到程序並不是那麼的均衡,所以假如填寫10240,總併發量達到3-4萬時就有程序可能超過10240了,這時會返回502錯誤。
use epoll;
使用epoll 的i/o 模型。
與apache相類,nginx針對不同的作業系統,有不同的事件模型
a)標準事件模型
select、poll屬於標準事件模型,如果當前系統不存在更有效的方法,nginx會選擇select或poll
b)高效事件模型
kqueue:使用於 freebsd 4.1+, openbsd 2.9+, netbsd 2.0 和 macos x. 使用雙處理器的macos x系統使用kqueue可能會造成核心崩潰。
epoll: 使用於linux核心2.6版本及以後的系統。
/dev/poll:使用於 solaris 7 11/99+, hp/ux 11.22+ (eventport), irix 6.5.15+ 和 tru64 unix 5.1a+。
eventport:使用於 solaris 10. 為了防止出現核心崩潰的問題, 有必要安裝安全補丁。
worker_connections 65535;
每個程序允許的最多連線數, 理論上每台nginx 伺服器的最大連線數為worker_processes*worker_connections
keepalive_timeout 60;
keepalive 超時時間。
client_header_buffer_size 4k;
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設定,一般乙個請求頭的大小不會超過1k,不過由於一般系統分頁都要大於1k,所以這裡設定為分頁大小。
分頁大小可以用命令getconf pagesize 取得。
open_file_cache max=65535 inactive=60s;
這個將為開啟檔案指定快取,預設是沒有啟用的,max 指定快取數量,建議和開啟檔案數一致,inactive 是指經過多長時間檔案沒被請求後刪除快取。
open_file_cache_valid 80s;
這個是指多長時間檢查一次快取的有效資訊。
open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 引數時間內檔案的最少使用次數,如果超過這個數字,檔案描述符一直是在快取中開啟的,如上例,如果有乙個檔案在inactive 時間內一次沒被使用,它將被移除。 nginx引數調優
不完整配置參考 可參考修改或新增以下配置 引數說明 nginx程序數,一般設定為cpu核數量,grep processor proc cpuinfo wc l 命令可獲得cpu核數。將worker process與指定cpu核繫結,降低由於多cpu核切換造成的暫存器等現場重建帶來的效能損耗 如果為2...
Nginx調優相關引數
常用的一些引數 1.工作程序數量worker processes 4 一般與cpu核心數相同 worker cpu affinity 0001 0010 0100 1000 工作程序分別與cpu繫結2.nginx最大開啟檔案數量worker rlimit nofile 65535 3.nginx事件...
Nginx優化 引數調優 康熙
優化nginx服務的worker程序個數在高併發 高訪問的web服務場景,需要事先啟動好更多的nginx程序,以確保快速響應大量併發的使用者請求。根據該伺服器所有的cpu顆數的核數加起來總和 2 worker processes xx 官方建議是和核數相同 例如一台2顆物理cpu 每個cpu的核數為...