Nginx worker進程個數
語法:worker_processes number;
預設:worker_processes 1;
作用:在master_worker運作方式下,定義worker行程的個數。 worker進程的數量會直接影響效能。那麼,要配多少個合適呢?根據業務需求。每個worker都是單線程的進程,他惡魔會呼叫各個模組來實現各種功能。如果確定這些模組不會出現堵塞式調用,那麼進程數可以和CPU核心數一樣;反之,則稍少一些。
綁定Nginx worker進程到指定的CPU核心
語法:worker_cpu_affinity cpumask [cpumask…]
作用:假設每個worker都是很忙的,如果多個進程都在搶同一個CPU,那麼就會出現同步問題。反之,如果每個worker進程獨享一個CPU,就實現了完全的並發。
舉例:
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
SSL硬體加速
語法:ssl_engine device;
作用:如果伺服器上有SSL硬體加速設備,那麼就可以進行設定以加快SSL協定的處理速度。使用者可以用OpenSSL提供的指令來查看是否有SSL硬體加速設備:openssl engine -t
系統呼叫gettimeofday的執行頻率
語法:timer_resolution t;
作用:預設情況下,每次核心的事件呼叫(如epoll,select,poll,kqueue等)傳回時,都會執行一次gettimeofday,實作核心的時脈來更新nginx的快取時脈。在早期的linux中,這個代價不小。
Nginx worker進程優先權設定
語法:worker_priority nice;
預設:worker_priority 0;
作用:在Linux和Unix中,當許多行程都處於可執行狀態時,依照優先權決定本次核心選擇哪一個行程執行。進程分配的CPU時間片大小也與優先權有關,優先權越高,時間片越長(例如,在預設情況下,最小時間片是5ms,最大則有800ms)。優先權由靜態優先權和核心根據行程的執行情況所做的動態調整(目前只有+-5的調整)共同決定。 nice是進程的優先級,他的取值範圍是-20~+19,-20是最高優先級,+19是最低優先級。不建議把nice的值設為比內核進程(t通常為-5)還要小。
以上就介紹了nginx配置之效能配置,包含了nginx的內容,希望對PHP教學有興趣的朋友有幫助。