偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用開源工具識別 Linux 的性能瓶頸

開源 Linux
不久前,識別硬件瓶頸還需要深厚的專業(yè)知識。今天的開源 GUI 性能監(jiān)視器使它變得相當簡單。

[[404232]]

不久前,識別硬件瓶頸還需要深厚的專業(yè)知識。今天的開源 GUI 性能監(jiān)視器使它變得相當簡單。

計算機是一個集成的系統(tǒng),它的性能取決于最慢的硬件組件。如果一個組件的能力比其他組件差,性能落后而不能跟上,它就會拖累你的整個系統(tǒng)。這就是一個 性能瓶頸。消除一個嚴重的瓶頸可以使你的系統(tǒng)飛起來。

本文解釋了如何識別 Linux 系統(tǒng)中的硬件瓶頸。這些技術同時適用于個人的電腦和服務器。我強調(diào)的是個人電腦 —— 我不會涉及局域網(wǎng)管理或數(shù)據(jù)庫系統(tǒng)等領域的服務器特定的瓶頸。這些通常涉及專門的工具。

我也不會多談解決方案。這對本文來說是個太大的話題。相反,我將寫一篇關于性能調(diào)整的后續(xù)文章。

我將只使用開源的圖形用戶界面(GUI)工具來完成這項工作。大多數(shù)關于 Linux 瓶頸的文章都相當復雜。它們使用專門的命令,并深入研究神秘的細節(jié)。

開源提供的 GUI 工具使得識別許多瓶頸變得簡單。我的目標是給你一個快速、簡單的方法,你可以在任何地方使用。

從哪里開始

一臺計算機由六個關鍵的硬件資源組成。

  • 處理器
  • 內(nèi)存
  • 存儲器
  • USB 端口
  • 互聯(lián)網(wǎng)連接
  • 圖形處理器

如果任何一個資源表現(xiàn)不佳,就會產(chǎn)生一個性能瓶頸。為了識別瓶頸,你必須監(jiān)測這六種資源。

開源提供了大量的工具來完成這項工作。我會使用 GNOME 系統(tǒng)監(jiān)視器。它的輸出很容易理解,而且你可以在大多數(shù)軟件庫中找到它。

啟動它并點擊“資源”標簽。你可以馬上發(fā)現(xiàn)許多性能問題。

 

圖 1. 系統(tǒng)監(jiān)控器發(fā)現(xiàn)問題。(Howard Fosdick, CC BY-SA 4.0)

在“資源”面板上顯示三個部分:CPU 歷史、內(nèi)存和交換歷史,以及網(wǎng)絡歷史。一眼就能看出你的處理器是否不堪負荷了,還是你的電腦沒有內(nèi)存了,抑或你的網(wǎng)絡帶寬被用光了。

我將在下面探討這些問題?,F(xiàn)在,當你的電腦速度變慢時,首先檢查系統(tǒng)監(jiān)視器。它可以立即為你提供最常見的性能問題的線索。

現(xiàn)在讓我們來探討一下如何識別特定方面的瓶頸。

如何識別處理器的瓶頸

要發(fā)現(xiàn)瓶頸,你必須首先知道你有什么硬件。開源為這個目的提供了幾個工具。我喜歡 HardInfo,因為它的屏幕顯示很容易閱讀,而且廣泛流行。

啟動 HardInfo。它的“計算機->摘要”面板可以識別你的 CPU 并告訴你它的核心數(shù)、線程數(shù)和速度。它還能識別你的主板和其他計算機部件。

 

圖 2. HardInfo 顯示了硬件細節(jié)。(Howard Fosdick, CC BY-SA 4.0)

HardInfo 顯示,這臺計算機有一個物理 CPU 芯片。該芯片包含兩個處理器(或稱為核心)。每個核心支持兩個線程(或稱為邏輯處理器)。這就是總共四個邏輯處理器 —— 正是圖 1 中系統(tǒng)監(jiān)控器的 CPU 歷史部分所顯示的。

當處理器不能在其時間內(nèi)對請求做出反應時,就會出現(xiàn) 處理器瓶頸,說明它們已經(jīng)很忙了。

當系統(tǒng)監(jiān)控器顯示邏輯處理器的利用率持續(xù)在 80% 或 90% 以上時,你就可以確定這一點。這里有一個例子,四個邏輯處理器中有三個被淹沒在 100% 的利用率中。這是一個瓶頸,因為它沒有留下多少 CPU 用于其他工作。

 

圖 3. 一個處理器的瓶頸。(Howard Fosdick, CC BY-SA 4.0)

哪個程序?qū)е铝诉@個問題?

你需要找出是哪個程序在消耗所有的 CPU。點擊系統(tǒng)監(jiān)視器的“進程”標簽。然后點擊“CPU 百分比”標頭,根據(jù)它們消耗的 CPU 的多少對進程進行排序。你將看到哪些應用程序正在扼殺你的系統(tǒng)。

 

