ref: https://lwn.net/Articles/853637/
如果對 SO_REUSEPORT 這個能夠提供網路服務吞吐量的 socket options 不陌生的話,那這篇文章強烈推薦看看。
本篇文章是從討論開啟 SO_REUSEPORT 這個選項會出現的一些行為以及可能可以怎麼做
最直得看的應該是留言區本身,有很多不同層級的討論,大家最愛講的 Google SRE 人也都出來分享自己的經驗了。
正常情況下,每個 TCP Port 只能被一個 process 給使用來聽取封包,但是對於一些網路重度使用的系統來說,就算讓該 process 將連線給分散到其他的 process 去處理,該 process 依然可能是系統的效能瓶頸。
Linux Kernel 3.9 後引入的 SO_REUSEPORT 參數就是為了解決這個效能問題而來的,這個參數允許多個 Process 同時使用一個 TCP Port,每當底層有一條新的連線請求時, Kernel 會從眾多的候選人之一中挑選一個可用來處理。
這種情況下,網路應用程式就可以專心處理連線工作,然後實務上同時執行多個 Process 即可。底層的 Kernel 會幫忙做連線的負載分配。
當眾多候選 process 其中之一掛掉了(可能是 crash,也有可能是有意的重啟), kernel 會注意到這個候選人要說掰掰,這候選人處理的所有 connection 都會被移除,比較糟糕的是其他待在 Accept-Queue 那些還沒被建立連線的連線請求也會一併被移除。
作者認為 Kernel 應該要有能力可以轉移那些 Accept-queue 中的連線到其他還工作的候選 process 下去處理,這樣使用者/Client 的連線就不會需要處理太多重連的問題。
文章後面都在探討可行的做法以及這個問題可能會導致什麼問題。
留言區滿熱鬧的,譬如說
1. 有人認為 server 重啟的情況實在太少見,有需要為這麽少見的情況導入這麼複雜的修改到 Kernel 中?
a. 有人回答使用 Let's Encrypt 你可能每幾週就要重啟一次。
b. Google SRE 回答其內部因為調整設定的緣由,幾乎無時無刻都需要重啟服務,不過這問題已經從別的層級去處理掉,所以修改 Kernel 對他們的用途不太大。
2. 有人提出 Nginx 本身有 live migration 的功能,可以將 fd 給轉移到其他的 process 去處理。
a. 有人提出這邊談的是 socket/connection 的層級,這些東西都還沒發生到 userspace process 同時也不是 userspace 應用程式可以接觸處理的。
b. 本文探討的是 bind(), accept(), listen() 這類型 function call 之間 kernel 會幫忙做的事情。
有興趣的別忘了閱讀留言區
port a移除 在 矽谷牛的耕田筆記 Facebook 的最佳解答
今天這篇文章要來跟大家分享幾個好用的小工具,能夠增加開發人員與維運人員日常工作的效率
Lens 這套工具提供一個基於 GUI 介面的 Kubernetes 管理工具,如果你需要同時管理多套 Kubernetes 叢集,那使用這類型的工具可以幫助你更快速的進行日常工作。類似的專案還有知名的 k9s 等。
我認為這類型專案提供最大的好處就是當 Pod 內有多個 containers 時,這時候不論是log或是exec都需要用 -c 去指定特定的 container。使用原生的 kubectl 很大的問題是有時候根本不記得這些 container 的名稱,都需要用額外的指令去掃出相關的名稱。使用這類型的工具可以很快速地檢視有哪些 container 並且進行後續處理,甚至連 init-container 都可以方便觀看
CLI 工具系列包含大家常見的 kubectx, kubens 及 krew 打造的 plugin 管理系統外,還有 kubectl-neat, kube-no-trouble 等
其中 kubectl-neat 也可以整合到 kubectl 指令中,其目的是透過 kubectl get 可以得到當初真正部署的資源樣貌,幫你移除那些由 controller 動態加入的欄位,譬如 creationTimestamp 等
kube-no-trouble 則是幫你掃描是否有使用到任何被標示為 deprecated API,升級 Cluster 運行此工具進行檢查可以避免升級後有些資源不能使用而造成應用程式損毀。
Kube Forwarder 是一個GUI工具,如果你平常工作非常仰賴 kubectl port-forward 的話,推薦使用看看這個工具,可以幫助你管理多個 kubectl port-forward 的設定,特別是當你要針對多套 k8s cluster 不停切換時,使用這個工具會幫你減省不少時間。
文章中還有探討一些安全性相關的工具,譬如 Polaris, Kube-hunter, Kube-bench, Trivy, Goldlocks 等。有興趣的人閱讀全文並且根據需求去嘗試看看囉
https://yitaek.medium.com/useful-tools-for-better-kubernetes-development-87820c2b9435
port a移除 在 有個禮物叫血癌 Facebook 的最讚貼文
#人工血管Port-A
#賣肉不賣身XDD
記得2019年5月,剛做完人工血管時
手不舉,也不敢亂動,一動就會痛
一直覺得身上多了什麼東西很不習慣
過了4.5天後,左邊鎖骨下置入注射座的地方才開始慢慢不痛
到了現在如果沒有住院,我反而常常忘了它的存在
有人說裝人工血管後,有很多動作或運動不能做
我自己是大概手術3個月後開始運動打桌球,剛好裝在非慣用手
所以影響不大
裝完接近半年時,也開始有下水游泳🏊♂️🏊♂️🏊♂️
最使用手臂的像自由式,蝶式也照划不誤~沒有不適感,或安裝座移位的情況
倒是手還沒酸,體力就先不堪負荷累了...
8個月後後跑去泡溫泉也OK,直接浸到脖子也沒問題~
原本擔心可能會有什麼感染發燒,都沒發生還好
唯一我比較注意的,可能就是左手盡量不提重物
像抱我女兒(超級重物...)就使用非手術的那隻手
觀念是要活就要動,適度就可
病友們別因為有了人工血管就失去原本自己熱愛的運動喔!
=
植入式人工血管(圖示取自家天使網站)
在住院有靜脈注射時,每7天要換外接針頭
出院沒有上針時,每2個月要回沖通一下管路(這個月知道的XD)
感謝這個發明,讓血液疾病的病人,少戳很多針
手被上針,連洗個手都不方便吶~
#以上是我的經驗請斟酌自身情況喔
如芽細胞穩定2年後,醫生才會考慮再次手術移除人工血管
到時再來發一篇「拔管公告」!
P.S.保險有買手術險的,只有裝的時候會賠
移除手術就不會再理賠了喔~