国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > Nginx > 正文

詳解nginx高并發(fā)場(chǎng)景下的優(yōu)化

2024-08-30 12:22:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了詳解nginx高并發(fā)場(chǎng)景下的優(yōu)化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在日常的運(yùn)維工作中,經(jīng)常會(huì)用到nginx服務(wù),也時(shí)常會(huì)碰到nginx因高并發(fā)導(dǎo)致的性能瓶頸問題。今天這里簡(jiǎn)單梳理下nginx性能優(yōu)化的配置(僅僅依據(jù)本人的實(shí)戰(zhàn)經(jīng)驗(yàn)而述,如有不妥,敬請(qǐng)指出~)

一、這里的優(yōu)化主要是指對(duì)nginx的配置優(yōu)化,一般來(lái)說(shuō)nginx配置文件中對(duì)優(yōu)化比較有作用的主要有以下幾項(xiàng):

1)nginx進(jìn)程數(shù),建議按照cpu數(shù)目來(lái)指定,一般跟cpu核數(shù)相同或?yàn)樗谋稊?shù)。

worker_processes 8;

2)為每個(gè)進(jìn)程分配cpu,上例中將8個(gè)進(jìn)程分配到8個(gè)cpu,當(dāng)然可以寫多個(gè),或者將一個(gè)進(jìn)程分配到多個(gè)cpu。

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

3)下面這個(gè)指令是指當(dāng)一個(gè)nginx進(jìn)程打開的最多文件描述符數(shù)目,理論值應(yīng)該是系統(tǒng)的最多打開文件數(shù)(ulimit -n)與nginx進(jìn)程數(shù)相除,但是nginx分配請(qǐng)求并不是那么均勻,所以最好與ulimit -n的值保持一致。

worker_rlimit_nofile 65535;

4)使用epoll的I/O模型,用這個(gè)模型來(lái)高效處理異步事件

use epoll;

5)每個(gè)進(jìn)程允許的最多連接數(shù),理論上每臺(tái)nginx服務(wù)器的最大連接數(shù)為worker_processes*worker_connections。

worker_connections 65535;

6)http連接超時(shí)時(shí)間,默認(rèn)是60s,功能是使客戶端到服務(wù)器端的連接在設(shè)定的時(shí)間內(nèi)持續(xù)有效,當(dāng)出現(xiàn)對(duì)服務(wù)器的后繼請(qǐng)求時(shí),該功能避免了建立或者重新建立連接。切記這個(gè)參數(shù)也不能設(shè)置過(guò)大!否則會(huì)導(dǎo)致許多無(wú)效的http連接占據(jù)著nginx的連接數(shù),終nginx崩潰!

keepalive_timeout 60;

7)客戶端請(qǐng)求頭部的緩沖區(qū)大小,這個(gè)可以根據(jù)你的系統(tǒng)分頁(yè)大小來(lái)設(shè)置,一般一個(gè)請(qǐng)求的頭部大小不會(huì)超過(guò)1k,不過(guò)由于一般系統(tǒng)分頁(yè)都要大于1k,所以這里設(shè)置為分頁(yè)大小。分頁(yè)大小可以用命令getconf PAGESIZE取得。

client_header_buffer_size 4k;

8)下面這個(gè)參數(shù)將為打開文件指定緩存,默認(rèn)是沒有啟用的,max指定緩存數(shù)量,建議和打開文件數(shù)一致,inactive是指經(jīng)過(guò)多長(zhǎng)時(shí)間文件沒被請(qǐng)求后刪除緩存。

open_file_cache max=102400 inactive=20s;

9)下面這個(gè)是指多長(zhǎng)時(shí)間檢查一次緩存的有效信息。

open_file_cache_valid 30s;

10)open_file_cache指令中的inactive參數(shù)時(shí)間內(nèi)文件的最少使用次數(shù),如果超過(guò)這個(gè)數(shù)字,文件描述符一直是在緩存中打開的,如上例,如果有一個(gè)文件在inactive時(shí)間內(nèi)一次沒被使用,它將被移除。

open_file_cache_min_uses 1;

11)隱藏響應(yīng)頭中的有關(guān)操作系統(tǒng)和web server(Nginx)版本號(hào)的信息,這樣對(duì)于安全性是有好處的。

server_tokens off;

12)可以讓sendfile()發(fā)揮作用。sendfile()可以在磁盤和TCP socket之間互相拷貝數(shù)據(jù)(或任意兩個(gè)文件描述符)。Pre-sendfile是傳送數(shù)據(jù)之前在用戶空間申請(qǐng)數(shù)據(jù)緩沖區(qū)。之后用read()將數(shù)據(jù)從文件拷貝到這個(gè)緩沖區(qū),write()將緩沖區(qū)數(shù)據(jù)寫入網(wǎng)絡(luò)。sendfile()是立即將數(shù)據(jù)從磁盤讀到OS緩存。因?yàn)檫@種拷貝是在內(nèi)核完成的,sendfile()要比組合read()和write()以及打開關(guān)閉丟棄緩沖更加有效(更多有關(guān)于sendfile)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海安县| 思茅市| 南乐县| 安丘市| 新营市| 龙口市| 托里县| 遵化市| 福鼎市| 黄骅市| 连平县| 安化县| 方山县| 漠河县| 赫章县| 澄迈县| 舒城县| 桦川县| 双桥区| 博罗县| 明光市| 新乡县| 浦东新区| 合水县| 蓝田县| 天镇县| 新民市| 枣庄市| 西乌珠穆沁旗| 泊头市| 东阳市| 柳林县| 镇巴县| 丰顺县| 惠州市| 长阳| 东莞市| 彭州市| 若尔盖县| 东乌珠穆沁旗| 岳阳市|