性能基礎速讀【性能之巔:洞悉系統、企業與云計算】

      網友投稿 825 2022-05-28

      引言

      第一章 緒論

      通用系統軟件棧

      性能的事情列表

      兩種性能分析視覺:資源分析和負載分析

      性能基礎之速讀【性能之巔:洞悉系統、企業與云計算】

      受測系統

      排隊系統

      排隊理論以及使用率響應時間關系

      方法

      通用的性能分析方法

      引言

      第一章 緒論

      通用系統軟件棧

      性能的事情列表

      兩種性能分析視覺:資源分析和負載分析

      受測系統

      排隊系統

      排隊理論以及使用率響應時間關系

      方法

      通用的性能分析方法

      第三章 操作系統

      第四章 觀測工具

      計數器

      跟蹤

      第五章 應用程序

      第六章 CPU - 第九章 磁盤

      CPU分析工具

      內存分析工具

      文件系統分析工具

      磁盤分析工具

      CPU調優

      內存調優

      文件系統調優

      磁盤調優

      第十章 網絡

      第十一章 云計算 - 第十二章 基準測試

      術語

      方法

      操作系統

      USE 法 Linux 檢查清單

      軟件資源

      小結

      引言

      第一章 緒論

      系統性能是對整個系統的研究,包括了所有的硬件組件和整個軟件棧。所有數據路徑上和軟硬件上所發生的事情都包括在內,因為這些都有可能影響性能。

      通用系統軟件棧

      性能的事情列表

      性能領域包括了以下的事情:

      設置性能目標和建立性能模型

      基于軟件或硬件原型進行性能特征歸納

      對開發代碼進行性能分析(軟件整合之前)

      執行軟件非回歸性測試(軟件發布前或發布后)

      針對軟件發布版本的基準測試

      目標環境中的概念驗證測試

      生產環境部署的配置優化

      監控生產環境中運行的軟件

      特定問題的性能分析

      兩種性能分析視覺:資源分析和負載分析

      術語容量規劃 (capacity planning) 指的是一系列事前行動。在設計階段,包括通過研究開發軟件的資源占用情況,來得知原有設計在多大程度上能滿足目標需求。在部署后,包括監控資源的使用情況,這樣問題在出現之前就能被預測。

      資源分析指標:IOPS,吞吐量,使用率,飽和度

      工作負載指標:吞吐量和延時。

      性能分析必須量化問題的重要程度,有一個指標非常合適,就是延時(latency)。

      動態跟蹤技術把所有的軟件變得可以監控,而且能用在真實的生產環境中。這項技術利用內存中的 CPU 指令并在這些指令之上動態構建檢測數據。這樣能從任何運行的軟件中都可以獲得定制話的性能統計數據,從而提供了遠超系統的自帶統計所能給予的觀測性。

      DTrace 對用戶態和內核態的軟件都提供了靜態跟蹤和動態跟蹤,并且數據是實時產生的

      受測系統

      擾動(perturbation)是會影響結果的,擾動包括定時執行的系統活動、系統的其他用戶以及其他的工作負載。現代環境的另一個困難是系統很可能由若干個網絡化的組件組成,都用于處理輸入工作負載,包括負載平衡、Web 服務器、數據庫服務器、應用程序服務器,以及存儲系統。

      排隊系統

      排隊理論以及使用率響應時間關系

      方法

      在取得數據之前就把事情理論化是一個嚴重的錯誤。不理智的人扭曲事實來適應理論,而不是改變理論來適應事實。

      面對一個性能不佳且復雜的系統環境時,首先需要知道的挑戰就是從什么地方開始分析、收集什么樣的數據,以及如何分析這些數據。

      街燈訛方法(奇葩的命名)

      在熟悉的工具或流程中試錯,比較盲目

      Ad Hoc核對清單法

      保證所有人知道如何檢查最糟糕的問題,覆蓋全面,但必須保持清單及時更新

      診斷循環

      假設–儀器檢驗–數據–假設

      USE方法

      本書重點方法,對于所有資源,查看它的使用率、飽和度、錯誤

      第三章 操作系統

      了解操作系統和它的內核對于系統性能分析是至關重要的。你會經常需要進行針對系統行為的開發和測試,如系統調用是如何執行的、CPU 是如何調度線程的、有限大小的內存是如何影響性能的,或者是文件系統是如何處理 I/O 的。

      這部分的內容本書主要介紹了基本的概念,最好還是結合《深入理解計算機系統》來弄懂,不然真的很容易一知半解,列舉如下:

      內核:內核執行、時鐘、內核態

      棧:用戶棧和內核棧

      中斷和中斷線程

      中斷優先級

      進程:進程創建、進程生命周期、進程環境

      系統調用

      虛擬內存

      內存管理

      調度器

      文件系統:VFS、I/O 棧

      緩存(括號內為例子):應用程序緩存、服務器緩存(Apache 緩存)、緩存服務器(Redis)、數據庫緩存(MySQL 緩沖區高速緩存)、目錄緩存(DNLC)、文件元數據緩存(inode 緩存)、操作系統緩沖區高速緩存(segvn)、文件系統主緩存(ZFS ARC)、文件系統次緩存(ZFS L2ARC)、設備緩存(ZFS vdev)、塊緩存(緩沖區高速緩存)、磁盤控制器緩存(RAID 卡緩存)、存儲陣列緩存、磁盤內置緩存

      網絡

      設備驅動

      多處理器:CPU 交叉調用

      搶占

      資源管理

      觀測性

      第四章 觀測工具

      性能觀測工具可以按照系統級別和進程級別來分類,多數的工具要么基于計數器要么基于跟蹤:

      計數器

      內核維護了各種統計數據,稱為計數器,用于對事件計數。通常計數器實現為無符號的整型數,發生事件時遞增。

      系統級別的計數器有:

      vmstat: 虛擬內存和物理內存的統計,系統級別

      mpstat: 每個 CPU 的使用情況

      iostat: 每個磁盤 I/O 的使用情況,由塊設備接口報告

      netstat: 網絡接口的統計,TCP/IP 棧的統計,以及每個連接的一些統計信息

      sar: 各種各樣的統計,能歸檔歷史數據

      進程級別:

      ps: 進程狀態,顯示進程的各種統計信息,包括內存和 CPU 的使用

      top: 按一個統計數據排序,顯示排名高的進程

      pmap: 將進程的內存段和使用統計一起列出

      一般來說,上述這些工具是從 /proc 文件系統里讀取統計信息的

      跟蹤

      跟蹤收集每一個事件的數據以供分析。跟蹤框架一般默認是不啟用的,因為跟蹤捕獲數據會有 CPU 開銷,另外還需要不小的存儲空間來存放數據。

      系統級別:

      tcpdump: 網絡包跟蹤(libpcap lib)

      blktrace: 塊 I/O 跟蹤

      DTrace: 跟蹤內核的內部活動和所有資源的使用情況,支持靜態和動態的跟蹤

      SystemTap: 同上

      perf: Linux 性能事件,跟蹤靜態和動態的指針

      進程級別:

      strace: 系統調用跟蹤

      gbd: 源碼級別的調試器

      第五章 應用程序

      性能調整離工作所執行的地方越近越好:最好在應用程序里,包括 Web 服務器、應用服務器、負載均衡器、文件服務器,等等。

      設立性能目標能為你的性能分析工作指明方向,并幫助你選擇要做的事情。沒有清晰的目標,性能分析容易淪為隨機的『釣魚探險』。

      常見目標:

      延時

      吞吐量

      資源使用率

      應用程序性能技術:選擇 I/O 尺寸、緩存、緩沖區、輪訓(epoll)、并發和并行、非阻塞 I/O、處理器綁定

      編程語言相關:編譯語言使用編譯器優化、解釋語言一般不是首選、虛擬機、垃圾回收

      第六章 CPU - 第九章 磁盤

      CPU分析工具

      內存分析工具

      文件系統分析工具

      磁盤分析工具

      CPU調優

      多少CPU可用?是核嗎?是硬件線程?

      CPU 架構是單還是多處理器?

      CPU 緩存大小是多少?共享?

      CPU 時鐘頻率是多少?是動態?甚于BIOS?

      CPU 有其它特性?

      CPU 勘誤表上有硬件上的bug?

      BIOS 版本有bug?

      CPU 使用軟件限制?

      內存調優

      主存有多少?

      配置允許應用程序使用的內存大小?

      使用哪個分配器?

      主存速度?

      系統架構?NUMA? UMA?

      NUMA 共享存儲器物理上是分布在所有處理機的本地存儲器上

      UMA 均勻存儲器存取

      內存總線大小?

      是否配置使用了大頁面?

      是否支持和配置過度提交?

      使用了哪些內存可調參數?

      軟件強制內存限制?

      文件系統調優

      當前掛載并使用的文件系統數量?

      文件系統記錄大小?

      啟用了訪問時間戳?

      是否有其它參數(壓縮?加密?)

      緩存大小?二級緩存?

      存儲設備數量?何配置?RAID?

      哪種文件系統?版本?

      啟用I/O控制?

      磁盤調優

      盤數量?類型?

      磁盤固件版本?

      多少個磁盤控制器?版本?接口類型?

      是否為調速插槽?

      配置了RAID?

      是否啟用多路徑?

      磁盤設備驅動?

      啟用I/O控制?

      第十章 網絡

      網絡通信是由一組協議棧組成的,其中的每一層實現一個特定的目標:

      一些網絡通信和網絡性能相關概念:網絡和路由、協議、封裝、包長度、延時(主機名解析延時、ping 延時、連接延時、首字節延時、往返時間、連接生命周期)、緩沖、連接積壓隊列、接口協商、使用率、本地連接。

      對于日常監測來說,最常用的還是各種工具,如:

      netstat -s: 查找高流量的重新傳輸和亂序數據包

      netstat -i: 檢查接口的錯誤計數器

      ifconfig: 檢查『錯誤』『丟棄』和『超限』

      ip(8): 檢查傳輸和接收的字節率

      tcpdump/snoop: 盡管需要大量的 CPU 開銷,短期使用可能就足以發現誰在使用網絡并且定位可以消除的不必要操作

      dtrace/stap/perf: 用來檢查包括內核狀態在內的應用程序與線路間選中的數據

      第十一章 云計算 - 第十二章 基準測試

      這兩章主要介紹相關底層概念,很多時候只是作為選擇云服務提供商的依據(畢竟不能自己開發),暫略。

      術語

      IOPS: 每秒發生的輸入/輸出操作的次數,是數據傳輸的一個度量方法。對于磁盤的讀寫,IOPS 指的是每秒讀和寫的次數

      吞吐量: 評價工作執行的速率,尤其是在數據傳輸方面,這個術語用于描述數據傳輸速度。在某些情況下(如數據庫),吞吐量指的是操作的速度(每秒操作數或每秒業務數)

      響應事件: 一次操作完成的事件。包括用于等待和服務的事件,也包括用來返回結果的時間

      延時: 描述操作里用來等待服務的事件。在某些情況下,它可以指的是整個操作時間,等同于響應時間

      使用率: 對于服務所請求的資源,使用率描述在所給定的時間區間內資源的繁忙成都。對于存儲資源來說,使用率指的就是所消耗的存儲容量(例如,內存使用率)

      飽和度: 指的是某一資源無法滿足服務的排隊工作量

      瓶頸: 在系統性能力,瓶頸指的是限制系統性能的那個資源。分辨和移除系統瓶頸是系統性能的一項重要工作

      工作負載: 系統的輸入或者是對系統所施加的負載叫做工作負載。對于數據庫來說,工作負載就是客戶端發出的數據庫請求和命令

      緩存: 用于復制或者緩沖一定量數據的高速存儲區域,目的是為了避免對較慢的存儲層級的直接訪問,從而提高性能。

      操作系統: 這里指的是安裝在系統上的軟件和文件,使得系統可以啟動和運行程序。操作系統包括內核、管理工具,以及系統庫

      內核: 內核是管理系統的程序,包括設備(硬件)、內存和 CPU 調度。它運行在 CPU 的特權模式,允許直接訪問硬件,稱為內核態

      進程: 是一個操作系統的抽象概念,是用來執行程序的環境。程序通常運行在用戶模式,通過系統調用或陷阱來進入內核模式

      線程: 可被調度的運行在 CPU 上的可執行上下文。內核有多個線程,一個進程有一個或多個線程

      任務: 一個 Linux 的可運行實體,可以指一個進程(含有單個線程),或一個多線程的進程里的一個線程,或者內核線程

      內核空間: 內核的內存地址空間

      用戶空間: 進程的內存地址空間

      上下文切換: 內核程序切換 CPU 讓其在不同的地址空間上做操作

      系統調用: 一套定義明確的協議,為用戶程序請求內核執行特權操作,包括設備 I/O

      陷阱: 信號發送到內核,請求執行一段系統程序(特權操作)。陷阱類型包括系統調用、處理器異常以及中斷

      中斷: 由物理設備發送給內核的信號,通常是請求 I/O 服務

      USE 法 Linux 檢查清單

      小結

      云性能測試服務 CPTS 任務調度 應用性能管理 APM 應用性能調優 高性能計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:電腦復制粘貼沒反應?看這邊!!
      下一篇:華為云服務器購買價格
      相關文章
      亚洲精品免费观看| 亚洲色精品aⅴ一区区三区| 亚洲av不卡一区二区三区| 亚洲国产精品一区二区第一页免| 亚洲国产精品成人AV在线 | 亚洲国产成人久久综合野外| 久久亚洲欧美国产精品| 亚洲午夜精品久久久久久app| 67194在线午夜亚洲| 亚洲六月丁香六月婷婷蜜芽| 亚洲国产av一区二区三区丶| 亚洲国产精品乱码在线观看97| 亚洲精品无码久久毛片波多野吉衣| 亚洲人成电影福利在线播放| 亚洲国产精品线在线观看| 亚洲av综合色区| 亚洲天堂视频在线观看| 亚洲黄色免费在线观看| 亚洲精品综合久久中文字幕 | 国产在亚洲线视频观看| 国产精品久久久久久亚洲小说| 99亚洲乱人伦aⅴ精品| 日韩精品电影一区亚洲| 亚洲 另类 无码 在线| 亚洲精品美女久久久久99小说| 亚洲精品亚洲人成在线观看下载 | 亚洲综合在线观看视频| 老汉色老汉首页a亚洲| 亚洲精品偷拍无码不卡av| 亚洲一区二区三区91| 亚洲综合久久精品无码色欲| 亚洲人成网站免费播放| 国产亚洲综合久久| 久久夜色精品国产亚洲av| 亚洲国产精品无码一线岛国| 亚洲综合在线观看视频| 亚洲视频在线观看2018| 亚洲AV无码国产剧情| 亚洲男女内射在线播放| 亚洲精品色午夜无码专区日韩| 亚洲一区二区三区无码中文字幕|