国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

什么樣的硬件設備在支撐 Stack Overflow?

dailybird / 2878人閱讀

摘要:上面列表中的兩個數據庫服務器之前一直都是用作備份,直到最近才作為只讀的負載主要用于,于是我們可以不需要太多考慮便繼續擴大規模了。比如服務器的平均使用率為,內存只使用了,網絡流量只有而數據庫服務器平均使用率為,使用了內存,以及的網絡。

導讀:這是一篇來自 Stack Overflow 員工的文章,發表于 2013 年 11 月 22 日。

我更愿意把 Stack Overflow 看作是能夠運行于大規模數據下,但本身并不算大規模的(running with scale but not at scale)。意思是我們的網站非常有效率,但至少目前為止,我們的規模還不夠“大”。讓我們通過一些數字來介紹Stack Overflow當前是一個怎樣的規模吧。以下是一些核心的數字,來自于不久前在一整天(24小時)內的統計,準確說是2013年11月12日。這是一個典型的工作日,并且只統計了我們活動的數據中心,也就是我們自己的服務器。那些對CDN節點的請求和流量被排除在外,因為它們并不直接訪問我們的網絡。

負載均衡器接受了148,084,833次HTTP請求

其中36,095,312次是加載頁面

833,992,982,627 bytes (776 GB) 的HTTP流量用于發送

總共接收了286,574,644,032 bytes (267 GB) 數據

總共發送了1,125,992,557,312 bytes (1,048 GB) 數據

334,572,103次SQL查詢(僅包含來自于HTTP請求的)

412,865,051次Redis請求

3,603,418次標簽引擎請求

耗時558,224,585 ms (155 hours) 在SQL查詢上

耗時99,346,916 ms (27 hours) 在Redis請求上

耗時132,384,059 ms (36 hours) 在標簽引擎請求上

耗時2,728,177,045 ms (757 hours) 在ASP.Net程序處理上

(我覺得應該發表一篇文章介紹我們如何快速采集這些數據,以及為什么值得耗費精力去獲取它們)

注意以上數字包括了整個Stack Exchange網絡,但那并不是我們全部的。除此之外,這些數字也僅僅來自于我們為了檢測性能而記錄的HTTP請求。“哇,一天有這么多個小時,你們怎么做到的?”我們把這叫做魔法,當然有些人喜歡說成“許多個有多核處理器的服務器”,但我們依然堅持這是魔法。以下是那個數據中心里運行Stack Exchange網絡的設備:

4個MS SQL 服務器

11個IIS服務器

2個Redis服務器

3個標簽引擎服務(任何針對標簽的請求都會訪問它們,比如/questions/tagged/c++)

3個ElasticSearch服務器

2個負載均衡器(HAProxy)

2個交換機(Nexus 5596和Fabric Extenders)

2個Cisco 5525-X ASA (可看作是防火墻)

2個Cisco 3945 Router

有圖有真相:

我們不僅僅運行網站,旁邊架子上還有一些運行著虛擬機的服務器和其他設備,它們并不直接服務于網站,而是進行部署、域名控制、監控、操作數據庫等其他工作。上面列表中的兩個數據庫服務器之前一直都是用作備份,直到最近才作為只讀的負載(主要用于Stack Exchange API),于是我們可以不需要太多考慮便繼續擴大規模了。Web服務器有兩個分別用于開發和存儲元數據,運行負載非常低。

核心設備

如果除去那些多余的設備,以下是Stack Exchange運行需要的(保持目前的性能水平):

2個MS SQL服務器(Stack Overflow在一臺,其他的在另一臺,實際上只需一臺機器運行還能有富余)

2個Web服務器(或許3個吧,不過我有信心2個足矣)

1個Redis服務器

1個標簽引擎服務器

1個ElasticSearch服務器

1個負載均衡器

1個交換機

1個ASA

1個路由器

(我們真該找個機會嘗試這個配置,關閉部分設備,看看極限在哪)

