Mark Ku's Blog

事件

2023年的美國時間黑色星期五,一早被 Call 了起來,運營在網站折扣給到 400~650美金,瞬間湧進大量的人,每秒都有人下單,訂單量是平常的XX倍以上,網站加載頁面後後無法正確在redis 拿到即時庫存,導致畫面卡死在加載從 Redis 拉取庫存時顯示的 Loading 按鈕上,造成了用戶正確加入購物車。 image

分析問題

經過調查發現 3台Redis 同步異常,分析硬體效能後發現這三台 Redis slave 容器在一台巢狀的 Hyper-v host中 ,依序檢檢查CPU 、記憶體、硬碟IO、且共用一張網卡,Windows Host 被分配的記憶體只有16G ,Docker Desktop 最高只有 8GB的記憶體可以使用,且使用率都是接近滿載,推測記憶體資源不足是導致同步異常的主因,最後把那台的 Host裡的 Redis 容器實體關掉一個,讓 Host 資源能能夠被充份使用。

image
image

解決方案

短期

  • 關閉一個實體,讓Host 能被正常使用
  • 加大記憶體

中期

  • 用Nginx 替換掉很浪費硬體資源的巢狀 Hyper-v
  • 調整 Redis 緩存淘汰機制設定,沒有用到的要將期釋放。

長期

  • 可以考慮採用Redis Cluster ,透過分片。
  • 用 linux 容器替代 Windows Server
  • 導入 K8S 自動部署、擴展和管理容器化應用程序的系統。

參考

作者

Mark Ku

10 年以上的軟體工程師,做過北美電商與 AI SaaS 訂閱收費系統。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可。

站長的公司

Vibe Coding 架構規劃與陪跑

團隊已經用 AI 做出小工具,卻怕壞了沒人修、需求一變就不敢改?226 Network 幫你把程式放進 Git、密碼另外保管、排程搬上固定主機,再補上交接文件與測試。

熱門文章

View all
Mark Ku
··631

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··471

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··265

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··216

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··208

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··207

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調