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 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

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

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

留言

訂閱電子報

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

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

熱門文章

View all
Mark Ku
··604

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

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

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

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

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

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

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

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

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

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

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

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