本文延續前篇效能校正的經驗談,上篇文章探討了關於系統呼叫, iptables 可以最佳化的部分,。本篇文章將繼續剩下最佳化步驟的探討。
Perfect Locality
預設情況下, Linux Kernel 會盡量平均地將請求給分配到所有的處理佇列,譬如 network queues, processes, CPUS. 大部分情況下這種機制運作良好不會有太多問題,不過如果今天要追求的不單單只是好的效能,而是極致的效能,則 locality 這個概念就要特別的去注意。
這篇文章中提到很多不同的方式,包含了 CPU Pinning, Receive Side Scaling(RSS), Transmit Packet Sterring(XPS)等,其實用比較簡單的介紹方式就是,希望可以使用固定的 CPU 來處理一條連線上的所有封包(進出),這樣帶來的好處有
1. CPU Cache 可以盡可能的去使用,減少各種 miss 產生的成本
2. 減少 context switch 帶來的成本
3. 減少跨 CPU 之間交換資料帶來的成本
4. 減少 lock 之間帶來的成本
除了 CPU Pin, RSS, XPS 外,還有 irqbalance, smp_affinity_list 等相關的概念需要一併學習,對於這個概念有興趣的讀者非常歡迎去找尋這類型的資料
接者是 SO_REUSEPORT 這個參數,創建 Socket 時使用這個參數能夠使得多個 Process 共用一個連接埠,底層 Kernel 會針對 src/dst{ip/port} 來產生對應的 Hash,並且決定當前封包要送給哪一個 Process。
這個方式搭配前述各種 CPU Pin, 中斷的最佳化則會遇到問題,因為可能底層將該封包送到 CPU2 結果這個函式又把封包重新分配到 CPU0, 這樣就導致該連線要跨 CPU 處理了。
為了解決這個問題, Linux Kernel 4.6 後有新的參數 SO_ATTACH_REUSEPORT_CBPF,使用者可以自行撰寫 BPF 的程式來決定如何分配封包。作者根據這過想法撰寫了一個 BPF 的程式,來確保這個機制可以與前述的最佳化穩定運作。
這次的最佳化帶來的 38% 的成長,這時候的封包處理能力從 603k req/s 提升到 834k req/s
原文中關於這次的最佳化還有一些後續探討,有興趣的可以閱讀
Interrupt Optimizations
當封包透過網路送到網卡後,網卡必須要通知 OS 讓它知道有封包來了,要記得處理。一切處理完畢後網卡就可以繼續等待新的封包過來並且再次發送中斷給 OS 處理封包。這個流程大部分情況也是運作良好,不過當有大量的封包不停傳送來時,頻繁的中斷其實也是會造成不小的額外成本。
為了解決這個問題,目前比較嶄新的網卡都有支援中斷聚合等功能,透過這個功能可以延後中斷一個小週期,而該週期內收到的所有封包只需要透過一次的中斷就可以來處理,藉此降低中斷的次數。更為進階的網卡甚至支援動態自行調整該週期的時間,譬如當網路空閒時,減少週期使得每個封包能夠盡快的發送中斷被處理,而當網路流量很大時則會加大該該週期時間來更有效地處理封包。
註: AWS ENA 有支持這種動態調整的機制
作者基於 AWS 開啟動態調整收端中斷時間的功能,整個效能提升了 14%,從 834k req/s 提升到 955k req/s。作者說這次的調整可以說是整篇文章中幾個非常強的改動,改動的地方少,效能提升明顯,同時背後的隱憂與限制也少。
除了上述中斷的方式外,另外一種則是透過 Busy Polling 這種針對低延遲性的方式。預設情況下其允訓設定為 blocked 的 socket 能夠消耗額外的 CPU Cycle 來讀取接下來的封包,可以將其想成一成一種混合體,當底層網卡告訴我有資料要讀取時,我預期接下來還會有更多的資料,因此我就透過輪詢的方式去多問幾個封包。
由於作者的應用程式是使用 non-blocking 的方式去讀寫封包,所以預設的方式是沒有辦法使用的。而該應用程式又是使用 epoll 來進行底層封包的讀寫。 epoll 於 kenel 4.12 後正式支援 busy polling 的方式,所以這部分就沒有太大的問題。文章中有滿多關於 busy_poll 的一些參數調整。
將這兩個機制給整合後,整體的效能提升達到 28%,從 834k req/s 到達 1060k req/s,同時 99%的 latency 也從 361μs 下降到 292μs.
同時這兩個機制導入後,整個系統每秒產生的硬體中斷數量也從 183k 降到 16k。 Context switches 的數字也從 6k 下降到 1k 左右。
下篇文章會繼續從剩下的三個最佳化策略繼續介紹
https://talawah.io/blog/extreme-http-performance-tuning-one-point-two-million/
同時也有335部Youtube影片,追蹤數超過6,420的網紅Nerine Good days.,也在其Youtube影片中提到,Hello, Have a nice day. #ステサバ 🌟#Rally系 🌟#適度に色々 🌟#雑談配信もしてます まれに、上記にないゲームもやります。ラジオ配信もまれに行います。 サブchでは、気ままに好きな様にやってます。 ※使用ハンコン:Logicool G923 ※下手プレーにつき、...
「extreme switch」的推薦目錄:
- 關於extreme switch 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於extreme switch 在 Facebook 的最佳貼文
- 關於extreme switch 在 流動日報 NewMobileLife.com Facebook 的最佳解答
- 關於extreme switch 在 Nerine Good days. Youtube 的精選貼文
- 關於extreme switch 在 Nerine Good days. Youtube 的最佳解答
- 關於extreme switch 在 Nerine Good days. Youtube 的最讚貼文
- 關於extreme switch 在 Extreme Networks - YouTube 的評價
- 關於extreme switch 在 Extreme Networks - GitHub 的評價
- 關於extreme switch 在 Extreme Networks - Home | Facebook 的評價
extreme switch 在 Facebook 的最佳貼文
我的Workspace 1.5版本
這應該是成2.0版本前的過渡時期
主要是想換張桌子把桌面顏色換淺色的
還有螢幕會升級成49吋的曲線螢幕
Macbook Pro賣掉本來要購買最後一代Intel iMac
不過後來M1出來
已經訂了M1 Mac mini
還有更換機械鍵盤
這篇主要是回答很多人私訊問我桌面上一些配備及備份硬碟問題
我有3台備份的硬碟
👾WD 8TB Raid - 這台正出售 (一開始主要都是把所有照片都丟到裡面)
👾Laice 16TB - 我超愛這台!主要是把修改好的或是原本的RAW檔,及一些公司文件備份用。
👾Synology DS1019+ NAS - 這台是我個人雲端,我會把工作的檔案上傳到這給客戶下載,或是所有生活照片上傳到這裡,讓我家人或是我自己可以隨時透過手機瀏覽照片。
目前裝2顆硬碟 12TB x 2
-
再來是工作碟也有3個
👾SanDisk Extreme PRO行動固態硬碟 1TB - 這基本上是我每次拍攝完就把RAW丟裡面,接著電腦修圖。
👾SANDISK EXTREME PRO USB 3.1 256GB - 這用了兩年都非常滿意體積小又沒有線,只可惜不是Type C。
👾WD My Passport SSD 256GB - 這是SSD外接硬碟剛出的時候買的,我覺得速度上也是堪用!
-
BenQ EX2780Q - 這台27”娛樂銀幕使用一年都很滿意(影音娛樂效果佳),有想過在買一台一樣的做雙螢幕,不過經過研究好像49吋爽度會更好 XD 49”LG那台很有機會。
Logitech Craft - 這鍵盤非常不推薦,本來自訂是要給專門使用Lightroom跟Photoshop的鍵盤,不過非常不好使用。打算更換青鍵的機械鍵盤(目前考慮Keyvhron 65%或是IQUNIX F96。
Logitech MX Master 3 0 - 他們家的滑鼠用了有20年,每一款高端滑鼠都很棒。現在用的這款超推薦。
Macbook Pro 15” - 正在出售中,建議不要再買Intel版本的Apple電腦。
iPad Pro 256g - 應該是今年很喜歡的一樣產品,在這一兩個月Macbook Pro跑得太慢,我都用直接把記憶卡接在iPad上用Lightroom或Photoshop修圖。
以300張照片為例從修圖到輸出iPad大概快了60-70分鐘。,每一次工作時間都可以少一小時左右。
Superhub 多合一充電集線轉接器 - 這個神器真的對我這種喜歡setup的人非常方便,可充電也可接Switch,後來這Superhub也變成我在外面教學時接著iPad再轉接到投影使用。
DJI Pocket- 因為打算錄製影片也正在學習,目前才使用幾次還不方便講評,不過使用上的流暢度及操作非常適合初階使用者。
(最後一張是V 1.0版本)
extreme switch 在 流動日報 NewMobileLife.com Facebook 的最佳解答
要買記憶卡的朋友可留意!
extreme switch 在 Nerine Good days. Youtube 的精選貼文
Hello, Have a nice day. #ステサバ
🌟#Rally系 🌟#適度に色々 🌟#雑談配信もしてます
まれに、上記にないゲームもやります。ラジオ配信もまれに行います。
サブchでは、気ままに好きな様にやってます。
※使用ハンコン:Logicool G923
※下手プレーにつき、お見苦しい所ありますけど、温かい目でよろしくお願いします(笑)
※Live配信後に残る動画は「アーカイブ」となってます。後に、動画になるかも!です
尚、サブチャンネルでは、好き勝手やってます💦
--------------------------------------------------------------------------------------------------
使用するハード一覧
★ PS4®Pro ★switch ★steam ★Epic Games
------------------------------------------------------------------------------------------------------
[配信環境]
Support the stream OBS
▼audio-technica AT2020
▼AVerMedia Live Gamer EXTREME 2 GC550 PLUS [4Kパススルー対応 ゲームキャプチャーボックス] DV482
▼Razer Kraken Ultimate 7.1 ゲーミングヘッドセット
▼Logicool ゲーミングマウス G403h
▼HyperX Alloy FPS Pro ゲーミングキーボード
▼モニター[BenQ] 3画面。
------------------------------------------------------------------------------------------------------
▼配信POS Windows 10 Home 64ビット
CPU インテル Core i9-9900K
グラフィック GeForce RTX 2080 8GB
メモリ 32GB TEAM DDR4 3200Mhz PC4-25600
SSD 1TB
HDD 4TB
-------------------------------------------------------------------------------------------------------
▼ゲームID一覧▼
steamフレンドコード:1132364245 【nerine817】
Discord:Nerine k #6469
PS4:ID (Nerine_MiX_Life)
★switch ID SW-5313-7467-2125
extreme switch 在 Nerine Good days. Youtube 的最佳解答
Hello, Have a nice day.
🌟#Rally系 🌟#適度に色々 🌟#雑談配信もしてます
まれに、上記にないゲームもやります。ラジオ配信もまれに行います。
サブchでは、気ままに好きな様にやってます。
※使用ハンコン:Logicool G923
※下手プレーにつき、お見苦しい所ありますけど、温かい目でよろしくお願いします(笑)
※Live配信後に残る動画は「アーカイブ」となってます。後に、動画になるかも!です
尚、サブチャンネルでは、好き勝手やってます💦
--------------------------------------------------------------------------------------------------
使用するハード一覧
★ PS4®Pro ★switch ★steam ★Epic Games
------------------------------------------------------------------------------------------------------
[配信環境]
Support the stream OBS
▼audio-technica AT2020
▼AVerMedia Live Gamer EXTREME 2 GC550 PLUS [4Kパススルー対応 ゲームキャプチャーボックス] DV482
▼Razer Kraken Ultimate 7.1 ゲーミングヘッドセット
▼Logicool ゲーミングマウス G403h
▼HyperX Alloy FPS Pro ゲーミングキーボード
▼モニター[BenQ] 3画面。
------------------------------------------------------------------------------------------------------
▼配信POS Windows 10 Home 64ビット
CPU インテル Core i9-9900K
グラフィック GeForce RTX 2080 8GB
メモリ 32GB TEAM DDR4 3200Mhz PC4-25600
SSD 1TB
HDD 4TB
-------------------------------------------------------------------------------------------------------
▼ゲームID一覧▼
steamフレンドコード:1132364245 【nerine817】
Discord:Nerine k #6469
PS4:ID (Nerine_MiX_Life)
★switch ID SW-5313-7467-2125
extreme switch 在 Nerine Good days. Youtube 的最讚貼文
Hello, Have a nice day.
🌟#Rally系 🌟#適度に色々 🌟#雑談配信もしてます
まれに、上記にないゲームもやります。ラジオ配信もまれに行います。
サブchでは、気ままに好きな様にやってます。
※使用ハンコン:Logicool G923
※下手プレーにつき、お見苦しい所ありますけど、温かい目でよろしくお願いします(笑)
※Live配信後に残る動画は「アーカイブ」となってます。後に、動画になるかも!です
尚、サブチャンネルでは、好き勝手やってます💦
--------------------------------------------------------------------------------------------------
使用するハード一覧
★ PS4®Pro ★switch ★steam ★Epic Games
------------------------------------------------------------------------------------------------------
[配信環境]
Support the stream OBS
▼audio-technica AT2020
▼AVerMedia Live Gamer EXTREME 2 GC550 PLUS [4Kパススルー対応 ゲームキャプチャーボックス] DV482
▼Razer Kraken Ultimate 7.1 ゲーミングヘッドセット
▼Logicool ゲーミングマウス G403h
▼HyperX Alloy FPS Pro ゲーミングキーボード
▼モニター[BenQ] 3画面。
------------------------------------------------------------------------------------------------------
▼配信POS Windows 10 Home 64ビット
CPU インテル Core i9-9900K
グラフィック GeForce RTX 2080 8GB
メモリ 32GB TEAM DDR4 3200Mhz PC4-25600
SSD 1TB
HDD 4TB
-------------------------------------------------------------------------------------------------------
▼ゲームID一覧▼
steamフレンドコード:1132364245 【nerine817】
Discord:Nerine k #6469
PS4:ID (Nerine_MiX_Life)
★switch ID SW-5313-7467-2125
extreme switch 在 Extreme Networks - GitHub 的推薦與評價
Extreme Networks. Extreme Networks has 46 repositories available. Follow their code on GitHub. ... <看更多>
extreme switch 在 Extreme Networks - Home | Facebook 的推薦與評價
Extreme Networks delivers end-to-end, cloud-driven networking solutions and top-rated services and support to advance our customers' digital transformation ... ... <看更多>
extreme switch 在 Extreme Networks - YouTube 的推薦與評價
Extreme Networks, Inc. (EXTR) creates effortless networking experiences that enable all of us to advance. We push the boundaries of technology leveraging ... ... <看更多>