圖 4. 識別違規(guī)的進程。(Howard Fosdick, CC BY-SA 4.0)

前三個進程各消耗了 總 CPU 資源的 24%。由于有四個邏輯處理器,這意味著每個進程消耗了一整個處理器。這就像圖 3 所示。

在“進程”面板上,一個名為“analytical_AI”的程序被確定為罪魁禍首。你可以在面板上右鍵單擊它,以查看其資源消耗的更多細節(jié),包括內(nèi)存使用、它所打開的文件、其輸入/輸出細節(jié),等等。

如果你的登錄會話有管理員權(quán)限,你可以管理這個進程。你可以改變它的優(yōu)先級,并停止、繼續(xù)、結(jié)束或殺死它。因此,你可以在這里立即解決你的瓶頸問題。

 

圖 5. 右鍵點擊一個進程來管理它。(Howard Fosdick, CC BY-SA 4.0)

如何解決處理瓶頸問題?除了實時管理違規(guī)的進程外,你也可以防止瓶頸的發(fā)生。例如,你可以用另一個應用程序來代替違規(guī)進程,繞過它,改變你使用該應用程序的行為,將該應用程序安排在非工作時間,解決潛在的內(nèi)存問題,對該應用程序或你的系統(tǒng)軟件進行性能調(diào)整,或升級你的硬件。這里涉及的內(nèi)容太多,所以我將在下一篇文章中探討這些方式。

常見的處理器瓶頸

在用系統(tǒng)監(jiān)控器監(jiān)控你的 CPU 時,你會遇到幾種常見的瓶頸問題。

有時一個邏輯處理器出現(xiàn)瓶頸,而其他所有的處理器都處于低利用率。這意味著你有一個應用程序,它的代碼不夠智能,無法利用一個以上的邏輯處理器,而且它已經(jīng)把正在使用的那個處理器耗盡了。這個應用程序完成的時間將比使用更多的處理器要長。但另一方面,至少它能讓你的其他處理器騰出手來做別的工作,而不會接管你的電腦。

你也可能看到一個邏輯處理器永遠停留在 100% 的利用率。要么它非常忙,要么是一個進程被掛起了。判斷它是否被掛起的方法是,是看該進程是否從不進行任何磁盤活動(正如系統(tǒng)監(jiān)視器“進程”面板所顯示的那樣)。

最后,你可能會注意到,當你所有的處理器都陷入瓶頸時,你的內(nèi)存也被完全利用了。內(nèi)存不足的情況有時會導致處理器瓶頸。在這種情況下,你要解決的是根本的內(nèi)存問題,而不是體現(xiàn)出癥狀的 CPU 問題。

如何識別內(nèi)存瓶頸

鑒于現(xiàn)代 PC 中有大量的內(nèi)存,內(nèi)存瓶頸比以前要少得多。然而,如果你運行內(nèi)存密集型程序,特別是當你的計算機沒有很多的隨機存取內(nèi)存(RAM)時,你仍然可能遇到這些問題。

Linux 使用內(nèi)存 既用于程序,也用于緩存磁盤數(shù)據(jù)。后者加快了磁盤數(shù)據(jù)的訪問速度。Linux 可以在它需要的任何時候回收這些內(nèi)存供程序使用。

系統(tǒng)監(jiān)視器的“資源”面板顯示了你的總內(nèi)存和它被使用的程度。在“進程”面板上,你可以看到單個進程的內(nèi)存使用情況。

下面是系統(tǒng)監(jiān)控器“資源”面板中跟蹤總內(nèi)存使用的部分。

 

圖 6. 一個內(nèi)存瓶頸。(Howard Fosdick, CC BY-SA 4.0)

在“內(nèi)存”的右邊,你會注意到 交換空間。這是 Linux 在內(nèi)存不足時使用的磁盤空間。它將內(nèi)存寫入磁盤以繼續(xù)操作,有效地將交換空間作為你的內(nèi)存的一個較慢的擴展。

你要注意的兩個內(nèi)存性能問題是:

  1. 內(nèi)存被大量使用,而且你看到交換空間的活動頻繁或不斷增加。
  2. 內(nèi)存和交換空間都被大量使用。

情況一意味著更慢的性能,因為交換空間總是比內(nèi)存更慢。你是否認為這是一個性能問題,取決于許多因素(例如,你的交換空間有多活躍、它的速度、你的預期,等等)。我的看法是,對于現(xiàn)代個人電腦來說,交換空間任何超過象征性的使用都是不可接受的。

情況二是指內(nèi)存和交換空間都被大量使用。這是一個 內(nèi)存瓶頸。計算機變得反應遲鈍。它甚至可能陷入一種“咆哮”的狀態(tài),在這種狀態(tài)下,除了內(nèi)存管理之外,它幾乎不能完成其他任務。

