溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

發(fā)布時(shí)間:2021-10-23 11:31:43 來源:億速云 閱讀:126 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家展示了“怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸”這篇文章吧。

sar 命令用用收集、報(bào)告、或者保存 UNIX / Linux 系統(tǒng)的活動(dòng)信息。它保存選擇的計(jì)數(shù)器到操作系統(tǒng)的 /var/log/sa/sadd 文件中。從收集的數(shù)據(jù)中,你可以得到許多關(guān)于你的服務(wù)器的信息:

  1. CPU 使用率

  2. 內(nèi)存頁面和使用率

  3. 網(wǎng)絡(luò) I/O 和傳輸統(tǒng)計(jì)

  4. 進(jìn)程創(chuàng)建活動(dòng)

  5. 所有的塊設(shè)備活動(dòng)

  6. 每秒中斷數(shù)等等

sar 命令的輸出能夠用于識(shí)別服務(wù)器瓶頸。但是,分析 sar 命令提供的信息可能比較困難,所以要使用 kSar 工具。kSar 工具可以將 sar 命令的輸出繪制成基于時(shí)間周期的、易于理解的圖表。

sysstat 包

sar、sa1、和 sa2 命令都是 sysstat 包的一部分。它是 Linux 包含的性能監(jiān)視工具集合。

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. sar:顯示數(shù)據(jù)

  3. sa1sa2:收集和保存數(shù)據(jù)用于以后分析。sa2 shell 腳本在 /var/log/sa 目錄中每日寫入一個(gè)報(bào)告。sa1 shell 腳本將每日的系統(tǒng)活動(dòng)信息以二進(jìn)制數(shù)據(jù)的形式寫入到文件中。

  4. sadc —— 系統(tǒng)活動(dòng)數(shù)據(jù)收集器。你可以通過修改 sa1sa2 腳本去配置各種選項(xiàng)。它們位于以下的目錄:

    • /usr/lib64/sa/sa1 (64 位)或者 /usr/lib/sa/sa1 (32 位) —— 它調(diào)用 sadc 去記錄報(bào)告到 /var/log/sa/sadX 格式。

    • /usr/lib64/sa/sa2 (64 位)或者 /usr/lib/sa/sa2 (32 位) —— 它調(diào)用 sar 去記錄報(bào)告到 /var/log/sa/sarX 格式。 

如何在我的系統(tǒng)上安裝 sar?

在一個(gè)基于 CentOS/RHEL 的系統(tǒng)上,輸入如下的 yum 命令 去安裝 sysstat:

# yum install sysstat

示例輸出如下:

Loaded plugins: downloadonly, fastestmirror, priorities,              : protectbase, securityLoading mirror speeds from cached hostfile * addons: mirror.cs.vt.edu * base: mirror.ash.fastserv.com * epel: serverbeach2.fedoraproject.org * extras: mirror.cogentco.com * updates: centos.mirror.nac.net0 packages excluded due to repository protectionsSetting up Install ProcessResolving Dependencies--> Running transaction check---> Package sysstat.x86_64 0:7.0.2-3.el5 set to be updated--> Finished Dependency Resolution Dependencies Resolved ==================================================================== Package        Arch          Version             Repository   Size====================================================================Installing: sysstat        x86_64        7.0.2-3.el5         base        173 k Transaction Summary====================================================================Install      1 Package(s)Update       0 Package(s)Remove       0 Package(s) Total download size: 173 kIs this ok [y/N]: yDownloading Packages:sysstat-7.0.2-3.el5.x86_64.rpm               | 173 kB     00:00Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction  Installing     : sysstat                                      1/1 Installed:  sysstat.x86_64 0:7.0.2-3.el5 Complete!
為 sysstat 配置文件

編輯 /etc/sysconfig/sysstat 文件去指定日志文件保存多少天(最長(zhǎng)為一個(gè)月):

# vi /etc/sysconfig/sysstat

示例輸出如下 :

# keep log for 28 days# the default is 7HISTORY=28

保存并關(guān)閉這個(gè)文件。

