StackOverflow 一個程式設計問答網站的架構

了解由來看一下 WIKI

  1. 流量排名世界第 54
  2. 110 個網站 (一個月成長 3~4 個)
  3. 4 百萬個用戶
  4. 8 百萬個問題
  5. 4 千萬個問答
  6. 5 億 6 千萬個瀏覽數 (一個月)
  7. 尖峰時刻 2600 ~ 3000 request /sec
  8. 只有 25 台 server 運作
  9. 大部份使用微軟的產品架構
  10. 沒使用雲端服務,因為會托慢速度,且難維護與最佳化
  11. SQL Server 為 384 GB RAM 與 2TB 的 SSD (intel 710)
  12. 每台 server 基本為 320 GB SSD x2 作 RAID1 (intel 330) 或 RAID10
  13. 也有用 ElasticSearch (300 GB SSD) (intel 520)
  14. 40:60 read-write ratio
  15. DB server 平均 10% CPU 負載
  16. 11 個 web server 用 IIS
  17. 2 load balancers , 1 active , 用 HAPorxy 架設的
  18. 4 台 SQL server nodes
  19. 3 台 server 專作 tag engine
  20. 3 台 server ElasticSearch
  21. 2 台 server 用 Redis 作 cahce
  22. 2 Networks (each a Nexus 5596 + Fabric Extenders)
  23. 2 Cisco 5525-X ASAs (think Firewall)
  24. 2 Cisco 3945 Routers
  25. 2 台 server 專作只用來讀取的 SQL server,及 API
  26. Stack Exchange 自行建置一個 Opserver https://github.com/opserver/Opserver 用來監控 servers、SQL clusters/instances、redis、elastic search、exception logs、haproxy、etc…
  27. 整體真正使用到的 CPU 資源合起來只有 5 台,資料庫則 10%,為何這麼低,因為資料皆在 384 GB 的 RAM 裡運算,而 web server 10~15% CPU 資源使用
  28. 主要機房在 New York,備援機房在 Oregon (兩個機房皆有互相備援)
  29. 每個網站皆獨立一個資料庫, Net York 機房裡每個叢集裡面有一台寫入一台唯讀,在 Oregon 則一台唯讀
  30. 五人負責系統維運、6~7人寫程式 (網站)、6 人寫 mobile 程式
  31. 用 logstash 管理 log

其它就參考

  1. The architecture of StackOverflow : http://www.dev-metal.com/architecture-stackoverflow/
  2. http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html

Tagged: ,

Comments are closed.