上面的圖 6 顯示了一臺只有 2GB 內(nèi)存的舊電腦。當內(nèi)存使用量超過 80% 時,系統(tǒng)開始向交換空間寫入,響應速度下降了。這張截圖顯示了內(nèi)存使用量超過了 90%,而且這臺電腦已經(jīng)無法使用。

解決內(nèi)存問題的最終答案是要么少用內(nèi)存,要么多買內(nèi)存。我將在后續(xù)文章中討論解決方案。

如何識別存儲瓶頸

如今的存儲有固態(tài)和機械硬盤等多個品種。設備接口包括 PCIe、SATA、雷電和 USB。無論有哪種類型的存儲,你都要使用相同的程序來識別磁盤瓶頸。

從系統(tǒng)監(jiān)視器開始。它的“進程”面板顯示各個進程的輸入/輸出率。因此,你可以快速識別哪些進程做了最多的磁盤 I/O。

但該工具并不顯示每個磁盤的總數(shù)據(jù)傳輸率。你需要查看特定磁盤上的總負載,以確定該磁盤是否是一個存儲瓶頸。

要做到這一點,使用 atop 命令。它在大多數(shù) Linux 軟件庫中都有。

只要在命令行提示符下輸入 atop 即可。下面的輸出顯示,設備 sdb 達到 busy 101%。很明顯,它已經(jīng)達到了性能極限,限制了你的系統(tǒng)完成工作的速度。

 

圖 7. atop 命令識別了一個磁盤瓶頸。(Howard Fosdick, CC BY-SA 4.0)

注意到其中一個 CPU 有 85% 的時間在等待磁盤完成它的工作(cpu001 w 85%)。這是典型的存儲設備成為瓶頸的情況。事實上,許多人首先看 CPU 的 I/O 等待時間來發(fā)現(xiàn)存儲瓶頸。

因此,要想輕松識別存儲瓶頸,請使用 atop 命令。然后使用系統(tǒng)監(jiān)視器上的“進程”面板來識別導致瓶頸的各個進程。

如何識別 USB 端口的瓶頸

有些人整天都在使用他們的 USB 端口。然而,他們從不檢查這些端口是否被最佳地使用。無論你是插入外部磁盤、U 盤,還是其他東西,你都要確認你是否從 USB 連接的設備中獲得了最大性能。

這個圖表顯示了原因。潛在的 USB 數(shù)據(jù)傳輸率差異 很大。

 

圖 8. USB 速度變化很大。(Howard Fosdick,根據(jù) Tripplite 和 Wikipedia 提供的數(shù)字,CC BY-SA 4.0)

HardInfo 的“USB 設備”標簽顯示了你的計算機支持的 USB 標準。大多數(shù)計算機提供不止一種速度。你怎么知道一個特定端口的速度呢?供應商對它們進行顏色編碼,如圖表中所示。或者你可以在你的計算機的文檔中查找。

要看到你得到的實際速度,可以使用開源的 GNOME 磁盤 程序進行測試。只要啟動 GNOME 磁盤,選擇它的“磁盤基準”功能,然后運行一個基準測試。這將告訴你在一個端口插入特定設備時,你將得到的最大實際速度。

你可能會得到不同的端口傳輸速度,這取決于你將哪個設備插入它。數(shù)據(jù)速率取決于端口和設備的特定組合。

例如,一個可以以 3.1 速度運行的設備如果使用 2.0 端口就會以 2.0 的速度運行。(而且它不會告訴你它是以較慢的速度運行的?。┫喾?,如果你把一個 USB 2.0 設備插入 3.1 端口,它能工作,但速度是 2.0 的速度。所以要獲得快速的 USB,你必須確保端口和設備都支持它。GNOME 磁盤為你提供了驗證這一點的方法。

要確定 USB 的處理瓶頸,使用你對固態(tài)和硬盤所做的同樣程序。運行 atop 命令來發(fā)現(xiàn) USB 存儲瓶頸。然后,使用系統(tǒng)監(jiān)視器來獲取違規(guī)進程的詳細信息。

如何識別互聯(lián)網(wǎng)帶寬瓶頸

系統(tǒng)監(jiān)控器的“資源”面板會實時告訴你互聯(lián)網(wǎng)連接速度(見圖 1)。

有 很好的 Python 工具 可以測試你的最大網(wǎng)速,但你也可以在 Speedtest、Fast.com 和 Speakeasy 等網(wǎng)站進行測試。為了獲得最佳結(jié)果,關閉所有東西,只運行 速度測試;關閉你的虛擬私有網(wǎng)絡;在一天中的不同時間運行測試;并比較幾個測試網(wǎng)站的結(jié)果。

然后將你的結(jié)果與你的供應商聲稱的下載和上傳速度進行比較。這樣,你就可以確認你得到的是你所付費的速度。

如果你有一個單獨的路由器,在有和沒有它的情況下進行測試。這可以告訴你,你的路由器是否是一個瓶頸。如果你使用 WiFi,在有 WiFi 和沒有 WiFi 的情況下進行測試(通過將你的筆記本電腦直接與調(diào)制解調(diào)器連接)。我經(jīng)??吹饺藗儽г顾麄兊幕ヂ?lián)網(wǎng)供應商,而實際上他們只是有一個 WiFi 瓶頸,可以自己解決。

