人生小成就達成:應用程式部署在單台 VM 上,扛住了 C1K rps,CPU 使用率及 RAM 使用率僅 36.47% 及 9.65%。
_
這台 VM 的規格是 GCE N2-Standard-4,看來即使降成 N2-Standard-2 也還是綽綽有餘。
同時也有1部Youtube影片,追蹤數超過1,770的網紅まろん&たらみ marronrabbit,也在其Youtube影片中提到,約20分30秒の動画です。 【SUZURI オリジナルイラストグッズ販売中】 https://suzuri.jp/marronrabbit 【Instagram アレルギっ子のお弁当と映えない日々の写真と愚痴ストーリー】 https://www.instagram.com/marronrabb...
rps程式 在 矽谷牛的耕田筆記 Facebook 的精選貼文
今天要來跟大家分享一個單一節點如何提高應用程式吞吐量與服務能力的方式
這個方式主要探討的是應用程式對於網路連線的 I/O 模型,試想一個常見的使用範例。
一個主要的 Process 會去聽取一個固定的 port number (ex port 80),並且通知後面眾多的 worker 來幫忙處理這些封包連線,而這些 worker 的工作就是處理連線。
整個架構中是一個 1 v.s N 的狀況, 一個負責 Listen ,N個負責處理連線內容
而今天要分享的則是想要讓架構變成 N v.s N 的狀況, 會有 N 個 Process, 每個 Process 配上一個 Worker。
而這 N個 process 同時共享一樣的 Port (ex, port 80)
這種情況下可以減少多個 worker 共享一個 listen socket 時的各種保護機制,取而代之的則是每個 listen socket 配上一個專屬的 worker 來處理。
要達成這樣的架構非常簡單,只要透過 SO_REUSEPORT 這個 socket option 告
訴 Kernel 當前這個 PORT 可以重複使用。
當封包送到 kernel 後則是由 kernel 幫你分配封包到所有使用相同地址的 Listen Socket (Process)
根據 nginx 官方文章的測試,這種架構下對於 RPS (Request per second) 有顯著的提升,有興趣的可以看看下列兩篇文章
參考文章:
- https://blog.cloudflare.com/the-sad-state-of-linux-socket-balancing/
- https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/
rps程式 在 まろん&たらみ marronrabbit Youtube 的最佳貼文
約20分30秒の動画です。
【SUZURI オリジナルイラストグッズ販売中】
https://suzuri.jp/marronrabbit
【Instagram アレルギっ子のお弁当と映えない日々の写真と愚痴ストーリー】
https://www.instagram.com/marronrabbit/
【Twitter YouTubeお知らせ用アカウント】
https://mobile.twitter.com/rabbitarami
【LINE LIVE たま〜にやるつもり】
https://live.line.me/channels/4056653
【TikTok 踊りません】
http://vt.tiktok.com/JSajex/
【Amazon このリンクから買ってね】
https://amzn.to/2YXB4vQ
【Amazon wishlist 好きなものがわかります】
https://amzn.to/2UBnfk6
【サブチャンネル 登録者増えたら使う所存】
https://www.youtube.com/channel/UCFowGJJpxxBbMMQiYhN1lZw