本文延續前篇效能校正的經驗談,上篇文章探討了關於Locality與中斷中可以最佳化的部分,。本篇文章將繼續剩下最佳化步驟的探討。
The Case of the Nosy Neighbor
從前述最後的火焰圖中,作者觀察到幾個跟網路有關的 kernel call,譬如 dev_queue_xmit_nit 以及 __netif_receive_skb_core 等有可能有成長的空間,於是輾轉前往這邊去研究。
作者觀察到 packet_rev 這個函式有不少的比例,而該函式的意思是有人嘗試透過使用 AF_PACKET 等方式開啟了 RAW socket 來處理封包。透過 ss 這個指令,作者觀察到系統中有其他的應用程式透過 AF_PACKET/SOCKET_RAW 也在處理封包,最後輾轉發現原來是系統上的 dhclient。
DHCP Client 必須要在系統有 IP 以前就有收送封包的能力,所以使用 AF_PACKET 也滿合理的。作者思考是否有辦法可以讓 DHCP Client 拿到 IP 之後就關閉 AF_PACKET,改使用純 UDP 的方式來進行後續的 DHCP Renewal 功能,可惜這個方向沒有辦法達成。
根據 AWS 的官方文件,當一個 IP 被分配到一個機器後,這個 IP 會跟該機器同生死,因此這種情況下 其實不需要透過 DHCP Renewal 來反覆取得 IP,只要取得一次 IP 即可。
作者變修改相關腳本,當 DHCP 取得 IP 後關閉 dhclient,此外還必須要記得去修改網卡層級關於該 IP 的記憶,預設期間是一小時,作者將其修改為永遠。
透過這樣簡單的設定,整體的效能又再度提升了 6%,從 1.06M req/s 提升到 1.12M req/s
The Battle Against the Spin Lock
作者陳述自己花了非常多時間與 Spin Lock(作者心魔的大白鯨) 奮戰,幾乎是茶不思飯不想的滿腦都在思考如何加速,然後再經歷過反反覆覆的失敗後,作者最後決定還是要寫出一些關於 Spin Lock 的嘗試與研究心得,算是一個很精彩的踩雷心得。
這部分的篇幅很長,而且內容也滿深的,最後的解決方式也只有提升 2%左右的效能,所以對這部分有興趣的讀者再自行閱讀囉
This Goes to Twelve
終於來到最後的最佳化步驟了,這個步驟中的範疇都只能勉強壓榨出些許的效能,包含了關閉 GRO, TCP壅塞控制以及靜態中斷處理。
(Generic Receive Offload)GRO 是一個網路相關的功能,目的是用來將 Kernel 層級的封包給聚合起來變成一個大封包,而 Kernel 收到這個封包後會把該大封包重新組合變成本來的小封包,對於使用者的應用程式來說不會有任何感覺,但是對於整體的封包傳輸來說能夠節省花費的並提升效能。大部分情況下這個功能都是開啟的,Amazon Linux 2 預設也是打開這個選項。
然而針對作者的測試情境,由於所有的封包基本上都是同一條連線且資料量也不大,因此 GRO 雖然可以帶來聚合的效果,但是也會拖延封包進入到 Linux Kernel Network Stack 的時間點,因此開啟 GRO 帶來的好處沒有很大。
TCP 壅塞控制有不同的演算法,Amazon Linux2 內建兩種演算法 Cubic 以及 Reno,除此這兩個之外常見的還有 Google 多年前貢獻的 BBR。根據作者測試,其實驗環境中有比較好效能的則是 Reno
註: 不同算法針對不同應用場景,所以要切換演算法前要先釐清自己的應用情境以及用哪種演算法比較合適。
全部零零總總的修改後提升了 4%,整體的效能服務來到了 1.2M reqs/s
這篇文章真的很長,有些最佳化的方式是針對該應用場景而特別去使用的,這也意味者並非所有的修正方式都可以套用到各位的應用程式。
本篇文章還是很值得一讀,整個分析的思路與想法都非常有趣,雖然不一定用得到但是也許未來有一天會有機會使用。
https://talawah.io/blog/extreme-http-performance-tuning-one-point-two-million/
「gro意思」的推薦目錄:
- 關於gro意思 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於gro意思 在 US Taiwan Watch: 美國台灣觀測站 Facebook 的最讚貼文
- 關於gro意思 在 深度西班牙 Facebook 的最佳解答
- 關於gro意思 在 [Live] gro - 看板FORMULA1 - 批踢踢實業坊 的評價
- 關於gro意思 在 gro意思、GRO oil在PTT/mobile01評價與討論 - 露營資訊懶人包 的評價
- 關於gro意思 在 gro意思、GRO oil在PTT/mobile01評價與討論 - 露營資訊懶人包 的評價
- 關於gro意思 在 Gro Store - Home | Facebook 的評價
gro意思 在 US Taiwan Watch: 美國台灣觀測站 Facebook 的最讚貼文
美國總統川普於4月14日宣布,將「暫停」(halt)給予世界衛生組織(WHO)的經費,直到調查結果出爐。美國每年大約編列4-5億美元,佔世衛預算的15%左右。注意,halt是暫時凍結的意思,主要意味是給予警告和施壓。halt並不是撤回,也不是取消。
依本站習性都會把文章寫太長,我們先簡單列幾點摘要:
1、川普的大動作批判中國和世衛,當然是有「轉移焦點」的目的在。因為美國疫情失控,而把責任歸在世衛(和中國)身上。
2、世衛當然是必須要為全球疫情失控負責任,這也是毫無疑義。世衛的失職主要是對中國的資訊照單全收,不過,世衛組織失去威望由來已久(而且又是跟中國有關),冰凍三尺非一日之寒。
3、美國這幾年來對於中國觀點的辯論,以及政治意見的「兩極化」,也是造成這波疫情爆發、政府反應緩慢的主因之一。
以下讓我們稍微多談一些。
▍1、川普轉移焦點
美國聯邦政府雖然啟動防疫的時間不算晚,但是在決策上反覆,也無力解決聯邦和地方之間的矛盾,加上川普決策風格一向都不太尊重專家,所以好幾點因素加起來,導致美國疫情大爆發。(例如華郵這篇報導的整理:https://pse.is/QVAFX)
從美國各地的確診數目和死亡人數來看,疫情是完全失控的,所以川普當然是需要做一些可以轉移焦點或是將責任推給別人的事情。世衛看起來是主要目標之一(也的確是因為世衛責任重大)。先前川普曾經主打中國為目標(主要是回應中國外交部把病毒起源講說是美國陰謀論),最近幾天比較少,但以他多變的個性來看,之後怎麼樣還很難說。
(台灣人們每天看著陳時中部長們的團隊,按著耐心解釋記者們大大小小的問題,然後還戴粉紅色口罩回應小朋友的性別偏見,應該很難想像川普每天開記者會然後跟記者吵架……)
▍2、世衛失職
關於世衛如何失職,已經有很多篇優秀的專題報導,例如英國衛報的這篇:https://pse.is/RL5EH。
這裡我們很簡單地摘要一下。
世衛當然是非常重要的國際組織,疾病是無國界的,需要各國共同努力對抗。從成立以來,世衛最大的成就包括消滅天花、黃熱病和對抗重大傳染病等等。然而,它常被批評太官僚、反應太慢。
1998年,前挪威總理布朗蘭(Dr Gro Harlem Brundtland)當選祕書長,她是位非常有影響力的祕書長,努力於建立建立廣泛的人脈,醫療支持和通報系統。
2002 - 2003左右遇到SARS爆發,當時WHO的預警系統很快,而且祕書長一直叫中國公布資訊,旅行禁令很快頒布,即使很多國家認為這樣會影響經濟,但祕書長很堅持原則。
WHO最大的缺陷就是對各國的約束力很低,就算各國不理會WHO建議,也不會怎麼樣。事實上,各國往往也會對於那些要關閉邊界、頒布旅行禁令等方式感到反感,因為會影響經濟。先進國家尤其反對世衛的一些預防傳染病而加強邊界管理的措施。所以祕書長的態度和手腕就非常重要,布朗蘭是位以個性鮮明著稱的外交家和政治家,她面對傳染病的態度就是要「超前佈署」。在SARS危機中她不斷呼籲中國「let us come in as quickly as possible!」也因為如此,各國也很快動起來。
然而,這個很有自信、很快速行動的WHO,到了陳馮富珍(中國香港籍)於2007年接任祕書長之後就慢慢改變了。
一方面是因為經費不斷下降,一方面是她想要把WHO當成一個「非政治」(apolitical)的詢諮機構,所以面對危機往往反應很慢,不願意宣布成緊急事件和流行病。她認為,各國應該要為自己國民的健康狀況,擔負更多的責任,而非由國際組織來進行。
2014伊波拉病毒的爆發,完全曝露出世衛在這樣子領導風格下的大洞。WHO不再像以往那樣子積極面對危機,也不再堅持原則。伊波拉病毒危機,後來是由美國和幾個國家佈署軍事人員進去幫忙。總共死亡人數超過一萬人,而且集中在幾內亞、賴比瑞亞、獅子山等國家。後續影響包括多國的醫療系統大崩潰,以及世界的恐慌。
從伊波拉病毒危機當中可以看到,世衛對自身的組織能力、威望、認知,幾乎已經完全失去了當年SARS事件當中的那個積極的世界公共衛生健康守護者的角色。
而在這次的新型病毒(俗稱武漢肺炎)爆發當中,中國在最初的兩週,明明已知新型病毒在傳播,世衛卻幾乎什麼都沒做。中國12月31日知道狀況,但一直到1月12日才公布訊息,而且從一開始的數目就完全錯誤。
1月中,中國拒絕WHO派人到武漢。1月28日,譚德塞和習近平見面,然後稱讚中國做得很好。1月30日,世衛拒絕宣布緊急事件。2月8日,中國才同意WHO派人去看。2月底,世衛專家團去中國考察完,說中國做得非常好,專家團(就是接受專訪聽到台灣就斷線的那位)說一切都在控制之中。
英國衛報下了一個小結:「譚德塞從來沒有做過任何一件,可以等同於當年布朗蘭敦促中國做的事」(Tedros has never come close to doing what Brundtland did and calling China out.),而這造成了全球疫情大爆發。
接下來衛報的報導花了一段篇幅談譚德塞過去從政的紀錄。簡單來說就是爭議不斷,受到衣索比亞人民的抗議不斷。這邊我們就先省略。
然後談到的是,國際政治、各國的國內考量,本身也是造成危機的原因。世界各主要大國其實已經對國際組織失去信任、且不用心經營許久。
大家愈來愈不理會WHO,也愈來愈不捐錢讓WHO做事,然後又不理會WHO的意見。例如在這次,即使譚德塞在拖延許久之後好不容易宣布了全球緊急狀態(emergency),然後後來又宣布全球大流行(pandemic),目的是要叫各國趕快行動,但很多國家置之不理。
所以說,現在這樣的狀態就是一個長久以來的累積。世界各國對國際組織不太用心,而國際組織本身又有許多失職之處,兩者就互相影響並加深原有的洞,洞就愈來愈大。
▍3、美國政治環境的兩極化
文已經有點太長了。最後我們就稍微再講一下就好。川普上台後大力改變美國對中政策,傳統上比較親中派、國際建制派的人們,多半傾向大力反對太「激烈」的改變。但因為川普本人風格鮮明,且言行太多爭議之處,也讓美國政治氣氛愈來愈極化。到底要不要相信世衛、到底要不要相信中國,這樣的議題往往就變成挺川與反川之間的口水戰,而失去了認真討論的空間。一切就變成大混戰。
對台灣來說,這其實是很傷腦筋的事。台灣議題固然有獲得許多跨黨派人士的支援和聲援,但在輿論反應方面,幫台灣講話的立場最堅定、最頻繁的人們,卻也是美國一般認為最保守、最鷹派,也往往不乏爭議的人物(例如Fox電視台的主持人)。
不過,在立場鮮明的自由派媒體上(例:The Atlantic),近來也已經有愈來愈多篇文章跟大家說,不要因為反川而站到中國的一方,不要因人廢言而否定川普對中國的攻擊等等。但是,主流的、多數的自由派媒體和重要政策圈菁英們的看法,似乎是有點因為川普的激化而更加極化。對自由派來說也是有些進退維谷,因為批評川普之餘,很容易就變成站在中國那一方。川普剛宣布的暫停經費原因是:世衛給予全世界錯誤的資訊。這本身應是事實無誤,但因為是川普講的,接下來大概也會有不少的反作用力。
這就是當今疫情爆發之下的美國政情奇特之處。
承上,最後再講一點跟「庶民」們比較相關的。許多美國保守派人士對少數族裔相對比較不友善,而自由派/進步派陣營們,為了減少歧視的現象,往往會比較要求「政治正確」,避免歧視用詞,當然也要避免攻擊中國,他們的目的是要減少對「亞洲人」的歧視。在加州這樣子自由派大本營長大的林書豪,他在這波疫情當中發表的觀點就是這類的代表。
在台灣的人們必須要了解為什麼在美國的台裔、華裔人士會把焦點放在反歧視。這也是美國政治和社會的特別脈絡。他們反對攻擊中國不是出於國安和地緣政治上的理由,而是出自自身成長經驗。
不過大家也是要很小心解讀各種言論,因為「中共」的論述方式往往是把攻擊中共直接等同於攻擊中國人、亞洲人,然後叫大家不要歧視。這種辯解方式最新力作就是像譚德塞那樣,把人們對他的失職上綱到「種族主義攻擊」。再講白一點,呼籲反歧視是應該的,但在人們指責中國做錯事時講說這叫做歧視或反中,是完全錯誤的。
*本文和 菜市場政治學 專頁聯播
gro意思 在 深度西班牙 Facebook 的最佳解答
Logroño,西班牙北部一個美麗的小城,至今仍無緣造訪,但我得先深深向當地居民致歉。
因為,我家的笨蛋小兒,講話含糊懶惰,皮卡丘變「卡秋」,「艾莉西亞」只說「西亞」,昨天當新聞提到Logroño時,他就很開心地複誦:
Coño!😳😳😳😳😳😳(這是我跟外子的臉)
Coño是啥?是女性私處的意思喔~
發現不對勁,我們夫妻立馬開始矯正發音
Lo~gro~ño, Logroño
小兒依舊歡快清脆答曰:Coño!
看來,到這孩子西文發音正常化以前,我們還是不能去造訪Logroño😆😆
gro意思 在 gro意思、GRO oil在PTT/mobile01評價與討論 - 露營資訊懶人包 的推薦與評價
GRO oil、gro意思、GRO oil在PTT/mobile01評價與討論,在ptt社群跟網路上大家這樣說. 在GRO oil這個討論中,有超過3篇Ptt貼文,作者shengachris也提到: : 出大事啦: ... ... <看更多>
gro意思 在 gro意思、GRO oil在PTT/mobile01評價與討論 - 露營資訊懶人包 的推薦與評價
GRO oil、gro意思、GRO oil在PTT/mobile01評價與討論,在ptt社群跟網路上大家這樣說. 在GRO oil這個討論中,有超過3篇Ptt貼文,作者shengachris也提到: : 出大事啦: ... ... <看更多>
gro意思 在 [Live] gro - 看板FORMULA1 - 批踢踢實業坊 的推薦與評價
很乖
吃上香腸
記得要回去撞爛保麗龍
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.203.59 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/FORMULA1/M.1601209742.A.092.html
還出動VSC清保麗龍= =
※ 編輯: Ofianse (140.113.203.59 臺灣), 09/27/2020 20:31:20
... <看更多>