Linux使用sar命令跟蹤和記錄系統(tǒng)資源利用率
sar
命令是 Linux 系統(tǒng)中的一個系統(tǒng)監(jiān)控工具,由 sysstat
包提供。它可以定期收集系統(tǒng)的各種性能數(shù)據,包括CPU利用率、內存使用情況、磁盤I/O活動、網絡流量等,并可以將這些數(shù)據保存到日志文件中供以后分析。
sar功能和特點
- 多種資源監(jiān)控:
sar
可以監(jiān)控CPU、內存、磁盤I/O、網絡、交換分區(qū)等多個系統(tǒng)資源。 - 定時采集:
sar
能夠按設定的時間間隔自動采集系統(tǒng)性能數(shù)據。 - 歷史記錄:
sar
將采集的數(shù)據保存到日志文件中,可以隨時查看歷史記錄。 - 圖表展示:結合
ksar
等工具,sar
數(shù)據可以生成圖表,方便分析。
安裝 sysstat 包
sysstat
包包含了 sar
命令及其他系統(tǒng)性能監(jiān)控工具。不同的Linux發(fā)行版有不同的安裝方法。
在 Debian/Ubuntu 系統(tǒng)上安裝
sudo apt-get update sudo apt-get install sysstat
在 RHEL/CentOS 系統(tǒng)上安裝
sudo yum install sysstat
安裝完成后,需要啟用并啟動 sysstat
服務:
sudo systemctl enable sysstat sudo systemctl start sysstat
配置 sar 命令
sar
的配置文件通常位于 /etc/sysstat/sysstat
或 /etc/default/sysstat
,可以通過編輯該文件來配置 sar
的行為。
# sysstat configuration file. # How long to keep log files (in days). # If value is greater than 28, it is also used to determine how long # data are kept in a file (in months). HISTORY=7 # Compress (using gzip or bzip2) sa and sar files older than (in days): COMPRESSAFTER=10 # Parameters for the system activity data collector (see sadc manual page). # By default contains the interval between two groups of samples and the # number of samples to be collected. If not specified, the default values # are 10 minutes and 1 respectively. SADC_OPTIONS="-S DISK" # Directory where the sa and sar files are saved. # The default is /var/log/sysstat. SA_DIR=/var/log/sysstat
使用 sar 命令收集數(shù)據
sar
命令可以在命令行直接使用,也可以通過 cron
定時任務自動執(zhí)行。
直接使用 sar 命令
# 顯示當前系統(tǒng)的CPU利用率 sar # 顯示5秒間隔的CPU利用率,顯示3次 sar -u 5 3
使用 cron 定時任務
編輯 /etc/cron.d/sysstat
文件,可以設置 sar
的定時任務。例如,每10分鐘采集一次數(shù)據:
# Activity reports every 10 minutes everyday */10 * * * * root /usr/lib/sysstat/sa1 1 1
分析 sar 輸出
sar
命令輸出的數(shù)據通常按資源類別分類,例如CPU利用率、內存使用情況、磁盤I/O活動等。
CPU利用率
sar -u
輸出示例:
11:00:01 AM CPU %user %nice %system %iowait %steal %idle 11:10:01 AM all 0.27 0.00 0.23 0.04 0.00 99.46
%user
:用戶進程的CPU時間百分比。%system
:內核進程的CPU時間百分比。%iowait
:等待I/O操作的時間百分比。%idle
:空閑時間百分比。
內存使用情況
sar -r
輸出示例:
11:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 11:10:01 AM 102400 8096000 98.75 10000 200000 4200000 60.00
kbmemfree
:空閑內存(以KB為單位)。kbmemused
:已用內存(以KB為單位)。%memused
:已用內存的百分比。kbbuffers
:內核緩沖區(qū)(以KB為單位)。kbcached
:緩存(以KB為單位)。kbcommit
:承諾的內存(以KB為單位)。%commit
:承諾的內存占物理內存的百分比。
使用 sar 進行性能調優(yōu)
通過對 sar
輸出數(shù)據的分析,可以找出系統(tǒng)性能瓶頸,并進行相應的優(yōu)化。
如果 %user
或 %system
持續(xù)高于80%,說明CPU負載較重,可以考慮以下措施:
- 優(yōu)化應用程序,減少CPU占用。
- 增加CPU核心數(shù)量。
- 使用負載均衡將任務分散到其他服務器。
如果 kbmemfree
持續(xù)較低,kbcommit
持續(xù)較高,說明內存不足,可以考慮以下措施:
增加物理內存。優(yōu)化應用程序,減少內存占用。檢查是否有內存泄漏。
如果 %iowait
持續(xù)較高,說明I/O性能成為瓶頸,可以考慮以下措施:
- 升級磁盤系統(tǒng)(如使用SSD)。
- 優(yōu)化I/O密集型應用程序。
- 增加I/O帶寬。
以上就是Linux使用sar命令跟蹤和記錄系統(tǒng)資源利用率的詳細內容,更多關于Linux sar跟蹤記錄利用率的資料請關注腳本之家其它相關文章!