網站高性能架構思路

每次我去面試別人肯定要問一句有沒有大數據的網站經驗。我的每次回答都是No。我也不想 啊。但是遇不到這種公司有什麼辦法。怎麼辦能。自己研究被。雖然知道和經驗是不一樣的。但是總比不知道好吧。


首先呢。我把網站性能分成幾個部分 ①服務器壓力 ②數據庫壓力 ③帶寬開銷 ④網絡開銷


服務器壓力:


簡介:當網站的瀏覽人數增加。web服務器會因爲同一時間的併發訪問數量太多處理不過來導致訪問排隊。或者由於併發訪問變大。導致web服務器在處理腳本時佔用服務器的 cpu、內存、io等資源超過安全線。


處理方法:

①將數據庫和web服務器分離。web服務器的資源只用來處理web請求。

②部署多臺web服務器。用nginx或者lvs來實現負載均衡。將壓力分攤到多個服務器上。

③將靜態文件從web服務器上剝離。靜態文件統一保存在文件服務器上。如css、js、p_w_picpath等。這樣對於靜態文件的大量io和網絡資源的開銷就可以單獨做優化。如緩存或CDN加速等。



數據庫壓力:


簡介:由於數據量越來越大。導致數據庫庫的各個查詢更新速度變慢。一個未經檢查的查詢語句可能就能摧毀一個數據庫。


處理方法:

①利用緩存千方百計減少對數據庫的訪問。無論是用硬盤的文件緩存。還是用內存的memcache。將數據短期或者長期的緩存起來。儘量減少對於數據庫的查詢。

②檢查沒一條語句。不管數據庫怎麼優化。查詢語句還是根本。添加適當的索引,索引不是亂添加的添加索引的同時也加重了插入更新刪除的負擔。只取需要的數據字段不要在用select *了。

③數據庫的集羣。這個其實我不是很明白。但是應該也有想web負載均衡一樣。也可以用集羣來分擔數據庫的壓力。集羣的話數據庫應該就會有主從同步保證數據的一致性。同時可以將數據庫的讀寫分離。


網絡壓力:


簡介:即時到了20M的網速時代。網絡依然是一個影響網站速度的原因。


處理方法:

①服務器響應HTML頁面的時候。使用gzip壓縮網頁內容。據說壓縮能力可以在85%。也就是100k的頁面壓縮後只有15K在網絡上傳輸。

②html中的圖片可以使用 map或者 css spirit技術。將多個小圖片合併一張大圖。這雖然並不能減少圖片的大小。但是能減少獲取圖片的次數。同樣可以減少開銷

③將css、js文件合併並壓縮。在開發的時候因爲方便。所以css、js文件會分很多個。而且裏面會有格式很多無用的空格。將這些全都合併之後。又可以將獲取的文件減少。將文件的大小減小。




希望大家給予評論。你們的回覆會推動我的進步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章