找到 sar 默認(rèn)的 cron 作業(yè)

默認(rèn)的 cron 作業(yè)位于 /etc/cron.d/sysstat

# cat /etc/cron.d/sysstat

示例輸出如下:

# run system activity accounting tool every 10 minutes*/10 * * * * root /usr/lib64/sa/sa1 1 1# generate a daily summary of process accounting at 23:5353 23 * * * root /usr/lib64/sa/sa2 -A
告訴 sadc 去報(bào)告磁盤的統(tǒng)計(jì)數(shù)據(jù)

使用一個(gè)文本編輯器去編輯 /etc/cron.d/sysstat 文件,比如使用 vim 命令,輸入如下:

# vi /etc/cron.d/sysstat

像下面的示例那樣更新這個(gè)文件,以記錄所有的硬盤統(tǒng)計(jì)數(shù)據(jù)(-d 選項(xiàng)強(qiáng)制記錄每個(gè)塊設(shè)備的統(tǒng)計(jì)數(shù)據(jù),而 -I 選項(xiàng)強(qiáng)制記錄所有系統(tǒng)中斷的統(tǒng)計(jì)數(shù)據(jù)):

# run system activity accounting tool every 10 minutes*/10 * * * * root /usr/lib64/sa/sa1 -I -d 1 1# generate a daily summary of process accounting at 23:5353 23 * * * root /usr/lib64/sa/sa2 -A

在 CentOS/RHEL 7.x 系統(tǒng)上你需要傳遞 -S DISK 選項(xiàng)去收集塊設(shè)備的數(shù)據(jù)。傳遞 -S XALL 選項(xiàng)去采集如下所列的數(shù)據(jù):

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 磁盤

  3. 分區(qū)

  4. 系統(tǒng)中斷

  5. SNMP

  6. IPv6

# Run system activity accounting tool every 10 minutes*/10 * * * * root /usr/lib64/sa/sa1 -S DISK 1 1# 0 * * * * root /usr/lib64/sa/sa1 600 6 &# Generate a daily summary of process accounting at 23:5353 23 * * * root /usr/lib64/sa/sa2 -A# Run system activity accounting tool every 10 minutes

保存并關(guān)閉這個(gè)文件。

打開 CentOS/RHEL 版本 5.x/6.x 的服務(wù)

輸入如下命令:

chkconfig sysstat onservice sysstat start

示例輸出如下:

Calling the system activity data collector (sadc):

對(duì)于 CentOS/RHEL 7.x,運(yùn)行如下的命令:

# systemctl enable sysstat# systemctl start sysstat.service# systemctl status sysstat.service

示例輸出:

● sysstat.service - Resets System Activity Logs   Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled)   Active: active (exited) since Sat 2018-01-06 16:33:19 IST; 3s ago  Process: 28297 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, status=0/SUCCESS) Main PID: 28297 (code=exited, status=0/SUCCESS) Jan 06 16:33:19 centos7-box systemd[1]: Starting Resets System Activity Logs...Jan 06 16:33:19 centos7-box systemd[1]: Started Resets System Activity Logs.

如何使用 sar?如何查看統(tǒng)計(jì)數(shù)據(jù)?

使用 sar 命令去顯示操作系統(tǒng)中選定的累積活動(dòng)計(jì)數(shù)器輸出。在這個(gè)示例中,運(yùn)行 sar 命令行,去實(shí)時(shí)獲得 CPU 使用率的報(bào)告:

# sar -u 3 10

示例輸出:

Linux 2.6.18-164.2.1.el5 (www-03.nixcraft.in)   12/14/2009 09:49:47 PM CPU %user %nice %system %iowait %steal %idle09:49:50 PM all 5.66 0.00 1.22 0.04 0.00 93.0809:49:53 PM all 12.29 0.00 1.93 0.04 0.00 85.7409:49:56 PM all 9.30 0.00 1.61 0.00 0.00 89.1009:49:59 PM all 10.86 0.00 1.51 0.04 0.00 87.5809:50:02 PM all 14.21 0.00 3.27 0.04 0.00 82.4709:50:05 PM all 13.98 0.00 4.04 0.04 0.00 81.9309:50:08 PM all 6.60 6.89 1.26 0.00 0.00 85.2509:50:11 PM all 7.25 0.00 1.55 0.04 0.00 91.1509:50:14 PM all 6.61 0.00 1.09 0.00 0.00 92.3109:50:17 PM all 5.71 0.00 0.96 0.00 0.00 93.33Average: all 9.24 0.69 1.84 0.03 0.00 88.20

