《大規模Web服務開發技術》筆記

來源:互聯網
上載者:User


1. 與僅有幾台伺服器的小規模服務的區別

負載平衡 可擴充

保證冗餘

Reduced Operation:減少人工幹預(機器太多 記不過來)

2. 大規模資料處理痛點 記憶體vs磁碟

記憶體比磁碟快百萬倍

3. 大規模資料的技巧

寫程式

盡量都在記憶體完成

使用能應對資料增長的演算法(二叉樹 O(logn) )

使用資料壓縮和搜尋技術

前提知識:底層基礎

作業系統緩衝

分布式為前提 應用rdbms必須要做的事

大規模環境 資料結構和演算法如何使用


4. 作業系統緩衝

虛擬記憶體:進程不直接使用記憶體位址,核心透明化,從0開始訪問;作業系統以頁面為單位分配記憶體

頁面緩衝:進程讀入記憶體的資料不會直接釋放掉,緩衝起來供後面使用

vfs:磁碟緩衝是由頁面緩衝實現的,vfs負責屏蔽底層不同的檔案系統,實現緩衝

對檔案的緩衝:使用LRU,最小單位為頁面大小

降低io負載:記憶體大於資料檔案則能全部緩衝,不能考慮壓縮資料

局部性分布式:根據訪問模式 實施分布式資料


5. 資料庫橫向擴充策略

分布式mysql要點

靈活應用作業系統緩衝

正確設定索引

以橫向擴充為前提設計應用


Mysql分布式

replication:master slave

對更新/寫入擴充:表分割、key-value


6. 特殊用途索引

倒排索引:用於全文檢索索引,可以單獨建立索引伺服器

7, 全文索引的實現

步驟:爬行 儲存 建立索引 搜尋 評分 顯示結果

逆向索引的結構:Directiory+Position

Directory建立:字典+AhoCoraSic 或者 語素分析

8. 可擴充的思路

根據負載調優:可視化負載

考慮機器用途:爬蟲 客戶


9. 保證冗餘

應用server:增加server數量;負載平衡實現失敗轉移和失敗恢複

資料庫server:增加資料量; multi-master,相互replication 切換時有不同步風險,忽視之,出現則人工恢複

儲存伺服器:

系統穩定性

與資源使用率 有個取捨:維持適當餘量

資源增加、記憶體泄露都有可能影響:自動dos判斷 異常重啟 終止耗時查詢


10. 提高效率

虛擬化:可擴充 性價比 高可用。缺點:效能開銷,cpu2% 記憶體10% 網路50% IO5%

有效利用廉價硬體:多核cpu SSD硬碟


11. 網路

分界點:1G bps 500主機 全球化 CDN



受益一生:理解負載平衡的重點:作業系統,緩衝、多線程/多進程、虛擬記憶體、檔案系統

查看單機負載:查看平均負載,確定有無CPU/IO瓶頸

平均負載:top uptime,等待cpu+等待io任務/單位時間

CPU瓶頸:sar vmstat

top/sar確認是使用者進程還是系統進程

ps查看進程狀態和cpu使用時間,確認導致問題的進程

確定進程後使用strace或oprofile剖析,確定問題所在

IO瓶頸: 多因程式請求過多io,或頁面交換導致頻繁訪問磁碟,通過sar或vmstat確認交換區狀態

如果發生頁面交換

ps確認是否消耗大量記憶體

程式原因,改進程式

記憶體確實不夠加記憶體,無法增加 考慮分布式

沒發生交換,io頻繁 可能由於緩衝不足

增加記憶體

不能增加記憶體或還是不夠,考慮分散儲存或增加快取服務器

作業系統調優就是找到瓶頸並解決。


本文出自 “Ying:好記性不如爛筆頭” 部落格,請務必保留此出處http://yingtju.blog.51cto.com/3760152/1299911

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.