第 3章. 頻寬與處理器能力

本章將討論兩項資源,一個(頻寬)對系統管理新手來說,通常很難了解;另一個(處理器的能力)的概念,就比較容易掌握。

不過,這兩項資源看起來好像沒什麼相關 — 為什麼要相提並論呢?

把這兩項資源放在一起討論,是因為它們都跟硬體直接相關,也牽涉到電腦搬移與處理資料的能力。也因此,兩者間也常常有連動關係。

3.1. 頻寬

基本上,頻寬象徵著資料傳輸的能力 — 換句話說,就是在一定時間內,能把多少資料從一個地方搬到另一個地方的能力。點對點傳輸也說明了兩件事:

有兩種系統元件符合這些需求:

我們將在以下章節中,為您詳述這兩種東西。

3.1.1. 匯流排(bus)

如以上所述,匯流排能讓電腦進行點對點通訊,再加上某些通訊協定,就可以確保一切通訊都在控制之下。不過,匯流排本身也有其他特點:

  • 標準化的電氣特性(例如接腳的數目、電壓、訊號速度等)

  • 標準化的機械特性(例如接頭的樣式、介面卡的大小、實際的佈線等)

  • 標準化的通訊協定

「標準化」非常的重要,因為匯流排是把不同系統元件,彙總在一起的主要途徑。

在許多情形下,匯流排能讓不同硬體廠商製作的硬體相互溝通;如果沒有標準,那這是一件不可能的任務。不過即使某家廠商推出了專屬的匯流排,標準化還是很重要,因為這可以讓該廠商使用這通用介面(也就是匯流排),發展不同的元件。

3.1.1.1. 匯流排的例子

不管是電腦的哪個部份,您會發現匯流排無所不在。底下是幾個比較常見的例子:

  • 大量儲存匯流排(ATA 或 SCSI)

  • 網路[1](乙太網路(Ethernet)或權杖環網路(Token Ring))

  • 記憶體匯流排(PC133 與 Rambus®)

  • 擴充匯流排(PCI、ISA、USB)

3.1.2. 資料路徑(datapath)

資料路徑(datapath)比較難說明;不過跟匯流排一樣,它們無所不在,而且沒有資料路徑,點對點通訊就無法運行。但跟匯流排不同的,資料路徑:

  • 使用較簡單的通訊協定(如果有的話)

  • 的機械標準比較少(如果有的話)

會產生這些差異,是因為資料路徑多半藏於系統元件的內部,而不是介於不同元件之間以利通訊。也因此,資料路徑多半會為某些特殊情形而最佳化,這時速度與低成本的考量,就大過較慢且昂貴的使用彈性。

3.1.2.1. 資料路徑的例子

底下是幾種典型的資料路徑:

  • CPU 與內部快取的資料路徑

  • 圖形處理晶片到圖形記憶體的資料路徑

3.1.3. 潛在的頻寬相關問題

不管是匯流排或資料路徑,都可能因為以下兩種情形,而導致頻寬問題發生:

  1. 匯流排或資料路徑代表的可能是共享資源,在這種情形下,如果匯流排上的裝置同時爭奪匯流排的有限資源,就會讓頻寬效能不彰。

    接上許多存取頻繁的 SCSI 硬碟是最好的例子。這些硬碟會讓 SCSI 匯流排的流量飽和,其他接在這匯流排上的裝置,就沒有多少頻寬可以用了。最後,即使這些裝置運作並不頻繁,其 I/O 動作還是很慢。

  2. 匯流排或資料路徑是某些裝置的特有資源,且裝置數量固定。在這種情形之下,匯流排的電子特性(使用的通訊協定也沾上點邊)就會限制可用的頻寬。通常這比較常發生在資料路徑,而非匯流排上。這也是圖形介面卡在高解析度與(或)色深較高時,傾向較慢速度的原因 — 否則每次更新螢幕時,圖形處理器與圖形記憶體間的資料路徑,就得傳送更多的資料。

3.1.4. 潛在頻寬問題的解決方法

還好,頻寬之類的問題都有解決之道。事實上,有多種方法可以採用:

  • 將負載分散

  • 降低負載

  • 增加容量

底下將詳述這三種方式。

3.1.4.1. 將負載分散

第一種方法是平均分配匯流排的活動。換句話說,如果一個匯流排負載過高,另一個則閒置,那麼把前者的部份負載移到後者去,就可以改善效能。

這是身為系統管理者,首先要考慮的方法;因為通常系統上都會有多的匯流排可以用。舉例來說,大部分個人電腦都至少有兩組 ATA 通道(channels,這也是匯流排的另一個名字)。如果您有兩顆 ATA 硬碟,以及兩組 ATA 通道,何必把兩顆硬碟擠在同一條通道上呢?

即使您的電腦並沒有多餘的通道,分散負載依舊是比較合理的解決方法。花點錢增加一條通道,會比花大錢升級現有通道,外加高容量硬體來得划算。

3.1.4.2. 降低負載

乍看之下,降低負載跟分散負載好像是一體兩面。但如果負載分散,那也意味著負載降低了,不是嗎?

這觀點絕對正確,不過它跟降低「整體」負載不同。這方法的考量點,在於找出是不是有什麼系統負載,讓匯流排工作過重。舉例來說,是不是有什麼無謂的活動過於頻繁,讓網路負荷過重?也許有一個很小的暫存檔產生了大部分的讀寫 I/O。如果這暫存檔位於檔案伺服器上面,把它移到本機磁碟中,就可以大幅減少網路交通。

3.1.4.3. 增加容量

頻寬不夠時,最簡單的解決方法,莫過於增加頻寬。不過,這通常是最貴的方法。舉個例子來說,如果您的 SCSI 控制卡因為負載過高而導致頻寬不足,那要增加頻寬,就得換成更快的 SCSI 控制卡(可能還有連到上面的所有硬體)。如果您的 SCSI 是獨立的介面卡那還好辦,如果它內建在主機板上,那連主機板都換掉,就不見得是什麼如意算盤了。

3.1.5. 結論…

所有系統管理者都該注意頻寬問題,還有系統的設定與用量是如何對頻寬造成衝擊。不幸的是,頻寬問題不是那麼顯而易見的。有時候,問題不是出在匯流排身上,而是連接到匯流排的某個元件上。

舉例來說,有張 SCSI 介面卡連接到 PCI 匯流排上。如果您發現 SCSI 的磁碟存取效能不彰,那可能是 SCSI 卡本身處理能力太差,而非 SCSI 或 PCI 匯流排無法達到應有的頻寬。

[1]

網路不是電腦內部的匯流排。應該說是電腦「」的匯流排。