如果某些程序正在消耗你的整個互聯(lián)網(wǎng)連接,你想知道是哪一個。通過使用 nethogs 命令找到它。它在大多數(shù)軟件庫中都有。

有一天,我的系統(tǒng)監(jiān)視器突然顯示我的互聯(lián)網(wǎng)訪問量激增。我只是在命令行中輸入了 nethogs,它立即確定帶寬消耗者是 Clamav 防病毒更新。

 

圖 9. Nethogs 識別帶寬用戶。(Howard Fosdick, CC BY-SA 4.0)

如何識別圖形處理瓶頸

如果你把顯示器插在臺式電腦后面的主板上,你就在使用 板載顯卡。如果你把它插在后面的卡上,你就有一個專門的圖形子系統(tǒng)。大多數(shù)人稱它為 視頻卡 或 顯卡。對于臺式電腦來說,附加顯卡通常比主板上的顯卡更強大、更昂貴。筆記本電腦總是使用板載顯卡。

HardInfo 的“PCI 設備”面板告訴你關于你的圖形處理單元(GPU)。它還顯示你的專用視頻內(nèi)存的數(shù)量(尋找標有“可預取”的內(nèi)存)。

 

圖 10. HardInfo提供圖形處理信息。(Howard Fosdick, CC BY-SA 4.0)

CPU 和 GPU 非常密切地 一起工作。簡而言之,CPU 為 GPU 準備渲染的幀,然后 GPU 渲染這些幀。

當你的 CPU 在等待 100% 繁忙的 GPU 時,就會出現(xiàn) GPU 瓶頸。

為了確定這一點,你需要監(jiān)控 CPU 和 GPU 的利用率。像 Conky 和 Glances 這樣的開源監(jiān)控器,如果它們的擴展插件支持你的圖形芯片組,就可以做到這一點。

看一下 Conky 的這個例子。你可以看到,這個系統(tǒng)有很多可用的 CPU。GPU 只有 25% 的使用率。想象一下,如果這個 GPU 的數(shù)量接近 100%。那么你就會知道 CPU 在等待 GPU,你就會有一個 GPU 的瓶頸。

 

圖 11. Conky 顯示 CPU 和 GPU 的利用率。 (圖片來源:AskUbuntu論壇)

在某些系統(tǒng)上,你需要一個供應商專屬的工具來監(jiān)控你的 GPU。它們可以從 GitHub 上下載,并在 GPU 監(jiān)控和診斷命令行工具 這篇文章中有所描述。

總結(jié)

計算機由一系列集成的硬件資源組成。如果它們中的任何一個在工作量上遠遠落后于其他資源,就會產(chǎn)生性能瓶頸。這可能會拖累你的整個系統(tǒng)。你需要能夠識別和糾正瓶頸,以實現(xiàn)最佳性能。

 

不久前,識別瓶頸需要深厚的專業(yè)知識。今天的開源 GUI 性能監(jiān)控器使它變得相當簡單。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-03-05 14:00:19

Linux性能瓶頸命令

2024-02-02 15:21:08

工具頁面性能

2019-05-10 11:13:19

分析工具Java

2011-02-16 09:08:27

ASP.NET

2021-06-11 13:02:05

開源工具LinuxLinux PC

2019-05-23 08:08:33

MySQL數(shù)據(jù)庫DBA

2021-05-26 14:05:44

開源工具Linux內(nèi)存取證

2020-11-11 10:00:13

NAT性能內(nèi)核

2015-05-25 14:13:18

Yahoo MySQL性能分析工開源

2021-12-09 08:56:15

微軟開源分析工具

2025-05-19 09:20:08

2017-06-12 18:48:00

Android性能分析工具

2009-01-17 15:26:05

2009-06-22 08:38:33

Windows 7微軟操作系統(tǒng)

2023-06-09 12:59:52

Python性能分析

2013-02-22 18:28:18

容錯服務器、

2024-09-27 19:39:27

2019-10-31 11:50:19

MySQL數(shù)據(jù)庫Windows

2009-03-31 16:41:38

網(wǎng)絡性能網(wǎng)絡監(jiān)控開源

2023-05-17 15:22:45

識別開源工具
點贊
收藏

51CTO技術棧公眾號