現在還有一些虛擬機運行在后臺,執行一些輔助功能,比如域名控制等等。但那都是些相當低負載的任務,我們就不做討論了,這里把重心放在Stack Overflow本身,看看它是怎樣全速加載出頁面的。如果你希望更精確全面,可以增加一個VMware虛擬機進來,用于執行所有的輔助工作。這樣看來并不需要很多機器,但是這些機器的規格通常在云上難以實現,除非你有足夠多的錢。以下是這些“增強型”服務器簡要的配置介紹:

數據庫服務器有384GB內存和1.8TB的SSD硬盤

Redis服務器有96GB內存

ElasticSearch服務器有196GB內存

標簽引擎服務器有著我們能買得起的最快的處理器

交換機每個端口有10Gb的帶寬

Web服務器不是很特別,有32GB內存、2個4核處理器和300GB的SSD硬盤

有些服務器有2個10Gb帶寬的接口(比如數據庫),其他有4個1Gb帶寬的

20Gb的帶寬太多余了?你還真特么說對了,活動的數據庫服務器平均只利用了20Gb通道中的100-200Mb。然而,像備份、重建等等操作,* 根據當前內存和SSD硬盤的情況,可以使帶寬完全飽和,所以說這樣設計還是有意義的。

存儲設備

我們目前有大約2TB的數據庫存儲(第一個集群有18塊SSD硬盤—— 總共1.63TB,使用1.06TB;第二個集群由4塊SSD硬盤組成—— 總共1.45TB,使用889GB),這是我們在云服務器上需要的(嗯哼,又要吐槽價格了吧),請記住這全部都是SSD硬盤。歸功于存儲器良好的表現,我們數據庫的平均寫入時間是0毫秒,甚至超出我們能度量的精度了。算上內存中的數據以及兩級緩存,Stack Overflow中實際的數據庫讀寫比例是40:60。你沒看錯,60%是寫操作(點此了解讀寫比)。此外,每個Web服務器都有兩塊320GB SSD硬盤組成的RAID1。ElasticSearch在每個區塊大約需要300GB的容量,由于我們會非常頻繁的寫入或重建索引,SSD硬盤在這里是更好的選擇。

值得注意的是我們擁有一個SAN(存儲區域網絡)連接到核心網絡,那就是 Equal Logic PS6110X,它有24個可熱交換的10K SAS磁盤和2個10Gb的控制器。這個設備僅僅被VM服務器用作共享儲存空間以保證虛擬機高度的可用性,但并不實際支撐網站的運行。換句話說,如果SAN掛掉了,在一段時間內網站甚至無法察覺(只有虛擬機中的域名控制器能感知到)。

整合到一起

這所有的設備在一起是為了什么?性能。我們需要很高的性能,這是一個對我們來說很重要的特性。所有站點的首頁都是問題頁面,我們內部把它親切地稱作Question/Show(路由的名字)。在11月12日,這個頁面平均渲染時間是28毫秒,而我們的要求是至多50ms。為了使用戶獲得更好的體驗,我們盡一切可能縮短頁面加載的時間,哪怕只有一毫秒。在和性能有關的問題上,我們所有的開發人員都是“錙銖必較”的,這也有助于我們的網站保持快速響應。以下是一些Stack Overflow上熱門頁面的平均渲染時間,數據還是來自于前面統計的那24小時:

Question/Show: 28 ms (2970萬次點擊)

User Profiles: 39 ms (170萬次點擊)

Question List: 78 ms (110萬次點擊)

Home page: 65 ms (100萬次點擊) (這對我們來說已經很慢了,Kevin Montrose正在著手修復這個問題)

憑借對每一次請求的時間線的記錄,我們能夠準確觀察到頁面加載的過程。我們需要這樣的數據,否則難道靠腦補來做決定嗎?有數據在手,我們就可以這樣監控性能:

如果你對某個特定頁面的數據感興趣,我也很樂意發布出來。但這里我重點關注渲染時間,因為它表示我們的服務器需要多久來生成一個網頁。網絡傳輸速度是一個完全不同的話題了(盡管不得不承認它也有很大的關系),不過將來我會講到的。

