iT邦幫忙

0

伺服器資料傳輸頻寬最大值計算邏輯疑問

請問各位先進,

請問一台伺服器,以資料傳輸來說
資料如果存放在硬碟中,

一個client讀取伺服器上的檔案,就我的了解
這個資料流(只到伺服器出去為止,不包含主機到client這段)
中間所經過,會影響到傳輸速度部分的節點如下:

一開始,資料從hard disk讀取資料,所以第一會影響的是

1.Hard Disk 本身的最大傳輸頻寬

接著,資料由hard disk讀出後,經由系統匯流排傳輸至System Kernel
所以第二個會影響的是

2.系統匯流排 本身的最大傳輸頻寬

接著,資料由System Kernel轉發給Network Card Adapter進行最後的資料傳輸
所以第三個會影響的是

3.網路卡 本身的最大傳輸頻寬

故如果我的理解沒有錯誤,伺服器整體的最大傳輸頻寬
基本上就會是這三個主要節點中所提供的最小頻寬為其理想值?

所以如果網路卡使用10Gbps,但是如果hard disk本身或是匯流排本身根本達不到這樣的傳輸頻寬
使用10Gbps的網卡也是枉然?

如果上述的理解有錯誤,也請各位先進不吝指教
謝謝

12
yesongow
iT邦大師 3 級 ‧ 2013-08-29 23:17:40
最佳解答

10Gbps的網路卡,相當於1250MB/sec
此傳輸量,是單一傳統硬碟的10倍,
如果你的主機,是使用三顆以上的SATA-III SSD硬碟,組成RAID0/RAID5/RAID6/RAID10的儲存空間時,
則10Gbps的網路頻寬,我只能說是,剛剛好互相滿足!

若是使用傳統的硬碟8顆至16顆,一樣也是組成RAID0/RAID5/RAID6/RAID10的儲存空間時,
則10Gbps的網路頻寬,我只能說是,剛剛好互相滿足!

如果主機內部使用磁碟陣列卡,並有256MB以上的Cache RAM,及BBU配件時,則三顆以上的硬碟組成RAID0/RAID5/RAID6/RAID10的儲存空間時,儲存空間的瞬間,可以將10Gbps的網路頻寬,剛剛好互相滿足!

yesongow提到:
如果主機內部使用磁碟陣列卡,並有256MB以上的Cache RAM,及BBU配件時,則三顆以上的硬碟組成RAID0/RAID5/RAID6/RAID10的儲存空間時,儲存空間的瞬間,可以將10Gbps的網路頻寬,剛剛好互相滿足!

喔喔~即使使用RAID來提升整體傳輸頻寬,但是資料如果仍然會經過匯流排的話,是否匯流排依舊會是bottleneck呢?

還是當使用RAID卡時,資料傳輸是不會經過匯流排的?

yesongow iT邦大師 3 級 ‧ 2013-08-31 01:33:02 檢舉

通常磁碟陣列卡,是使用擴充卡的方式,安裝在主機上!
而主機介面有PCI,PCI-X,PCI-Express
依照介面不同,而能夠傳輸的數量也不同喔!

以下是wiki資料
http://zh.wikipedia.org/wiki/PCI\_Express

最後,硬碟內的資料,透過排線,傳給RAID卡,
插在主機板上的RAID卡,透過主機板的匯流排,傳給北橋晶片
北橋晶片,再將資料,傳給CPU
--
絕對不是透過心電感應的方式!
PS.藍牙也沒有那麼快,好嗎!?
--
所以,PCIe 2.x版,在單向單通道時,可以傳輸大約500MB/sec的資料量!
而PCIe 2.x版,在16 lane時,雙向可以傳輸大約16GB/sec的資料量!
像是DELL H700的磁碟陣列卡,它是PCIe 2.x版 x8的卡!可以搭配8顆硬碟使用!
所以,DELL H700對北橋晶片傳輸量,雙向可以高達8GB/sec的傳輸量(等同64Gbps)
這樣的瞬間傳輸量,應該可以滿足10Gbps的網路卡了吧?

10
u8526425
iT邦大師 1 級 ‧ 2013-08-29 13:43:31

枉不枉然要看實際需求
如果你的環境因為網路的100M或1G bps限制才出現問題
你會不會考慮trunking或是走其他高頻寬方案 ?

去做performance tuning就是要全方面的思考
想辦法打開那個最瓶頸的地方
其中當然也包括了各點傳輸端的問題

8
bestlong
iT邦新手 1 級 ‧ 2013-08-29 19:45:40

如果單純單就這三個測量點
那麼終端實際最大輸出的能力就是受限在路徑中的能力最低的點
但是只要在效能最低點之後加入快取的功能,就可以改善

作業系統與資料庫會利用記憶體暫存資料減少硬碟讀寫的次數,就是這樣改善效能

我要發表回答

立即登入回答