<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # MySpace 體系結構 > 原文: [http://highscalability.com/blog/2009/2/12/myspace-architecture.html](http://highscalability.com/blog/2009/2/12/myspace-architecture.html) **更新:** [演示:MySpace.com 的幕后](http://www.infoq.com/news/2009/02/MySpace-Dan-Farino)。 MySpace 的首席系統架構師 Dan Farino 分享了 MySpace 的一些出色內部操作工具的詳細信息。 MySpace.com 是 Internet 上增長最快的網站之一,每天有 6500 萬訂戶和 260,000 新用戶注冊。 MySpace 通常因性能不佳而受到批評,不得不解決其他站點很少遇到的可伸縮性問題。 他們是如何做到的呢? 網站:http://myspace.com ## 信息來源 * [演示文稿:MySpace.com 的幕后故事](http://www.infoq.com/news/2009/02/MySpace-Dan-Farino)* [Inside MySpace.com](http://www.baselinemag.com/print_article2/0,1217,a=198614,00.asp) ## 平臺 * ASP.NET 2.0* 視窗* 其* SQL Server ## 里面有什么? * 3 億用戶。* 將每秒 100 吉比特的速度推向互聯網。 HTML 內容為 10Gb /秒。* 4,500 多個 Web 服務器 Windows 2003 / IIS 6.0 / APS.NET。* 1200 多個運行 64 位 Windows 2003 的緩存服務器。16GB 的對象緩存在 RAM 中。* 500 多個運行 64 位 Windows 和 SQL Server 2005 的數據庫服務器。 * MySpace 每天處理 15 億次頁面瀏覽,并在一天中處理 230 萬并發用戶* 成員資格里程碑: -500,000 用戶:一個簡單的體系結構絆倒 -100 萬用戶:垂直分區解決了可伸縮性問題 -300 萬用戶:橫向擴展勝于向上擴展 -900 萬用戶 :站點遷移到 ASP.NET,添加了虛擬存儲 -2 千 6 百萬用戶:MySpace 采用 64 位技術* 對于兩個 Web 服務器和一個數據庫,500,000 個帳戶的負載太多。* 在 1-2 百萬個帳戶 下,他們使用了圍繞垂直分區概念構建的數據庫體系結構,并為網站的各個部分提供了單獨的數據庫,這些部分提供了不同的功能,例如登錄屏幕,用戶個人資料和博客。 -垂直分區方案有助于分擔數據庫讀取和寫入的工作量,并且當用戶需要新功能時,MySpace 會將新數據庫聯機以支持它。 -MySpace 從使用直接連接到其數據庫服務器的存儲設備切換到存儲區域網絡(SAN),在該區域中,磁盤存儲設備池通過高速專用網絡捆綁在一起,并且數據庫連接到 SAN。 SAN 的更改提高了性能,正常運行時間和可靠性。* 擁有 300 萬個帳戶 時,垂直分區解決方案并沒有持久,因為它們在所有垂直切片中復制了一些水平信息,例如用戶帳戶。 進行如此多的復制將導致失敗并降低系統速度。 -網站的各個部分上的博客之類的單個應用程序對于單個數據庫服務器而言會變得太大。 -將所有核心數據重新組織成邏輯組織到一個數據庫中 -將其用戶群分為 一百萬個帳戶塊,并將所有鍵入這些帳戶的數據放入一個單獨的 SQL Server 實例中* 900 萬至 1700 萬個帳戶 -遷移到 ASP.NET,該站點使用的資源比以前的體系結構少。 運行新代碼的 150 臺服務器能夠完成以前需要 246 臺的工作。 -再次看到存儲瓶頸。 實施 SAN 已經解決了一些早期的性能問題,但是現在該網站的需求開始逐漸使 SAN 的 I / O 容量不堪重負-它可以在磁盤存儲中讀寫數據的速度。 -超過了每個數據庫一百萬個帳戶劃分方法的點擊次數限制。 -遷移到虛擬化存儲體系結構,其中整個 SAN 被視為一個巨大的存儲容量池,而無需特定磁盤專門用于服務特定應用程序。 MySpace 現在針對來自相對較新的 SAN 供應商 3PARdata 的設備進行了標準化* 添加了一個緩存層,即位于 Web 服務器和數據庫服務器之間的一層服務器,其唯一的工作就是捕獲內存中經常訪問的數據對象的副本并將它們提供給 Web 應用程序,而無需數據庫查找。* 2600 萬個帳戶 -移至 64 位 SQL Server,以解決其內存瓶頸問題。 他們的標準數據庫服務器配置使用 64 GB 的 RAM。* **水平聯合數據庫**。 數據庫是按目的分區的。 具有配置文件,電子郵件數據庫等。分區基于用戶范圍。 每個數據庫中都有 100 萬用戶。 因此,由于 Profile1 和 Profile2 一直擁有 3 億用戶,因此一直到 Profile300。* 不使用 ASP 緩存,因為它們的前端命中率不夠高。 中間層緩存的命中率確實很高。* **故障隔離**。 通過數據庫將請求細分為 Web 服務器。 每個數據庫僅允許 7 個線程。 因此,如果數據庫運行緩慢,則僅那些線程將變慢,其他線程中的流量將流動。 ## 運作方式 * **PerfCollector** 。 通過 UDP 集中收集性能數據。 比 Windows 更可靠,并且允許任何客戶端連接并查看統計信息。* **基于 Web 的堆棧轉儲工具**。 可以右鍵單擊有問題的服務器,并獲取.Net 托管線程的堆棧轉儲。 過去必須將 RDC 插入系統并附加調試器,然后在 1/2 以后得到答案。 緩慢,不可擴展且乏味。 不僅僅是堆棧轉儲,它還提供了有關線程正在做什么的大量上下文信息。 故障排除更加容易,因為您可以看到數據庫上有 90 個線程被阻塞,因此數據庫可能已關閉。* **Web 庫堆轉儲工具**。 轉儲所有內存分配。 對開發人員非常有用。 手動節省數小時的時間。* **Profiler** 。 從頭到尾跟蹤請求并生成報告。 查看網址,方法,狀態以及所有可幫助您確定緩慢請求的內容。 查看鎖爭用,是否拋出了很多異常,可能是有趣的事情。 重量很輕。 它在生產中的每個 VIP(100 個服務器的組)中的一個盒子上運行。 每 10 秒采樣 1 個線程。 始終在后臺跟蹤。* **Powershell** 。 Microsoft 的新外殼,可在進程中運行并在命令之間傳遞對象,而不是解析文本輸出。 MySpace 開發了許多 Commandlet 以支持操作。* 開發了自己的異步通信技術來解決 Windows 網絡問題并將服務器視為一個整體。 可以發送.cs 文件,對其進行編譯,運行并重新發送響應。* **Codespew** 。 在其通信技術上推送代碼更新。 過去每天執行 5 次代碼推送,現在每周減少 1 次。 ## 得到教訓 * 您可以使用 Microsoft 技術來建立大型網站。* 從一開始就應該使用緩存。* 緩存是存儲不需要在數據庫中記錄的臨時數據的更好的位置,例如,為跟蹤網站上特定用戶的會話而創建的臨時文件。* 內置的 OS 功能可檢測拒絕服務攻擊,可能會導致莫名其妙的故障。* 將您的數據分發到地理位置不同的數據中心以處理電源故障。* 從一開始就考慮使用虛擬化存儲/群集文件系統。 它使您能夠大規模并行化 IO 訪問,同時能夠根據需要添加磁盤而無需任何重組。* 開發在生產環境中工作的工具。 無法在測試環境中模擬所有內容。 在測試過程中,無法在質量保證中模擬 API 的用途和規模。 合法的用戶和黑客會遇到在測試中沒有遇到的極端情況,盡管質量檢查人員會發現大多數問題。* 向硬件拋出問題。 比將其后端軟件更改為新的工作方式更容易。 這個例子是他們為每百萬個用戶添加一個新的數據庫服務器。 更改其方法以更有效地使用數據庫硬件可能會更有效,但僅添加服務器會更容易。 目前。 我從未見過如此專注于網站架構的網站。 它所包含的豐富信息使我感到啟發! 64 位硬件是這里的關鍵。 由于使用 32 位硬件,所有不良名稱窗口的性能均很差。 大多數 Linux / unix 硬件在更早的時候就遷移到了 64 位硬件。 64 位計算機支持的額外 RAM 完全改變了計算機的性能。 “您可以使用 Microsoft 技術來建立大型網站。” 從個人 Myspace 經驗來看,您似乎還是不能。 它無法正常運行,并且各處都出現錯誤。 通過丟棄每第二個或第三個請求,看起來像“可伸縮性”,從而減少了系統上的負載。 我認為他們寧愿將 ASP.NET 與 Cold Fusion 結合在一起,而不僅僅是.NET MySpace 使用 NewAtlanta 提供的 BlueDragon.NET 在.NET 上運行其 CFML 代碼。 在這里了解更多信息; [http://blog.newatlanta.com/index.cfm?mode=entry &條目= 764C1F4A-89D7-A61A-F9F71128027172A7](http://blog.newatlanta.com/index.cfm?mode=entry&entry=764C1F4A-89D7-A61A-F9F71128027172A7) 感謝您發布本系列文章,對于任何想要擴展的人來說,它都是一個巨大的資源。 我在博客中引用了它: [http://smoothspan.wordpress.com/2007/09/17/who-doesnt-love-java-youd-be-surprised-and-part-2-of-the-toolplatform-rants/](http://smoothspan.wordpress.com/2007/09/17/who-doesnt-love-java-youd-be-surprised-and-part-2-of-the-toolplatform-rants/) 干杯, 體重 150 個服務器可容納 2600 萬個帳戶? 每個服務器 173,333 個帳戶。 那真的是一個很好的基準嗎? 我都不知道。 Facebook 使用多少臺服務器? [http://codershangout.com](http://codershangout.com) 編碼人員可以進行視頻群聊的地方! I think they rather combine ASP.NET with Cold Fusion and not only .NET I think they rather combine ASP.NET with Cold Fusion and not only .NET 感謝您提供信息。 他們的標準數據庫服務器配置使用 64 GB 的 RAM。 -哇 64GB 的 RAM,那真是太棒了! 真正有趣且有用的文章,非常感謝! 我的空間是有用的網站,例如 facebook 那是一篇引人入勝的文章,也讓我看到 SQL Server 和 ASP.Net 可以(盡管擁有聰明的組織和許多硬件)可以支持如此龐大的用戶群。 感謝您分享這一信息。 Myspace 正在成為互聯網上領先的社區中心。 其訂戶比任何其他中心都多。 我猜它甚至擊敗了 Orkut。 ----- [http://underwaterseaplants.awardspace.com“](<a rel=) >水下海洋植物 [http://underwaterseaplants.awardspace.com/seaweed .htm“](<a rel=) >海藻... [http://underwaterseaplants.awardspace.com/easyaquariumplants.htm”](<a rel=) >簡易水族館植物 從什么遷移到 ASP.NET? 我對“投入更多的硬件”而不是“有效地構建代碼”的方法感到有些驚訝。 這聞起來像是一篇文章,提到了 MS 的優點,卻沒有提及缺點。為什么不提及它相對于開放平臺的成本呢? 我個人認為,如果有很多高流量網站(如 Facebook)建立在開放平臺上,則意味著有可能開放。 那么,為什么我們要向 MS 付款呢? 要擁有越來越多的專有非標準兼容技術? 我認為除了微軟之外,它不會對其他任何人有利。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看