《效能之巔》讀書筆記 效能觀測工具概述

2021-10-19 14:26:23 字數 1202 閱讀 4322

效能觀測工具可以按照系統級別和程序級別來分類,多數的工具要麼基於計數器要麼基於跟蹤,還有一些工具基於剖析。

核心維護了各種統計資料,稱為計數器,用於對事件計數。通常計數器實現為無符號的整型數,發生事件時遞增。例如,有網路包接收的計數器,有磁碟i/o發生的計數器,也有系統呼叫執行的計數器。

計數器的使用可以認為是零開銷的,因為它們預設就是開啟的,而且始終由核心維護。唯一的使用開銷是從使用者空間讀取它們的時候。下面介紹按照系統級別和程序級別來劃分的兩類基於計數器的工具。

系統級別

下面這些工具利用核心的計數器在系統軟硬體的環境中檢查系統級別的活動

程序級別

下面這些工具是以程序為導向的,使用的是核心為每個程序維護的計數器

跟蹤收集每乙個事件的資料以供分析。跟蹤框架一般預設是不開啟的,因為跟蹤捕獲資料會有cpu開銷,另外還需要不小的儲存空間來存放資料。下面介紹按照系統級別和程序級別來劃分的兩類基於跟蹤的工具。

系統級別

利用核心的跟蹤設施,下面這些跟蹤工具在系統軟硬體的環境中檢查系統級別的活動。

程序級別

下面這些跟蹤工具是以程序為導向的,基於的是作業系統提供的框架。

剖析通過對目標收集取樣或快照來歸納目標特徵。通常剖析都是基於時間的,按照固定頻率取樣。但也能基於非計時的硬體事件,如cpu硬體快取未命中或者匯流排活動。

系統進別和程序級別

下面這些工具所做的剖析都是基於時間並基於硬體快取的。

/proc

/proc是乙個提供核心統計資訊的檔案系統介面。它包含很多的目錄,其中以程序id命名的目錄代表的就是那個程序。這些目錄下的眾多檔案包含了程序的資訊和統計資料,由核心資料結構對映而來。在linux中,/proc還有其他的檔案,提供系統級別的統計資料。

/proc由核心動態建立,不需要任何儲存裝置(在記憶體中執行)。多數檔案是唯讀的,為觀測工具提供統計資料,一部分檔案是可寫的,用於控制程序和核心的行為。

/sys

linux還提供了乙個sysfs檔案系統,掛載在/sys,這是在2.6核心引入的,為核心統計提供乙個基於目錄的結構。與/proc不同的是,/sys經過一段時間的發展,把各種系統資訊放在了頂層目錄。sysfs最初是設計用於提供裝置驅動的統計資料,不過現在已經擴充套件到了提供所有的統計型別。

kstat

基於solaris的系統有乙個為系統級別的觀測工具所有的核心統計框架,kstat。它包括了絕大多數資源的統計,有cpu、磁碟、網路介面、記憶體,以及核心裡許多的軟體元件。

效能之巔讀書筆記 推薦序

本書是難得的unix linux 系統管理員和運維工程師的百科全書式參考手冊 張銀奎給出的軟體工程師發展道路 首先要確認自己是喜歡軟體技術的,願意在技術方向上持續發展。接下來的問題是如何在技術方向上不斷前進。日日新,又日新 我的建議是,逐級攀登軟體技術的 台階 編碼 除錯和調優。優化的成倍效應 不要...

讀書筆記 效能調優

1.通常使用synchronized關鍵字同步 可讀性好,如果涉及效能問題,可以使用顯式的lock物件 2.免鎖容器 通用策略 對容器的修改可以與讀取操作同時發生,只要讀取者只能看到完成修改的結果即可。修改是在容器資料結構的某個部分的乙個單獨的副本上執行的,並且這個副本在修改過程中不可視。只有當完成...

效能之巔讀書筆記 作業系統部分概念

1.核心 核心管理包括 cpu排程 記憶體 檔案系統 網路協議棧 硬體裝置 磁碟 網絡卡等 其對外提供系統呼叫介面,使用者態的應用程式可以通過有系統呼叫或者系統庫提供的介面來呼叫核心。核心排程需要考慮點 1 資源競爭 如cpu競爭,在多程序系統中,cpu資源不足時,核心排程器需要決定哪個程序占用cp...