其中:

  • 3 表示間隔時(shí)間

  • 10 表示次數(shù)

查看進(jìn)程創(chuàng)建的統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -c 3 10

查看 I/O 和傳輸率統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -b 3 10

查看內(nèi)存頁面統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -B 3 10

查看塊設(shè)備統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -d 3 10

查看所有中斷的統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -I XALL 3 10

查看網(wǎng)絡(luò)設(shè)備特定的統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -n DEV 3 10# sar -n EDEV 3 10

查看 CPU 特定的統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -P ALL# Only 1st CPU stats# sar -P 1 3 10

查看隊(duì)列長(zhǎng)度和平均負(fù)載的統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -q 3 10

查看內(nèi)存和交換空間的使用統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -r 3 10# sar -R 3 10

查看 inode、文件、和其它內(nèi)核表統(tǒng)計(jì)數(shù)據(jù)狀態(tài),輸入:

# sar -v 3 10

查看系統(tǒng)切換活動(dòng)統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -w 3 10

查看交換統(tǒng)計(jì)數(shù)據(jù),輸入:

# sar -W 3 10

查看一個(gè) PID 為 3256 的 Apache 進(jìn)程,輸入:

# sar -x 3256 3 10

kSar 介紹

sarsadf 提供了基于命令行界面的輸出。這種輸出可能會(huì)使新手用戶/系統(tǒng)管理員感到無從下手。因此,你需要使用 kSar,它是一個(gè)圖形化顯示你的 sar 數(shù)據(jù)的 Java 應(yīng)用程序。它也允許你以 PDF/JPG/PNG/CSV 格式導(dǎo)出數(shù)據(jù)。你可以用三種方式去加載數(shù)據(jù):本地文件、運(yùn)行本地命令、以及通過 SSH 遠(yuǎn)程運(yùn)行的命令。kSar 可以處理下列操作系統(tǒng)的 sar 輸出:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. Solaris 8, 9 和 10

  3. Mac OS/X 10.4+

  4. Linux (Systat Version >= 5.0.5)

  5. AIX (4.3 & 5.3)

  6. HPUX 11.00+ 

下載和安裝 kSar

訪問 官方 網(wǎng)站去獲得***版本的源代碼。使用 wget 去下載源代碼,輸入:

$ wget https://github.com/vlsi/ksar/releases/download/v5.2.4-snapshot-652bf16/ksar-5.2.4-SNAPSHOT-all.jar
如何運(yùn)行 kSar?

首先要確保你的機(jī)器上 JAVA jdk 已安裝并能夠正常工作。輸入下列命令去啟動(dòng) kSar:

$ java -jar ksar-5.2.4-SNAPSHOT-all.jar

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

kSar welcome screen

接下來你將看到 kSar 的主窗口,和有兩個(gè)菜單的面板。

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

kSar - the main window

左側(cè)有一個(gè)列表,是 kSar 根據(jù)數(shù)據(jù)已經(jīng)解析出的可用圖表的列表。右側(cè)窗口將展示你選定的圖表。

如何使用 kSar 去生成 sar 圖表?

首先,你需要從命名為 server1 的服務(wù)器上采集 sar 命令的統(tǒng)計(jì)數(shù)據(jù)。輸入如下的命令:

[ server1 ]# LC_ALL=C sar -A  > /tmp/sar.data.txt

接下來,使用 scp 命令從本地桌面拷貝到遠(yuǎn)程電腦上:

[ desktop ]$ scp user@server1.nixcraft.com:/tmp/sar.data.txt /tmp/

