剛剛我們提到,每台電腦的資源包括了 CPU 的處理能力、頻寬、記憶體、以及儲存空間等。乍看之下,只要監控這四種東西即可。
但不幸的是,事情沒那麼簡單。舉磁碟為例,您想要知道硬碟哪一方面的效能呢?
還剩下多少剩餘空間?
硬碟平均每秒處理多少個 I/O 需求?
硬碟處理每個 I/O 的平均時間為何?
這些 I/O 中,有多少是讀取?有多少是寫入?
每個 I/O 讀取 / 寫入的平均資料量為何?
剛剛我們提到,每台電腦的資源包括了 CPU 的處理能力、頻寬、記憶體、以及儲存空間等。乍看之下,只要監控這四種東西即可。
但不幸的是,事情沒那麼簡單。舉磁碟為例,您想要知道硬碟哪一方面的效能呢?
還剩下多少剩餘空間?
硬碟平均每秒處理多少個 I/O 需求?
硬碟處理每個 I/O 的平均時間為何?
這些 I/O 中,有多少是讀取?有多少是寫入?
每個 I/O 讀取 / 寫入的平均資料量為何?
鑽研硬碟效能是門大學問;以上只不過是皮毛而已。最重要的概念是,每種資源都有許許多多的資料可供蒐集。
以下章節將探討每種主要資源的使用資訊。
通常監控處理器能力再簡單不過:看看 CPU 使用率是不是曾經高達 100% 即可。如果 CPU 使用率低於 100%,那麼不管系統正在做什麼事情,總有餘裕從事其他工作。
然而,很少有哪台電腦會達不到 100% CPU 使用率的。從這角度來看,就得仔細看看處理器使用率的詳細資料。如此一來,您就可以得知哪些工作耗去大部分的處理器資源。以下是幾個系統管理者比較常監控的項目:
使用者等級與系統等級的處理程序所耗去的處理器資源,可以指出系統的負荷主要來自應用程式,或是作業系統。如果使用者處理程序的數據比較高,那是好事(如果使用者還沒有對效能提出抱怨的話);相反地,如果系統處理程序的數據偏高,那就需要進一步研究了。
當 CPU 停止執行某個程序,轉而執行另一個程序時,稱之為環境切換(context switch,又稱內容切換)。因為每次環境切換時,作業系統都得取得 CPU 的控制權,因此過度頻繁的切換與系統等級的程序消耗大量 CPU 資源,兩者多半是相輔而生的。
正 如這名稱所暗示的,中斷指得是 CPU 在處理一件事情的中途,硬生生地被打斷。中斷多半來自於為硬體(例如 I/O 裝置完成了 I/O 動作)或軟體(例如控制應用程式的軟體中斷)活動。因為中斷必須在系統等級上才能執行,因此高中斷率會導致系統等級的程序耗去更多 CPU 資源。
程序可能屬於多種不同的狀態。舉例來說,可能是:
等待 I/O 運作結束
等待記憶體管理子系統處理分頁錯誤(page fault)
在這些情形下,程序都不需要用到 CPU 資源。
然而,程序的狀態會隨著時間而改變,成為可執行的程序。正如這名稱所暗示的,可執行程序只要等到 CPU 資源,就可以把工作完成。然而,如果同一時間內有多個可執行程序存在,那麼其中只有一個[1]可以取得 CPU 資源,其他的都得排隊等待。您只要監控可執行程序的數目,就可以知道 CPU 忙碌的程度為何。