伺服器架構之效能擴充套件 第一章(2)

2021-09-04 02:15:27 字數 2662 閱讀 9506

隨著**運營時間的增長,使用者量、資料量和訪問量都在不斷地增長,於是大的訪問量、大的儲存量和大的資料量,大的負載和網路環境快速部署都會出現。於是**運營問題可以總結為一下四點: 1.

大的訪問量 2.

大的儲存量 3.

訪問速度 4.

伺服器監控 5.

網路環境的快速部署

解決方案:負載均衡和冗餘技術。

負載均衡:讓網路伺服器的壓力均衡到不同的裝置。

負載均衡技術方案:

cisco

乙太網通道,

windows

的nlb

技術,linux

的lvs

技術和f5

等負載均衡器

linux

的lvs

方案:

冗餘技術方案:

cisco hsrp

熱備份路由,

windows

集群技術,

linux的ha

技術,ibm

的aix

技術。

冗餘技術:避免出現單點故障,實現故障切換,由此引申出集群技術。

集群就是指將多個伺服器集中起來一起同時的進行同一種服務,在客戶看來只有乙個伺服器工作。

集群的特點:只有一台伺服器提供服務,其他的伺服器處於休眠狀態,如果這台伺服器出現問題,其他的伺服器將被啟用,保證服務的不間斷性。只有負載均衡和冗餘技術結合在一起,才能真正達到超級計算機功能。

主流資料庫型別:

mysql

(中小型資料庫),

oracle

(甲骨文公司),

db2(

ibm大型資料庫),

nosql

(非關係型資料庫,目前很火)。

對於大資料儲存我們一般可以使用主從複製和分區分表技術來解決。

mysql

主從複製原理圖:

binary log:

記錄資料的增刪改日誌,不記錄查詢服務。通過日誌進行資料的同步。

mysql

還有另外一種擴充套件方式,

mysql

讀取小表的速度更快。於是就引入了分表的概念,分表分為垂直分表和水平分表,一般遇到最多的還是水平分表,

mysql5.1

引進了分區分表技術。分區分表是不改變表名,將表切成不同分割槽。

下面引入一種非關係型資料

mongodb

,最近很火。

mongodb

是乙個機遇分布式檔案儲存的資料庫,有

c++語言編寫,是乙個介於關聯式資料庫和非關係資料之間的產品。它最大的特點是支援的查詢語言非常強大,幾乎可以完成類似關係資料的絕大部分操作,還支援對資料庫建立索引。

目前主要實現方案:

squid

**快取技術,頁面靜態化快取,

memcache

和sphinx

搜尋加速。

squid

可以實現快取**和資料的動靜分離,將靜態資料儲存起來,只有需要請求伺服器的檔案才到真正的伺服器上去讀取,大大提高訪問速度。

頁面靜態化:主要是通過模版實現,如

thinkphp

,brophp

,smarty

模版等。

memcache

:是乙個高效能的分布式的記憶體物件快取系統,通過在記憶體裡維護乙個統一巨大的

hash

缺點:遇到斷電,伺服器宕機,會造成資料的丟失。尤其是對於**資料重要性高的**不適合。

sphinx

全文檢索:

sphinx

是乙個機遇

sql的全文檢索引擎,可以結合

mysql

,postgresql

做全文檢索,他可以提供比資料本身更專業的搜尋功能,使得應用程式更容易實現專業化的全文檢索。

sphinx

單一索引,最大可以包含

1億條記錄,全文檢索速度

1000

萬條只需

3-4分鐘,建立

1000

萬條索引在

50分鐘完成。

1.4服務監控:

apache

服務監控,

mysql

服務監控,磁碟空間監控,流量監控。

警報:郵件警報,

postfix

發郵件系統,

sendmail

發郵件系統和

dovecot

收郵件系統。電子郵件發是由

smtp(25

埠),收郵件是由

pop3

協議(110

埠)完成的。

網路環境的快速部署變得越來越容易,在快速部署中如果可以用主機管理面板,這樣對於主機的管理變得越來越方便。

windows

可以使用

plesk

面板,linux

可以使用

cpanel

面板。

apache

壓力測試軟體

ab,是由

軟體提供,可能要建立很多檔案然後刪除。

mysql

壓力測試:

mysql5.1.4

開始帶有乙個壓力測試工具

mysqlslap

,通過模擬多個併發客戶端訪問

mysql

來進行測試。

伺服器架構之效能擴充套件 第一章(2)

隨著 運營時間的增長,使用者量 資料量和訪問量都在不斷地增長,於是大的訪問量 大的儲存量和大的資料量,大的負載和網路環境快速部署都會出現。於是 運營問題可以總結為一下四點 1.大的訪問量 2.大的儲存量 3.訪問速度 4.伺服器監控 5.網路環境的快速部署 解決方案 負載均衡和冗餘技術。負載均衡 讓...

第一章 擴充套件 條件變數

一 什麼是條件變數 與互斥鎖不同,條件變數是用來等待而不是用來上鎖的。條件變數用來自動阻塞乙個執行緒,直到某特殊情況發生為止。通常條件變數和互斥鎖同時使用。條件變數使我們可以睡眠等待某種條件出現。條件變數是利用執行緒間共享的全域性變數進行同步的一種機制,主要包括兩個動作 乙個執行緒等待 條件變數的條...

第一章 擴充套件 條件變數

一 什麼是條件變數 與互斥鎖不同,條件變數是用來等待而不是用來上鎖的。條件變數用來自動阻塞乙個執行緒,直到某特殊情況發生為止。通常條件變數和互斥鎖同時使用。條件變數使我們可以睡眠等待某種條件出現。條件變數是利用執行緒間共享的全域性變數進行同步的一種機制,主要包括兩個動作 乙個執行緒等待 條件變數的條...