<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Slashdot Architecture-互聯網的老人如何學會擴展 > 原文: [http://highscalability.com/blog/2007/11/12/slashdot-architecture-how-the-old-man-of-the-internet-learne.html](http://highscalability.com/blog/2007/11/12/slashdot-architecture-how-the-old-man-of-the-internet-learne.html) **Slashdot effect**: overwhelming unprepared sites with an avalanche of reader's clicks after being mentioned on Slashdot. Sure, we now have the "Digg effect" and other hot new stars, but Slashdot was the original. And like many stars from generations past, Slashdot plays the elder statesman's role with with class, dignity, and restraint. Yet with millions and millions of users Slashdot is still box office gold and more than keeps up with the young'ins. And with age comes the wisdom of learning how to handle all those users. Just how does Slashdot scale and what can you learn by going old school? Site: http://slashdot.org ## 信息來源 * [Slashdot 的設置,第 1 部分-硬件](http://meta.slashdot.org/article.pl?sid=07/10/18/1641203&tid=124) * [Slashdot 的設置,第 2 部分,軟件](http://meta.slashdot.org/article.pl?sid=07/10/22/145209) * [Slashdot 第 3 部分的歷史-成為公司](http://meta.slashdot.org/article.pl?sid=07/10/17/1412245) * [Slashdot 的歷史第 4 部分-昨天,今天,明天](http://meta.slashdot.org/article.pl?sid=07/10/31/1631213) ## 該平臺 * MySQL * Linux(CentOS / RHEL) * 磅 * Apache * Perl * 內存緩存 * LVS ## 統計資料 * 從 1999 年開始構建系統。 * 每月有 550 萬用戶訪問。 * 每天增加 7,000 條評論。 * 每天的瀏覽量超過 900 萬。 * 超過 2100 萬條評論。 * 平均每月帶寬使用量約為 40-50 兆位/秒。 * 對于同一故事[,Kottke.org](http://www.kottke.org/06/01/digg-vs-slashdot) 發現 Slashdot 交付的用戶是 Digg 的 4 倍。 因此,Slashdot 還沒有死。 * 摘自 **Slashdot 的歷史第 4 部分**:*在[9 月 11 日],主流新聞網站陷入了困境,盡管我們不得不關閉日志記錄功能,但我們還是設法保持運轉,在一個站點中共享新聞。 通常很難獲得的時間。 那一天,使該站點發生的工程師團隊齊心協力,做了不可能的事情,迫使我們有限的小型硬件集群處理的流量可能是正常一天的三倍或四倍。* ## 硬件架構 * 數據中心的設計與所有其他 SourceForge,Inc.站點相似,并且已證明可以很好地擴展。 * 兩個主動-主動千兆位上行鏈路。 * 一對 Cisco 7301 作為網關/邊界路由器。 執行一些基本過濾。 過濾是分層的,以分散負載。 * 鑄造廠 BigIron 8000 充當核心交換機/路由器。 * Foundry FastIron 9604s 用作某些機架的交換機。 * 一對可機架系統(1U; P4 Xeon 2.66Gz,2G RAM,2x80GB IDE,運行 CentOS 和 LVS)用作負載平衡防火墻,將流量分配到 Web 服務器。 [BIG-IP F5](http://www.f5.com/products/big-ip/) 正在其新數據中心中部署。 * 所有服務器均至少為 RAID1。 * 16 個 Web 服務器: -運行 Red Hat9。 -帶有 2 個 Xeon 2.66Ghz 處理器,2GB RAM 和 2x80GB IDE 硬盤的機架式 1U 服務器。 -兩個提供靜態內容:javascript,圖像和非登錄用戶的首頁。 -前四個頁面用于登錄用戶 -10 個處理注釋頁面。 -主機角色根據負載而更改。 -所有 NFS 掛載均處于只讀模式。 * NFS 服務器是具有 2 個 Xeon 2.4Ghz 處理器,2GB RAM 和 4x36GB 15K RPM SCSI 驅動器的 Rackable 2U。 * 7 個數據庫服務器: -全部運行 CentOS4。 -2 個在主-主配置中: -具有 16GB RAM,4x36GB 15K RPM SCSI 的 Dual Opteron 270, -一個主服務器 只寫數據庫。 -一個主數據庫是只讀數據庫。 -他們可以隨時進行故障轉移并切換角色。 -2 個讀取器數據庫: -具有 8GB RAM,4x36GB 15K RPM SCSI 驅動器 的 Dual Opteron 270,每個數據庫均從一個主數據庫進行同步。 -可以增加更多規模,但目前足夠快。 -3 個其他數據庫 -具有 4GB RAM,8x36GB 10K RPM SCSI 驅動器的 Quad P3 Xeon 700Mhz -Accesslog 寫入器和 accesslog 讀取器。 使用單獨的數據庫是因為審核和統計信息需要大量的 CPU 時間進行計算。 -搜索數據庫。 ## 軟件架構 * 已登錄用戶和未登錄用戶的處理方式有所不同。 -未登錄的用戶將看到同一頁面。 此頁面是靜態頁面,每兩分鐘更新一次。 -登錄的用戶具有無法緩存的自定義選項,因此為這些用戶生成頁面會占用更多資源。 * 6 磅服務器(對于 SSL 為 1 磅)用作反向代理: -如果無法處理請求,則將其轉發到 Web 服務器。 -磅服務器與 Web 服務器在同一臺計算機上運行。 -分發它們是為了實現負載平衡和冗余。 -SSL 由磅服務器處理,因此 Web 服務器不需要支持 SSL。 * 16 個 apache Web 服務器(1.3 版): -從/ usr / local 掛載軟件到只讀 NFS 服務器上。 -圖像保持簡單。 編譯的全部內容是: -mod_perl -揮之不去地在交付過程中釋放了 RAM。 -mod_auth_useragent 阻止機器人。 -1 用于 SSL。 -2 用于靜態(.shtml)請求。 -4 為動態首頁。 -6 個用于動態評論傳遞頁面(評論,文章,pollBooth.pl)。 -3 用于所有其他動態腳本(ajax,標簽,書簽,firehose)。 * 將 apache 服務器劃分為不同角色的原因: -隔離服務器,以防在特定頁面上出現性能問題或 DDoS 攻擊。 即使一部分出現故障,系統的其余部分也將起作用。 -由于效率原因,例如 httpd 級別的緩存和 MaxClients 調整。 可以針對每個角色對 Web 服務器進行不同的調整。 對于動態 Web 服務器,MaxClients 設置為 5-15,對于靜態服務器,MaxClients 設置為 25。 瓶頸是 CPU,而不是 RAM,因此,如果不能快速處理請求,那么出了點問題,排隊更多的請求將無法幫助 CPU 更快地處理它們。 * 使用只讀安裝有助于提高系統的穩定性。 寫入/ usr / local 的任務(例如,每秒更新 index.html)在 NFS 服務器上運行。 * 使用在 DBD :: mysql 和 DBI.pm 之上構建的自己的 SQL API。 * 通過使用 memcached 緩存用戶,故事和評論文本,極大地提高了性能。 * 大多數數據訪問是通過為每種數據類型定制的 get 和 set 方法以及執行一個特定更新或選擇的方法進行的。 * 多主復制體系結構即使在阻止查詢(如 ALTER TABLE)期間也可以保持站點完全正常運行。 * [多遍日志處理](http://slashdot.org/journal.pl?op=display&nick=jamie&uid=78724&id=93006&)用于檢測濫用情況并挑選哪些用戶獲得了 Mod 積分。 * 創建了針對垃圾郵件的審核系統。 起初只是幾個朋友,然后是很多朋友。 這沒有擴展。 因此,引入了“ mod points”系統,以便對系統做出貢獻的任何用戶都可以審核該系統。 * 禁止活動用戶防止機器人過度使用。 ## 得到教訓 * 最富創造力的時期是資金緊缺,團隊規模很小,每個人都在幫助其他人做任何需要做的事情。 * 不要浪費時間優化代碼,因為您太便宜了,無法購買更多機器。 購買硬件并花時間在功能上。 * 賣給一家大公司,您將失去控制。 不斷面臨著去開發新產品,融合廣告商提供的內容以及投放大型廣告的陰暗面的壓力。 * 對希望您變得像其他所有人一樣的力量說不。 盡管許多競爭對手來來去去,但 Slashdot 仍然存在,因為他們:*繼續保持編輯獨立性,適度的廣告數量,廣告和內容之間有明顯的區別,當然,我們繼續選擇合適的故事來吸引人們 給我們現有的聽眾...不要花我們的時間去吸引其他聽眾,這些聽眾只會淡化討論,從而使日復一日的你們中的許多人到來。* * 將服務器隔離到不同的策略域中,以便您可以優化它們的配置。 * 優化通常意味著緩存,緩存,緩存。 * 表不完整,但大多已歸一化。 在大多數情況下,這可以提高性能。 * 在過去的七年中,開發數據庫支持的網站的過程發生了變化:*數據庫曾經是瓶頸:集中化,難以擴展,運行緩慢。 現在,如果您進行防御性編碼,那么即使是便宜的 DB 服務器也可以運行一個相當大的站點,并且由于摩爾定律,內存緩存和開源數據庫軟件的改進,在您不進行擴展的情況下,擴展問題才真正成為問題。 實際上是 eBay 的大小。 這是編寫 Web 應用程序的激動人心的時刻。* “對于動態 Web 服務器,MaxClients 設置為 5-15,對于靜態服務器,MaxClients 設置為 25。” 只有 15 點? 我們在每個 Apache 上有 256 個(1u 服務器 2xOpteron 雙核 4GB RAM),并使用 PHP 提供 9-10 倍的頁面 取決于 apache 進程在做什么。例如,它們可以等待 SQl 結果。因此,最好等待更多的進程。 他們也在等待客戶端獲取所有發送的數據-速度較慢的客戶端,需要更多進程來保持 CPU 利用率。 但是 AFAIK slashdot 使用的是反向代理,到 apache 僅以全 CPU 速度運行 PHP 代碼,并立即將數據返回給代理。 代理然后等待慢速客戶端... Slashdot 不使用 PHP,而是使用 mod_perl。 他們如何將 NFS 只讀安裝在 Web 服務器上并仍然寫入其中? 他們是否首先從 Web 服務器到 NFS 服務器使用 ssh? 謝謝,
                  <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>

                              哎呀哎呀视频在线观看