增長空間

非常值得一提的是我們這些服務器運行時的使用率都非常低。比如Web服務器的CPU平均使用率為5-15%,內存只使用了15.5GB,網絡流量只有20-40Mb/s;而數據庫服務器CPU平均使用率為5-10%,使用了365GB內存,以及100-200Mb/s的網絡。這使我們能做到幾件重要的事情:在網站規模增大時不至于需要馬上升級設備;當出現問題時(錯誤的查詢、代碼以及攻擊等等,無論是什么樣的問題),我們能保持網站始終不掛;在必要的時候降低功耗。這里有個我們Web層的監控項目:

利用率如此之低的主要原因是高效的代碼。盡管本文的主題并不是這個,但是高效的代碼對挖掘服務器的性能也有著決定性的作用。做一件非必要的事情所損失的,居然比無所作為還要多——把這引申到代碼中就是說,你需要把它們改進得更高效了。這些損失或者消耗可以是能源、硬件(你需要更多更快的服務器)、開發人員理解代碼更困難(平心而論,這個有兩面性,高效的代碼并不一定那么簡單),以及緩慢的頁面渲染——可能導致用戶更少地瀏覽網站其他頁面甚至再也不訪問你的網站了。低效率代碼帶來的損失可能比你想象的大很多。

現在我們了解了Stack Overflow運行在怎樣的硬件上,下次可以討論一下為何我們不使用云。


原文:What it takes to run Stack Overflow
轉載自:伯樂在線 - 蔣生武

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/7901.html

相關文章

  • C++程序運行過程中發生異常閃退,很有可能是這三個原因導致

    摘要:當出現這種運行一段時間后的異常閃退,很有可能是以下三種原因導致的。程序在運行過程中發生異常或者閃退,可能就是有線程發生棧溢出導致的。 目錄 1、綜述 2、GDI對象泄露 3、Stack Overflow線程棧溢出 4、內存泄露 ? ? ? ?Windows應用軟件在交付給客戶使用或者試用后,...

    Kross 評論0 收藏0
  • 邊緣計算七項核心技術

    摘要:與云計算中心不同,廣域網的網絡情況更為復雜,帶寬可能存在一定的限制因此,如何從設備層支持服務的快速配置,是邊緣計算中的一個核心問題。邊緣計算可汲取云計算發展的經驗,研究適合邊緣計算場景下的隔離技術。 作者:施巍松團隊(張星洲、王一帆、張慶陽) 計算模型的創新帶來的是技術的升級換代,而邊緣計算的迅速發展也得益于技術的進步。本節總結了推動邊緣計算發展的7項核心技術,它們包括網絡、隔離技術、...

    leanote 評論0 收藏0
  • 私有云平臺-硬件選型

    摘要:個機柜為組,平均組機柜支撐個節點組內網接入交換機組外網接入交換機臺接入交換機。若服務器分集群部署云平臺,建議不同集群的服務器對稱部署于多個機柜中。2.3.1 推薦配置(1)網絡設備推薦配置業務配置描述內網核心交換機40G板卡(16口) * 4 + 64 * 40GE外網核心交換機48*10GE + 6*40GE內網接入交換機(必選)48*10GE + 6*40GE存儲接入交換機48*10GE...

    ernest.wang 評論0 收藏0
  • 華為云2019,能否奔跑中蛻變?

    摘要:前不久,市場研究機構在最新發布的報告中對華為云給予了高度評價,稱之為中國全棧公有云平臺領導者。華為云,能否在奔跑中蛻變,年將是云市場發展的關鍵一年。只有這樣,華為云才能在激烈的競爭中站穩腳跟并贏得更大發展空間。近兩年,華為云的成長十分令人矚目。前不久,市場研究機構Forrester在最新發布的報告中對華為云給予了高度評價,稱之為中國全棧公有云平臺領導者。華為云,正在崛起!!!進擊的華為云璽哥...

    LittleLiByte 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<