標籤:企業級web nginx 服務最佳化(2)
2.worker_cpu_affinity參數官方說明:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/8D/8B/wKioL1ihWd6ioeQ9AABfDWlMeQs730.jpg-wh_500x0-wm_3-wmp_4-s_3298564834.jpg" title="4cb93bf4-3263-4ca7-9986-92af2165acbe.jpg" alt="wKioL1ihWd6ioeQ9AABfDWlMeQs730.jpg-wh_50" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8D/8D/wKiom1ihWfjTk6JPAABgw8BP9L8568.jpg-wh_500x0-wm_3-wmp_4-s_649743234.jpg" title="7c1732d9-5ea4-4756-b428-5e410f174822.jpg" alt="wKiom1ihWfjTk6JPAABgw8BP9L8568.jpg-wh_50" />
查看cpu的核心數的情況:[[email protected] conf]# grep "physical" /proc/cpuinfophysical id: 0address sizes: 42 bits physical, 48 bits virtual
top命令很好記得總結
輸入top 按 1 來進行查看。
3.壓力測試配置結果:
a.配置前壓力測試結果:
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/8D/8D/wKiom1ihWiuBjjXwAABkx73XOOI658.jpg-wh_500x0-wm_3-wmp_4-s_2340517045.jpg" title="84bde739-3140-4551-ad70-43cf758eb421.jpg" alt="wKiom1ihWiuBjjXwAABkx73XOOI658.jpg-wh_50" />
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/8D/8D/wKiom1ihWk_hs5BsAABmm4jXNxs081.jpg-wh_500x0-wm_3-wmp_4-s_3791902866.jpg" title="7bfd1605-12c2-4b62-a9d6-0e376cd0c26c.jpg" alt="wKiom1ihWk_hs5BsAABmm4jXNxs081.jpg-wh_50" />
通過觀察,我們發現配置前不同CPU使用率相對平均。
b.配置worker_cpu_affinity後:
[[email protected] conf]# grep worker_cpu nginx.conf worker_cpu_affinity 0001 0010 0100 1000;
壓力測試結果如下:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8D/8D/wKiom1ihWoaAB_blAABaI9-eRMs232.jpg-wh_500x0-wm_3-wmp_4-s_2118692155.jpg" title="34725ec3-fe80-4533-9c97-fd48003504d5.jpg" alt="wKiom1ihWoaAB_blAABaI9-eRMs232.jpg-wh_50" />
通過觀察,我們發下配置後不同CPU使用率相對平均,和測試前變化不大。因此預設就比較平均,一方面是軟體自身在逐漸的最佳化使用多核cpu,另一方面測試資料有待調整。
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/8D/8B/wKioL1ihWqixaNLOAABvmCrOxHg203.jpg-wh_500x0-wm_3-wmp_4-s_2338900259.jpg" title="0ad7c894-62b7-436a-917c-3bc9cfd8c042.jpg" alt="wKioL1ihWqixaNLOAABvmCrOxHg203.jpg-wh_50" />
[[email protected]-01 conf]# man taskset
TASKSET(1) Linux User’s Manual TASKSET(1)
NAME
taskset - retrieve or set a process’s CPU affinity
SYNOPSIS
taskset [options] mask command [arg]...
taskset [options] -p [mask] pid
其他服務可以來進行親和 例如:mysql
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8D/8B/wKioL1ihWtTSKnklAAAlSNgJIDs331.jpg-wh_500x0-wm_3-wmp_4-s_1882831217.jpg" title="e571bc50-62ba-4459-9820-5f67389910d2.jpg" alt="wKioL1ihWtTSKnklAAAlSNgJIDs331.jpg-wh_50" />
1.1.5事件處理模型的最佳化
nginx 的串連處理機制在於不同的作業系統採用不同的IO模型,在linux使用epoll的IP多路服用的模型,在freebsd使用kqueue的IO多路服用模型,在solaris使用/dev/poll方式的IO多複用模型,在windows使用的是icop等等。
根據系統類別型不同選擇不同use[kqueue|rtsig|epoll|/dev/poll/select|poll];該參數結合系統使用,不同系統使用參數不同,我們使用的是Centos6.5,因此我們調整為epoll模型。
1.具體的配置參數如下:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/8D/8D/wKiom1ihWvSzmZeJAABrm1CjaE0076.jpg-wh_500x0-wm_3-wmp_4-s_3596763715.jpg" title="9e3f69f3-fc96-4ce2-be69-4ecdfe4620b2.jpg" alt="wKiom1ihWvSzmZeJAABrm1CjaE0076.jpg-wh_50" />
2.官方說明:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/8D/8B/wKioL1ihWxCgNaEsAAA1w7VUAH0164.jpg-wh_500x0-wm_3-wmp_4-s_1384577774.jpg" title="0947f0dc-dc6a-49ab-b857-319f77f5417f.jpg" alt="wKioL1ihWxCgNaEsAAA1w7VUAH0164.jpg-wh_50" />
[[email protected]-01 conf]# grep "epoll" nginx.conf
use epoll;
1.1.6調整單個進程允許的用戶端最大的串連數
這個值是根據具體伺服器效能程式的記憶體使用量量來制定的(一個進程啟動使用的記憶體根據程式確定)
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8D/8B/wKioL1ihWzywc3aEAAByT92DMbs215.jpg-wh_500x0-wm_3-wmp_4-s_1102421377.jpg" title="c1ce5a13-0447-4a70-a6de-97585af45964.jpg" alt="wKioL1ihWzywc3aEAAByT92DMbs215.jpg-wh_50" />
worker_connections官方說明:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8D/8D/wKiom1ihW1ngMQYUAACH6yWOyD4832.jpg-wh_500x0-wm_3-wmp_4-s_1542938990.jpg" title="78fd4a4d-a07a-4ac6-906f-9288c6618626.jpg" alt="wKiom1ihW1ngMQYUAACH6yWOyD4832.jpg-wh_50" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/8D/8B/wKioL1ihW3Swcw5NAAHxDscbnno100.jpg-wh_500x0-wm_3-wmp_4-s_1560567537.jpg" title="18ef03fc-69b3-4086-81cd-8dd65692aefa.jpg" alt="wKioL1ihW3Swcw5NAAHxDscbnno100.jpg-wh_50" />
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/8D/8B/wKioL1ihW43zbSRwAABryB6F4Bs025.png-wh_500x0-wm_3-wmp_4-s_1676340750.png" title="0ac1603b-6991-419a-9440-c60624ed7b16.png" alt="wKioL1ihW43zbSRwAABryB6F4Bs025.png-wh_50" />
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8D/8B/wKioL1ihW6jAGLJGAAPhxBhdGDo456.png-wh_500x0-wm_3-wmp_4-s_3605269544.png" title="ee57fe74-e672-4c6b-832d-5d1fd9e0cbf5.png" alt="wKioL1ihW6jAGLJGAAPhxBhdGDo456.png-wh_50" />
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8D/8B/wKioL1ihW7_zGLNCAAEiNJB3kok191.jpg-wh_500x0-wm_3-wmp_4-s_2369862085.jpg" title="bdd9c4b1-2815-4a5c-982d-ead3c02e294c.jpg" alt="wKioL1ihW7_zGLNCAAEiNJB3kok191.jpg-wh_50" />
這個是每個worker進程的用戶端串連數是多少。
1.1.7配置每個進程最大檔案開啟數:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/8D/8B/wKioL1ihW-zg0VQmAAAwpBKXKo4270.jpg-wh_500x0-wm_3-wmp_4-s_1515803701.jpg" title="d2ff72cd-b245-48a4-9490-7b0d62fd7dfd.jpg" alt="wKioL1ihW-zg0VQmAAAwpBKXKo4270.jpg-wh_50" />
worker_rlimit_nofilenumber官方說明
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8D/8D/wKiom1ihXAryU-S9AAAxPMZhLuY343.jpg-wh_500x0-wm_3-wmp_4-s_1565439026.jpg" title="d143e7d8-6294-49ab-bb44-36f750400f02.jpg" alt="wKiom1ihXAryU-S9AAAxPMZhLuY343.jpg-wh_50" />
1.1.8最佳化伺服器名字的hash表大小:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/8D/8B/wKioL1ihXCvRTo9oAAD9Su5JrDA228.jpg-wh_500x0-wm_3-wmp_4-s_727880777.jpg" title="b580cc98-e390-4896-b3a1-6191b010eff5.jpg" alt="wKioL1ihXCvRTo9oAAD9Su5JrDA228.jpg-wh_50" />650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/8D/8B/wKioL1ihXFPyjTZlAABYLKT3bek268.jpg-wh_500x0-wm_3-wmp_4-s_708947905.jpg" title="f13c6ac2-75cb-4538-af8b-2a64d2ee13d3.jpg" alt="wKioL1ihXFPyjTZlAABYLKT3bek268.jpg-wh_50" />650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/8D/8B/wKioL1ihXGixTBm3AACgoBi_AWo468.jpg-wh_500x0-wm_3-wmp_4-s_3055384168.jpg" title="0cc4291a-a8cf-4b46-a2f3-f108185f9d14.jpg" alt="wKioL1ihXGixTBm3AACgoBi_AWo468.jpg-wh_50" />
出現了這種情況,那就需要將設定值擴大一倍:
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/8D/8B/wKioL1ihXJGRCN71AAARLO4VS1s500.jpg-wh_500x0-wm_3-wmp_4-s_213001344.jpg" title="3969d068-a2ce-4cec-aff8-c327e2ae333d.jpg" alt="wKioL1ihXJGRCN71AAARLO4VS1s500.jpg-wh_50" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/8D/8D/wKiom1ihXKqwJiw6AACmhY0tuQ0956.jpg-wh_500x0-wm_3-wmp_4-s_294689865.jpg" title="54eada80-e4c1-4bab-acda-861b89ee211a.jpg" alt="wKiom1ihXKqwJiw6AACmhY0tuQ0956.jpg-wh_50" />
server_names_hash_max_size:
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/8D/8E/wKiom1ihXOzAy3PaAABqwTQDQgc289.jpg-wh_500x0-wm_3-wmp_4-s_3773559599.jpg" title="b9bac4b4-08a1-4895-855a-dce99d6c9b4e.jpg" alt="wKiom1ihXOzAy3PaAABqwTQDQgc289.jpg-wh_50" />
1.1.19開啟高效檔案傳輸模式
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/8D/8E/wKiom1ihXQvBxe7EAABVgoWzqXI341.jpg-wh_500x0-wm_3-wmp_4-s_2522440553.jpg" title="ad78bdc2-f764-47e7-a0f3-b172ba35e3e9.jpg" alt="wKiom1ihXQvBxe7EAABVgoWzqXI341.jpg-wh_50" />
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/8D/8B/wKioL1ihXSKwUCe-AACH_D_zvCk917.jpg-wh_500x0-wm_3-wmp_4-s_742929595.jpg" title="b214fed7-0968-4505-956e-000f80b43c9f.jpg" alt="wKioL1ihXSKwUCe-AACH_D_zvCk917.jpg-wh_50" />
企業級Web Nginx 服務最佳化(2)