切換到 kSar 窗口,點(diǎn)擊 “Data” > “Load data from text file” > 從 /tmp/ 中選擇 sar.data.txt > 點(diǎn)擊 “Open” 按鈕。

現(xiàn)在,圖表類型樹已經(jīng)出現(xiàn)在左側(cè)面板中并選定了一個(gè)圖形:

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

Linux kSar Processes for server1

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

Linux Disk I/O Stats Using kSar

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

Linux Memory paging and its utilization stats

放大和縮小

通過移動(dòng)你可以交互式縮放圖像的一部分。在要縮放的圖像的左上角點(diǎn)擊并按下鼠標(biāo),移動(dòng)到要縮放區(qū)域的右下角,可以選定要縮放的區(qū)域。返回到未縮放狀態(tài),點(diǎn)擊并拖動(dòng)鼠標(biāo)到除了右下角外的任意位置,你也可以點(diǎn)擊并選擇 zoom 選項(xiàng)。

了解 kSar 圖像和 sar 數(shù)據(jù)

我強(qiáng)烈建議你去閱讀 sarsadf 命令的 man 頁面:

$ man sar$ man sadf

案例學(xué)習(xí):識(shí)別 Linux 服務(wù)器的 CPU 瓶頸

使用 sar 命令和 kSar 工具,可以得到內(nèi)存、CPU、以及其它子系統(tǒng)的詳細(xì)快照。例如,如果 CPU 使用率在一個(gè)很長(zhǎng)的時(shí)間內(nèi)持續(xù)高于 80%,有可能就是出現(xiàn)了一個(gè) CPU 瓶頸。使用 sar -x ALL 你可以找到大量消耗 CPU 的進(jìn)程。

mpstat 命令 的輸出(sysstat 包的一部分)也會(huì)幫你去了解 CPU 的使用率。但你可以使用 kSar 很容易地去分析這些信息。

找出 CPU 瓶頸后 …

對(duì) CPU 執(zhí)行如下的調(diào)整:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 確保沒有不需要的進(jìn)程在后臺(tái)運(yùn)行。關(guān)閉 Linux 上所有不需要的服務(wù)。

  3. 使用 cron 在一個(gè)非高峰時(shí)刻運(yùn)行任務(wù)(比如,備份)。

  4. 使用 top 和 ps 命令 去找出所有非關(guān)鍵的后臺(tái)作業(yè)/服務(wù)。使用 renice 命令 去調(diào)整低優(yōu)先級(jí)作業(yè)。

  5. 使用 taskset 命令去設(shè)置進(jìn)程使用的 CPU  (卸載所使用的 CPU),即,綁定進(jìn)程到不同的 CPU 上。例如,在 2# CPU 上運(yùn)行 MySQL 數(shù)據(jù)庫,而在 3# CPU 上運(yùn)行 Apache。

  6. 確保你的系統(tǒng)使用了***的驅(qū)動(dòng)程序和固件。

  7. 如有可能在系統(tǒng)上增加額外的 CPU。

  8. 為單線程應(yīng)用程序使用更快的 CPU(比如,Lighttpd web 服務(wù)器應(yīng)用程序)。

  9. 為多線程應(yīng)用程序使用多個(gè) CPU(比如,MySQL 數(shù)據(jù)庫服務(wù)器應(yīng)用程序)。

  10. 為一個(gè) web 應(yīng)用程序使用多個(gè)計(jì)算節(jié)點(diǎn)并設(shè)置一個(gè) 負(fù)載均衡器。

isag —— 交互式系統(tǒng)活動(dòng)記錄器(替代工具)

isag 命令圖形化顯示了以前運(yùn)行 sar 命令時(shí)存儲(chǔ)在二進(jìn)制文件中的系統(tǒng)活動(dòng)數(shù)據(jù)。isag 命令引用 sar 并提取出它的數(shù)據(jù)來繪制圖形。與 kSar 相比,isag 的選項(xiàng)比較少。

怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸

以上是“怎么使用sar和kSar來發(fā)現(xiàn)Linux性能瓶頸”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI