Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc

来源:https://www.cnblogs.com/bigdna/archive/2018/09/15/9651272.html
-Advertisement-
Play Games

sysstat Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc * iostat 工具提供CPU使用率及硬碟吞吐效率的數據; * mpstat 工具提供單個處理器或多個處理器相關數據; * sar 工具負責收集、報告並存儲系統活躍的信息; * sa1 工具負責 ...


sysstat 

 

Sysstat的工具集sar、 iostat、mpstat、sadf、sar、sadc

* iostat 工具提供CPU使用率及硬碟吞吐效率的數據;

* mpstat 工具提供單個處理器或多個處理器相關數據;

* sar 工具負責收集、報告並存儲系統活躍的信息;

* sa1 工具負責收集並存儲每天系統動態信息到一個二進位的文件中。它是通過計劃任務工具cron來運行,

是為sadc所設計的程式前端程式;

* sa2 工具負責把每天的系統活躍性息寫入總結性的報告中。它是為sar所設計的前端 ,要通過cron來調用

* sadc 是系統動態數據收集工具,收集的數據被寫一個二進位的文件中,它被用作sar工具的後端;

* sadf 顯示被sar通過多種格式收集的數據;

 

 

如果您想得到Sysstat工具集所收集的系統信息自動存為某個文件中,你必須通過cron 為 sa1 和sa2 做計劃任務。我們可以通過修改用戶的crontab。在預設的情況下,Sysstat歷史信息將被存放在/var/log/sa文件中

 

創建Sysstat的啟動腳本;

[root@localhost ~]# touch  /etc/rc.d/init.d/sysstat

[root@localhost ~]# vi /etc/rc.d/init.d/sysstat

#!/bin/sh

# Begin $rc_base/init.d/sysstat

# Based on sysklogd script from LFS-3.1 and earlier.

# Rewritten by Gerard Beekmans  – [email protected]

 

. /etc/sysconfig/rc

 

. $rc_functions

 

case “$1” in

 

start)

echo “Calling the system activity data collector (sadc)…”

/usr/lib/sa/sadc -F -L –

evaluate_retval

;;

*)

echo “Usage: $0 start”

exit 1

;;

esac

# End $rc_base/init.d/sysstat

[root@localhost ~]# chmod 755 /etc/rc.d/init.d/sysstat

 

[root@localhost ~]# ln -sf /etc/rc.d/init.d/sysstat  /etc/init.d/sysstat

 

有了Sysstat的守護進程,這樣我們開機後,Sysstat的守護進程,就時時刻刻的為我們服務了。sa 、sa1或sa2自動把信息存在 /var/log/sa目錄的二進位文件中,我們可以通過sar工具來提取這些系統信息的歷史;

當然我們也可以通過手動的方法來打開Sysstat的守護程式,也就是我們前面所製作的sysstat;

[root@localhost ~]# /etc/rc.d/init.d/sysstat start

 

下麵的方法也行;

 

[root@localhost ~]# /usr/lib/sa/sa1

 

[root@localhost ~]# /usr/lib/sa/sa2

 

 

sadc 的用法;

 

/usr/lib/sa/sadc [ -d ] [ -F ] [ -I ] [ -L ] [ -V ] [ interval [ count ] ] [ outfile ]

 

參數說明:

-d  報告硬碟設置的相關統計;

 

-F  強制把數據寫入文件;

 

-I  報告所有系統中斷數據;

 

interval 表示時間間隔,單位是秒,比如3 ;

 

count 統計數據的次數,也是一個數字;

 

outfile 輸出統計到outfile文件;

 

註意:此工具中的參數都是可選的,如果沒有指定任何參數,比如 /usr/lib/sa/sadc – ,則會輸出數

據到 /var/log/sa/ 目錄下的一個文件中。我們要通過sadf 或sar工具來查看;

 

[root@localhost beinan]# /usr/lib/sa/sadc  –

 

[root@localhost beinan]# ls /var/log/sa   註:列出所有sa目錄下的文件,根據文件的時間來判斷哪個文件是最新的;

[root@localhost beinan]# sar  -f  /var/log/sa/sa12

[root@localhost beinan]# sadf  /var/log/sa/sa12

 

舉例:我們想把sadc收集到的數據寫到一個指定的文件中;

 

[root@localhost ~]# /usr/lib/sa/sadc  1 10 sa000

 

[root@localhost ~]# sar -f sa000

 

我們用sadc 收集系統動態數據,讓它收集1秒之內的10次動態信息; 然後通過sar 工具來查看系統的狀態。也可以用 sadf 來查看所收集的數據,但不是太直觀。您自己嘗試一下看看。查看sa000文件,用 sadf sa000 ;

 

sysstat安裝包安裝之後有iostat,mpstat,sar,sa功能

 

 /etc/init.d/sysstat start

 

 chkconfig sysstat on

 

sysstat工具包中包含兩類工具

 

即時查看工具: iostat,mpstat,sar

 

累計統計工具:sar

 

sar是核心工具

 

 mpstat 是Multiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息

 

%user 用戶CPU時間 ,不含nice時間

 

%nice nice值為負進程的CPU時間

 

%sys 系統內核時間

 

%iowait 硬碟I/O等待時間

 

%irq 軟終端時間

 

%soft軟終端時間

 

%steal

 

%idle CPU除去等待磁碟I/O操作外的空間閑置時間

 

CPU ALL總時間

 

sar功能

1、sar -u 1 5

 

輸出CPU使用情況的統計信息,每秒輸出一次,一共輸出100次

17時06分01秒       CPU     %user     %nice   %system   %iowait     %idle

17時06分02秒       all      1.27      0.00      0.51      1.01     97.22

17時06分03秒       all      0.00      0.00      0.00      0.00    100.00

17時06分04秒       all      0.00      0.00      0.00      0.00    100.00

17時06分05秒       all      0.25      0.00      0.00      0.00     99.75

17時06分06秒       all      0.00      0.00      0.00      0.51     99.49

Average:          all      0.30      0.00      0.10      0.30     99.29

CPU      all 表示統計信息為所有 CPU 的平均值。                                       

%user    顯示在用戶級別(application)運行使用 CPU 總時間的百分比。                  

%nice    顯示在用戶級別,用於nice操作,所占用 CPU 總時間的百分比。            

%system  在核心級別(kernel)運行所使用 CPU 總時間的百分比。      

%iowait  顯示用於等待I/O操作占用 CPU 總時間的百分比。

%steal   管理程式(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。

%idle    顯示 CPU 空閑時間占用 CPU 總時間的百分比。

tips:

 

若 %iowait 的值過高,表示硬碟存在I/O瓶頸

 

若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配記憶體,此時應加大記憶體容量

 

若 %idle 的值持續低於 10,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。

 

2、sar -b 1 5

 

顯示I/O和傳送速率的統計信息

 

17時09分07秒       tps      rtps      wtps   bread/s   bwrtn/s

17時09分08秒      3.12      3.12      0.00     25.00      0.00

17時09分09秒     89.58      6.25     83.33    141.67    733.33

17時09分10秒     42.71      9.38     33.33    141.67    600.00

17時09分11秒      2.11      2.11      0.00     16.84      0.00

17時09分12秒      1.04      0.00      1.04      0.00    175.00

Average:        27.77      4.18     23.59     65.14    302.30

tps     每秒鐘物理設備的 I/O 傳輸總量                  

rtps    每秒鐘從物理設備讀入的數據總量                 

wtps    每秒鐘向物理設備寫入的數據總量                 

bread/s 每秒鐘從物理設備讀入的數據量,單位為 塊/s   

bwrtn/s 每秒鐘向物理設備寫入的數據量,單位為 塊/s  

 

3、sar -c

 

每秒鐘創建的進程數

 

15時10分01秒      1.35

15時20分01秒      1.01

15時30分01秒      0.59

15時40分01秒      1.35

15時50分01秒      0.99

16時00分01秒      0.57

16時10分01秒      1.33

16時20分01秒      1.02

16時30分01秒      0.57

16時40分01秒      1.33

16時50分01秒      1.07

17時00分01秒      0.56

17時10分01秒      1.32

 

4、sar -n DEV 1 5

 

輸出網路設備狀態的統計信息

 

17時13分42秒     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s rxmcst/s

17時13分43秒      eth1   3669.70   4156.57 368362.63 2747714.14      0.00      0.00      0.00

17時13分44秒      eth1   2689.11   2585.15 289661.39 701461.39      0.00      0.00      0.00

17時13分45秒      eth1   3746.00   4077.00 415178.00 2605720.00      0.00      0.00      0.00

17時13分46秒      eth1   3096.00   3241.00 327916.00 1597320.00      0.00      0.00      0.00

17時13分47秒      eth1   2910.00   2834.00 312632.00 957903.00      0.00      0.00      0.00

Average:         eth1   3220.20   3375.60 342592.60 1717931.20      0.00      0.00      0.00

IFACE      網路設備名                          

rxpck/s    每秒接收的包總數                 

txpck/s    每秒傳輸的包總數                  

rxbyt/s    每秒接收的位元組(byte)總數        

txbyt/s    每秒傳輸的位元組(byte)總數        

rxcmp/s    每秒接收壓縮包的總數              

txcmp/s    每秒傳輸壓縮包的總數              

rxmcst/s   每秒接收的多播(multicast)包的總數

 

5、sar -q 1 5

 

輸出進程隊列長度和平均負載狀態統計信息

 

17時16分28秒   runq-sz plist-sz   ldavg-1   ldavg-5 ldavg-15

17時16分29秒         0       160      0.26      0.11      0.03

17時16分30秒         0       160      0.26      0.11      0.03

17時16分31秒         0       160      0.24      0.11      0.03

17時16分32秒         0       160      0.24      0.11      0.03

17時16分33秒         0       160      0.24      0.11      0.03

Average:            0       160      0.25      0.11      0.03

runq-sz   運行隊列的長度(等待運行的進程數)                                    

plist-sz 進程列表中進程(processes)和線程(threads)的數量                    

ldavg-1   最後1分鐘的系統平均負載(System load average)                        

ldavg-5   過去5分鐘的系統平均負載                                                

ldavg-15 過去15分鐘的系統平均負載                                             

6、sar -r

 

輸出記憶體和交換空間的統計信息

 

iostat  顯示一條包括所有的CPU和設備吞吐率的統計信息

 

常用選項

-c 僅顯示CPU統計信息

-d 僅顯示磁碟統計信息

-k 以KB顯示每秒磁碟請求數

-m 以MB顯示每秒磁碟請求數

-p 用於顯示塊設備以及系統分區的統計信息

 

tps:該設備每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合併為“一次I/O請

 

求”。“一次傳輸”請求的大小是未知的。

 

kB_read/s:每秒從設備(drive expressed)讀取的數據量;kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;kB_read:讀取的總數據量;kB_wrtn:寫入的總數量數據量;這些單位都為Kilobytes。

rrqm/s:每秒這個設備相關的讀取請求有多少被Merge了(當系統調用需要讀取數據的時候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的數據,FS會將這個請求合併Merge);wrqm/s:每秒這個設備相關的寫入請求有多少被Merge了。

 

rsec/s:每秒讀取的扇區數;wsec/:每秒寫入的扇區數。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

 

await:每一個IO請求的處理的平均時間(單位是微秒毫秒)。這裡可以理解為IO的響應時間,一般地系統IO響應時間應該低於5ms,如果大於10ms就比較大了。

 

%util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閑置,那麼該設備的%util = 0.8/1 = 80%,所以該參數暗示了設備的繁忙程度。一般地,如果該參數是100%表示設備已經接近滿負荷運行了(當然如果是多磁碟,即使%util是100%,因為磁碟的併發能力,所以磁碟使用未必就到了瓶頸)。

 

常見用法:

 

$iostat -d -k 1 10 #查看TPS和吞吐量信息 

 

iostat -d -x -k 1 10 #查看設備使用率(%util)、響應時間(await) 

 

iostat -c 1 10 

 

iostat -d -x -l 

磁碟的平均響應時間<5ms,磁碟使用率>80。磁碟響應正常,但是已經很繁忙了。

 

 

iostat -d 5  每隔五秒顯示

 

 

1、關於 Sysstat;

Sysstat 是一個軟體包,包含監測系統性能及效率的一組工具,這些工具對於我們收集系統性能數據,比如CPU使用率、硬碟和網路吞吐數據,這些數據的收集和分析,有利於我們判斷系統是否正常運行,是提高系統運行效率、安全運行伺服器的得力助手;

 

Sysstat 軟體包集成如下工具:

 

    * iostat 工具提供CPU使用率及硬碟吞吐效率的數據;

    * mpstat 工具提供單個處理器或多個處理器相關數據;

    * sar 工具負責收集、報告並存儲系統活躍的信息;

    * sa1 工具負責收集並存儲每天系統動態信息到一個二進位的文件中。它是通過計劃任務工具cron來運行,

        是為sadc所設計的程式前端程式;

    * sa2 工具負責把每天的系統活躍性息寫入總結性的報告中。它是為sar所設計的前端 ,要通過cron來調用

    * sadc 是系統動態數據收集工具,收集的數據被寫一個二進位的文件中,它被用作sar工具的後端;

    * sadf 顯示被sar通過多種格式收集的數據;

 

 

 

 

舉例:我們想把sadc收集到的數據寫到一個指定的文件中;

 

[root@localhost ~]# /usr/lib/sa/sadc  1 10 sa000

[root@localhost ~]# sar -f sa000

 

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日

 

09時15分30秒       CPU     %user     %nice   %system   %iowait     %idle

09時15分31秒       all      3.00      0.00      0.00      1.00     96.00

09時15分32秒       all      0.00      0.00      0.00      0.00    100.00

09時15分33秒       all      0.00      0.00      0.00      0.00    100.00

09時15分34秒       all      0.00      0.00      0.00      0.00    100.00

09時15分35秒       all      0.00      0.00      0.00      0.00    100.00

09時15分36秒       all      0.00      0.00      0.00      0.00    100.00

09時15分37秒       all      0.00      0.00      0.00      0.00    100.00

09時15分38秒       all      0.00      0.00      0.00      0.00    100.00

09時15分39秒       all      0.00      0.00      0.00      0.00    100.00

Average:          all      0.33      0.00      0.00      0.11     99.56

 

註解:我們用sadc 收集系統動態數據,讓它收集1秒之內的10次動態信息; 然後通過sar 工具來查看系統的狀態。也可以用 sadf 來查看所收集的數據,但不是太直觀。您自己嘗試一下看看。查看sa000文件,用 sadf sa000 ;

 

3.2 sar 工具;

sar 工具比較強大,既能收集系統CPU、硬碟、動態數據,也能顯示動態顯示,更能查看二進位數據文件;sar 的應用比較多,而且也比較複雜,數據更為精確。我們只瞭解一下常用的內容就行,大多數內容我們瞭解就行;

用法:

 

sar  [參數選項]

 

參數說明:

 

-A  顯示所有歷史數據,通過讀取/var/log/sar 目錄下的所有文件,並把它們分門別類的顯示出來;

-b  通過設備的I/O中斷讀取設置的吞吐率;

-B 報告記憶體或虛擬記憶體交換統計;

-c 報告每秒創建的進程數;

-d 報告物理塊設備(存儲設備)的寫入、讀取之類的信息,如果直觀一點,可以和p參數共同使用,-dp 

-f 從一個二進位的數據文件中讀取內容,比如 sar -f filename 

-i interval  指定數據收集的時間,時間單位是秒;

-n 分析網路設備狀態的統計,後面可以接的參數有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV

-o 把統計信息寫入一個文件,比如  -o filename ;

-P 報告每個處理器應用統計,用於多處理器機器,並且啟用SMP內核才有效;

-p 顯示友好設備名字,以方便查看,也可以和-d 和-n 參數結合使用,比如 -dp 或-np 

-r 記憶體和交換區占用統計; 

-R

-t 這個選項對從文件讀取數據有用,如果沒有這個參數,會以本地時間為標準 讀出;

-u 報告CPU利用率的參數;

-v 報告inode, 文件或其它內核表的資源占用信息;

-w 報告系統交換活動的信息; 每少交換數據的個數;

-W 報告系統交換活動吞吐信息; 

-x 用於監視進程的,在其後要指定進程的PID值;

-X 用於監視進程的,但指定的應該是一個子進程ID;

 

sar 應用舉例;

實例一: 如果只用sar 命令,sar就是讀取 /var/log/sa目錄下最近系統狀態文件。

 

[root@localhost ~]# sar

 

[root@localhost ~]# sar -A  註:讀取/var/log/sa目錄下所有文件數據;

 

如果我們想知道CPU的利用率;動態更新;下麵的例子是每秒更新一次數據,總共更新五次;

[root@localhost ~]# sar -u  1 5

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)         2006年05月12日

 

時間              CPU    利用率    nice值    系統占用    IO占用  空閑

11時19分34秒       CPU     %user     %nice   %system   %iowait     %idle

11時19分35秒       all      2.97      0.00      0.00      0.00     97.03

11時19分36秒       all     11.11      0.00      9.09      0.00     79.80

11時19分37秒       all     21.78      0.00      6.93      0.00     71.29

11時19分38秒       all     15.00      0.00      0.00      0.00     85.00

11時19分39秒       all      8.00      0.00      0.00      0.00     92.00

Average:          all     11.78      0.00      3.19      0.00     85.03

註解:

CPU:表示機器內所有的CPU;

%user 表示CPU的利用率;

%nice 表示CPU在用戶層優先順序的百分比,0表示正常;

%system 表示當系統運行時,在用戶應用層上所占用的CPU百分比;

%iowait 表示請求硬碟I/0數據流出時,所占用CPU的百分比;

%idle 表示空閑CPU百分比,值越大系統負載越低;

 

您可以CPU利用率的動態信息輸出到一個文本文件中,然後通過more 來查看。

 

[root@localhost ~]# sar -u  1 5 > sar000.txt 

[root@localhost ~]# more sar000.txt

 

也可以輸出到一個二進位的文件中,然後通過sar來查看;

 

[root@localhost ~]# sar -u  1 5 -o sar002 

[root@localhost ~]# sar -f sar002

 

註:如果您把數據通過-o filename 輸出到一個二進位的文件中,是不能用文件內容查看工具more 、less或cat來查看的,應該用sar工具來查看,要加-f參數;

 

實例二:查看網路設備的吞吐情況;

 

比如我們讓數據每秒更新一次,總共更新十次;

 

 

[root@localhost ~]# sar -n DEV  2 5

時間     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s

 

第一欄位:時間;

IFACE:設備名;

rxpck/s:每秒收到的包;

rxbyt/s:每秒收到的所有包的體積;

txbyt/s:每秒傳輸的所有包的體積;

rxcmp/s:每秒收到數據切割壓縮的包總數;

txcmp/s :每秒傳輸的數據切割壓縮的包的總數;

rxmcst/s: 每秒收到的多點傳送的包;

如果我們從事提取eth0設備(也就是網卡eth0)的信息;我們應該用grep 來過濾。然後再顯示出來;

 

[root@localhost ~]# sar -n DEV  2  5  |grep eth0

11時52分37秒      eth0  1.00  1.00   97.51   97.51   0.00    0.00      0.00

11時52分39秒      eth0  1.01  1.01   98.49   98.49   0.00    0.00      0.00

11時52分41秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11時52分43秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11時52分45秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

Average:   eth0   1.00  1.00  98.00   98.00   0.00    0.00      0.00

 

如果想知道網路設備錯誤報告,也就就是用來查看設備故障的。應該用EDEV;比如下麵的例子;

 

[root@localhost ~]# sar -n EDEV  2 5

 

 

3.3 iostat

iostat 是用來顯示 系統即時系統,比如CPU使用率,硬碟設備的吞吐率;

 

[root@localhost ~]# iostat

 

Linux 2.6.15-1.2054_FC5 (localhost.localdomain)   2006年05月12日

 

avg-cpu:  %user   %nice %system %iowait   %idle

           7.24    0.00    0.99    0.35   91.43

 

Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda      1.46        28.43        21.43     710589     535680

 

3.4 mpstat

mpstat 提供多處理器系統中的CPU的利用率的統計;

 

mpstat 也可以加參數,用-P來指定哪個 CPU,處理器的ID是從0開始的。

 

下麵的例子是查看兩個處理器,每二秒數據更新一次,總共要顯示10次數據;

 

[root@localhost ~]# mpstat -P 0 2 10  註:查看第一個CPU

 

[root@localhost ~]# mpstat -p 1 2 10  註:查看第二個CPU

</code >

 

<code>

[root@localhost ~]# mpstat 2 10  註:查看所有CPU;

 

 

3.5 sdaf

 

sdaf 能從二進位文件中提取sar所收集的數據;這個大家知道就行了。顯示的並不是友好的格式;

 

[root@localhost ~]# sar -u 2 5 -o sar003

 

[root@localhost ~]# sadf  sar003

 

相對來說,用sar來讀取輸出文件的內容更好;比如下麵的;

 

[root@localhost ~]# sar -f sar003

 

 

4、 與Sysstat相似工具;

 

4.1 進程管理工具;

進程管理工具,包括ps 、pgrep、top、kill 、killall、pkill 等,請參考 《 Linux 進程管理》

 

 

4.2 記憶體使用率查看工具;

記憶體使用量 free

free 工具既能查看物理記憶體,也能查看虛擬記憶體的用量;

 

[root@localhost ~]# free

 

如果顯示以單位M,則加-m參數;

 

[root@localhost ~]# free -m

             total       used       free     shared    buffers     cached

Mem:           724        713         11          0         24        290

-/+ buffers/cache:        398        326

Swap:          800          0        800

 

vmstat 即時顯示記憶體工具;

 

vmstat 是一個即時顯示記憶體使用情況的工具;

 

vmstat 使用方法:

 

vmstat [-V] [-n] [delay [count]]

              -V 顯示vmstat的版本;

              -n causes the headers not to be reprinted regularly.

              -a 顯示所有激活和未激活記憶體的狀態;print inactive/active page stats.

              -d 顯示硬碟統計信息;prints disk statistics

              -D 顯示硬碟分區表;prints disk table

              -p 顯示硬碟分區讀寫狀態等;prints disk partition statistics

              -s 顯示記憶體使用情況;prints vm table

              -m prints slabinfo

              -S 定義單位,k K 

              delay 是兩次刷新時間間隔;

              單位體積: k:1000 K:1024 m:1000000 M:1048576 (預設是 K)

              count 刷新次數;

 

 

 

 

 

sar 工具;

sar 工具比較強大,既能收集系統CPU、硬碟、動態數據,也能顯示動態顯示,更能查看二進位數據文件;sar 的應用比較多,而且也比較複雜,數據更為精確。我們只瞭解一下常用的內容就行,大多數內容我們瞭解就行;

用法:

sar  [參數選項]

參數說明:

-A  顯示所有歷史數據,通過讀取/var/log/sar 目錄下的所有文件,並把它們分門別類的顯示出來;

-b  通過設備的I/O中斷讀取設置的吞吐率;

-B 報告記憶體或虛擬記憶體交換統計;

-c 報告每秒創建的進程數;

-d 報告物理塊設備(存儲設備)的寫入、讀取之類的信息,如果直觀一點,可以和p參數共同使用,-dp

-f 從一個二進位的數據文件中讀取內容,比如 sar -f filename

-i interval  指定數據收集的時間,時間單位是秒;

-n 分析網路設備狀態的統計,後面可以接的參數有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV

-o 把統計信息寫入一個文件,比如  -o filename ;

-P 報告每個處理器應用統計,用於多處理器機器,並且啟用SMP內核才有效;

-p 顯示友好設備名字,以方便查看,也可以和-d 和-n 參數結合使用,比如 -dp 或-np

-r 記憶體和交換區占用統計;

-R

-t 這個選項對從文件讀取數據有用,如果沒有這個參數,會以本地時間為標準 讀出;

-u 報告CPU利用率的參數;

-v 報告inode, 文件或其它內核表的資源占用信息;

-w 報告系統交換活動的信息; 每少交換數據的個數;

-W 報告系統交換活動吞吐信息;

-x 用於監視進程的,在其後要指定進程的PID值;

-X 用於監視進程的,但指定的應該是一個子進程ID;

 

sar支持保存成兩種格式的文件,一種是文本文件,一種是二進位文件(只有通過sar自己的命令才能查看)。

保存為文本文件

結合上面的查看命令,加入 > filename 參數即可保存文本文件,下麵列出幾個有用的命令:

sar 1 10 > data.txt

 

//每隔1秒,寫入10次,把CPU使用數據保存到data.txt文件中。

 

sar 1 0 -e 15:00:00 > data.txt

 

//每隔1秒記錄CPU的使用情況,直到15點,數據將保存到data.txt文件中。(-e 參數表示結束時間,註意時間格式:必須為hh:mm:ss格式)

 

sar 1 0 -r -e 15:00:00 > data.txt

 

//每隔1秒記錄記憶體使用情況,直到15點,數據將保存到data.txt文件中。

 

sar 1 0 -n DEV -e 15:00:00 > data.txt

 

//每隔1秒記錄網路使用情況,直到15點,數據將保存到data.txt文件中。

 

用WinSCP工具從Linux伺服器上取下data.txt文件,內容如下:

 

 11時04分05秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

 11時04分06秒     all      0.25      0.00      0.00      0.00      0.00     99.75

 11時04分07秒     all      0.00      0.00      0.25      0.00      0.00     99.75

 11時04分08秒     all      0.25      0.00      0.25      1.50      0.00     98.00

 11時04分09秒     all      0.25      0.00      0.00      0.50      0.00     99.25

 11時04分10秒     all      0.00      0.00      0.00      0.00      0.00    100.00

 11時04分11秒     all      0.25      0.00      0.25      0.00      0.00     99.50

 11時04分12秒     all      0.00      0.00      0.25      0.00      0.00     99.75

 11時04分13秒     all      0.50      0.00      0.50      0.99      0.00     98.01

 11時04分14秒     all      0.00      0.00      0.00      1.25      0.00     98.75

 11時04分15秒     all      0.50      0.00      0.00      0.00      0.00     99.50

 平均時間:     all      0.20      0.00      0.15      0.42      0.00     99.23 

有了這份數據,就可以輕鬆的使用WPS表格來統計CPU的使用情況了。

 

保存為二進位文件

由於保存的二進位文件只有sar通過-f參數才能打開,不利於我們分析和統計數據,因此不推薦使用這個方法。保存二進位文件的參數是-o,如:

sar 1 5 -r -o data

//每隔1秒,寫入5次,將記憶體使用的數據寫入二進位文件data中。

sar -f data

//查看data文件

 

sar 應用舉例;

查看CPU使用情況 

sar 2 5

//每隔2秒,顯示5次,CPU使用的情況

查看記憶體使用情況 

sar -r 2 5

//每隔2秒,顯示5次,記憶體使用的情況

 

實例一: 如果只用sar 命令,sar就是讀取 /var/log/sa目錄下最近系統狀態文件。

[root@localhost ~]# sar

[root@localhost ~]# sar -A  註:讀取/var/log/sa目錄下所有文件數據;

如果我們想知道CPU的利用率;動態更新;下麵的例子是每秒更新一次數據,總共更新五次;

[root@localhost ~]# sar -u  1 5

註解:

CPU:表示機器內所有的CPU;

%user 表示CPU的利用率;

%nice 表示CPU在用戶層優先順序的百分比,0表示正常;

%system 表示當系統運行時,在用戶應用層上所占用的CPU百分比;

%iowait 表示請求硬碟I/0數據流出時,所占用CPU的百分比;

%idle 表示空閑CPU百分比,值越大系統負載越低;

您可以CPU利用率的動態信息輸出到一個文本文件中,然後通過more 來查看。

[root@localhost ~]# sar -u  1 5 > sar000.txt

[root@localhost ~]# more sar000.txt

也可以輸出到一個二進位的文件中,然後通過sar來查看;

[root@localhost ~]# sar -u  1 5 -o sar002

[root@localhost ~]# sar -f sar002

 

註:如果您把數據通過-o filename 輸出到一個二進位的文件中,是不能用文件內容查看工具more 、less或cat來查看的,應該用sar工具來查看,要加-f參數;

 

實例二:查看網路設備的吞吐情況;

比如我們讓數據每秒更新一次,總共更新十次;

[root@localhost ~]# sar -n DEV  2 5

時 間     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s

第一欄位:時間;IFACE:設備名;rxpck/s:每秒收到的包;rxbyt/s:每秒收到的所有包的體積;txbyt/s:每秒傳輸的所有包的體積;rxcmp/s:每秒收到數據切割壓縮的包總數;txcmp/s :每秒傳輸的數據切割壓縮的包的總數;rxmcst/s: 每秒收到的多點傳送的包;

如果我們從事提取eth0設備(也就是網卡eth0)的信息;我們應該用grep 來過濾。然後再顯示出來;

[root@localhost ~]# sar -n DEV  2  5  |grep eth0

11時52分37秒      eth0  1.00  1.00   97.51   97.51   0.00    0.00      0.00

11時52分39秒      eth0  1.01  1.01   98.49   98.49   0.00    0.00      0.00

11時52分41秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11時52分43秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

11時52分45秒      eth0  1.00  1.00   98.00   98.00   0.00    0.00      0.00

Average:   eth0   1.00  1.00  98.00   98.00   0.00    0.00      0.00

如果想知道網路設備錯誤報告,也就就是用來查看設備故障的。應該用EDEV;比如下麵的例子;

[root@localhost ~]# sar -n EDEV  2 5

 

 

 iostat

iostat 是用來顯示 系統即時系統,比如CPU使用率,硬碟設備的吞吐率;

[root@localhost ~]# iostat

avg-cpu:  %user   %nice %system %iowait   %idle

           7.24    0.00    0.99    0.35   91.43

 

Device:   tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda      1.46        28.43        21.43     710589     535680

 

 

mpstat

mpstat命令將會輸出所有CPU的平均統計信息

mpstat 提供多處理器系統中的CPU的利用率的統計;mpstat 也可以加參數,用-P來指定哪個 CPU,處理器的ID是從0開始的。下麵的例子是查看兩個處理器,每二秒數據更新一次,總共要顯示10次數據;

[root@localhost ~]# mpstat -P 0 2 10  註:查看第一個CPU

[root@localhost ~]# mpstat -p 1 2 10  註:查看第二個CPU

[root@localhost ~]# mpstat 2 10  註:查看所有CPU;

 

 

 

sdaf

sdaf 能從二進位文件中提取sar所收集的數據;這個大家知道就行了。顯示的並不是友好的格式;

[root@localhost ~]# sar -u 2 5 -o sar003

[root@localhost ~]# sadf  sar003

相對來說,用sar來讀取輸出文件的內容更好;比如下麵的;

[root@localhost ~]# sar -f sar003

 

 

進程管理工具,包括ps 、pgrep、top、kill 、killall、pkill 

 

vmstat 即時顯示記憶體工具;

vmstat 是一個即時顯示記憶體使用情況的工具;

vmstat 使用方法:

vmstat [-V] [-n] [delay [count]]

-V 顯示vmstat的版本;

-n causes the headers not to be reprinted regularly.

-a 顯示所有激活和未激活記憶體的狀態;print inactive/active page stats.

-d 顯示硬碟統計信息;prints disk statistics

-D 顯示硬碟分區表;prints disk table

-p 顯示硬碟分區讀寫狀態等;prints disk partition statistics

-s 顯示記憶體使用情況;prints vm table

-m prints slabinfo

-S 定義單位,k K

delay 是兩次刷新時間間隔;

單位體積: k:1000 K:1024 m:1000000 M:1048576 (預設是 K)

count 刷新次數;

 

 

 

使用pidstat命令監視進程,pidstat命令沒有保存性能數據的功能。

pidstat 2 5 

//每隔2秒,顯示5次,所有活動進程的CPU使用情況

pidstat -p 3132 2 5 

//每隔2秒,顯示5次,PID為1643的進程的CPU使用情況顯示

pidstat -p 3132 2 5 -r

//每隔2秒,顯示5次,PID為1643的進程的記憶體使用情況顯示

 

 

使用yum安裝 

#yum install sysstat 

 

sysstat的安裝包是:sysstat-9.0.4-31.el6.x86_64 ; 包含的功能:iostat、mpstat、sar、sa

 

MPSTAT

MPSTAT -P ALL 2 3

mpstat是Multiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統里,其不 但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。下麵只介紹 mpstat與CPU相關的參數,mpstat的語法如下:

mpstat [-P {|ALL}] [internal [count]]

參數的含義如下:

參數 解釋

-P {|ALL} 表示監控哪個CPU, cpu在[0,cpu個數-1]中取值

internal 相鄰的兩次採樣的間隔時間

count 採樣的次數,count只能和delay一起使用

當沒有參數時,mpstat則顯示系統啟動以後所有信息的平均值。有interval時,第 一行的信息自系統啟動以來的平均信息。從第二行開始,輸出為前一個interval時間段的平均信息。與CPU有關的輸出的含義如下:

參數 解釋 從/proc/stat獲得數據

CPU 處理器ID

user 在internal時間段里,用戶態的CPU時間(%) ,不包含 nice值為負 進程 usr/total*100

nice 在internal時間段里,nice值為負進程的CPU時間(%) nice/total*100

system 在internal時間段里,核心時間(%) system/total*100

iowait 在internal時間段里,硬碟IO等待時間(%) iowait/total*100

irq 在internal時間段里,軟中斷時間(%) irq/total*100

soft 在internal時間段里,軟中斷時間(%) softirq/total*100

idle 在internal時間段里,CPU除去等待磁碟IO操作外的因為任何原因而空閑的時間閑置時間 (%) idle/total*100

intr/s 在internal時間段里,每秒CPU接收的中斷的次數 intr/total*100

CPU總的工作時 間=total_cur=user+system+nice+idle+iowait+irq+softirq

total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

user=user_cur – user_pre

total=total_cur-total_pre

其中_cur 表示當前值,_pre表示interval時間前的值。上表中的所有值可取到兩位小數點。

cat /proc/stat

“ctxt”給出了自系統啟動以來CPU發生的上下文交換的次數。

“btime”給出了從系統啟動到現在為止的時間,單位為秒。

“processes (total_forks) 自系統啟動以來所創建的任務的個數目。

“procs_running”:當前運行隊列的任務的數目。

“procs_blocked”:當前被阻塞的任務的數目。

============================

sysstat工具包提供的主要命令:iostat mpstat sar

sar的最後兩個參數一般是interval count

1、sar -u 1 3

輸出CPU使用情況的統計信息,每秒輸出一次,一共輸出3次

[root@localhost ~]# sar -u 1 3

Linux 2.6.32-431.el6.x86_64 (localhost)  2016年11月03日  _x86_64_ (48 CPU)

 

13時41分45秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

13時41分46秒     all      4.43      0.00      0.23      1.19      0.00     94.15

13時41分47秒     all      5.12      0.00      0.23      0.38      0.00     94.28

13時41分48秒     all      4.82      0.00      0.23      0.00      0.00     94.95

平均時間:     all      4.79      0.00      0.23      0.52      0.00     94.46

 

CPU      all 表示統計信息為所有 CPU 的平均值。                                       

%user    顯示在用戶級別(application)運行使用 CPU 總時間的百分比。                  

%nice    顯示在用戶級別,用於nice操作,所占用 CPU 總時間的百分比。            

%system 在核心級別(kernel)運行所使用 CPU 總時間的百分比。      

%iowait 顯示用於等待I/O操作占用 CPU 總時間的百分比。

%steal   管理程式(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。

%idle    顯示 CPU 空閑時間占用 CPU 總時間的百分比。

tips:

若 %iowait 的值過高,表示硬碟存在I/O瓶頸

若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配記憶體,此時應加大記憶體容量

若 %idle 的值持續低於 10,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。

2、sar -b 1 5

顯示I/O和傳送速率的統計信息

17時09分07秒       tps      rtps      wtps   bread/s   bwrtn/s

17時09分08秒      3.12      3.12      0.00     25.00      0.00

17時09分09秒     89.58      6.25     83.33    141.67    733.33

17時09分10秒     42.71      9.38     33.33    141.67    600.00

17時09分11秒      2.11      2.11      0.00     16.84      0.00

17時09分12秒      1.04      0.00      1.04      0.00    175.00

Average:        27.77      4.18     23.59     65.14    302.30

tps     每秒鐘物理設備的 I/O 傳輸總量                   

rtps    每秒鐘從物理設備讀入的數據總量                 

wtps    每秒鐘向物理設備寫入的數據總量                 

bread/s 每秒鐘從物理設備讀入的數據量,單位為 塊/s   

bwrtn/s 每秒鐘向物理設備寫入的數據量,單位為 塊/s   

 

4、sar -n DEV 1 5

輸出網路設備狀態的統計信息

17時13分42秒     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s rxmcst/s

17時13分43秒      eth1   3669.70   4156.57 368362.63 2747714.14      0.00      0.00      0.00

17時13分44秒      eth1   2689.11   2585.15 289661.39 701461.39      0.00      0.00      0.00

17時13分45秒      eth1   3746.00   4077.00 415178.00 2605720.00      0.00      0.00      0.00

17時13分46秒      eth1   3096.00   3241.00 327916.00 1597320.00      0.00      0.00      0.00

17時13分47秒      eth1   2910.00   2834.00 312632.00 957903.00      0.00      0.00      0.00

Average:         eth1   3220.20   3375.60 342592.60 1717931.20      0.00      0.00      0.00

IFACE      網路設備名                          

rxpck/s    每秒接收的包總數                 

txpck/s    每秒傳輸的包總數                  

rxbyt/s    每秒接收的位元組(byte)總數        

txbyt/s    每秒傳輸的位元組(byte)總數        

rxcmp/s    每秒接收壓縮包的總數              

txcmp/s    每秒傳輸壓縮包的總數              

rxmcst/s   每秒接收的多播(multicast)包的總數

5、sar -q 1 5

輸出進程隊列長度和平均負載狀態統計信息

17時16分28秒   runq-sz plist-sz   ldavg-1   ldavg-5 ldavg-15

17時16分29秒         0       160      0.26      0.11      0.03

17時16分30秒         0       160      0.26      0.11      0.03

17時16分31秒         0       160      0.24      0.11      0.03

17時16分32秒         0       160      0.24      0.11      0.03

17時16分33秒         0       160      0.24      0.11      0.03

Average:            0       160      0.25      0.11      0.03

runq-sz   運行隊列的長度(等待運行的進程數)                                     

plist-sz 進程列表中進程(processes)和線程(threads)的數量                    

ldavg-1   最後1分鐘的系統平均負載(System load average)                         

ldavg-5   過去5分鐘的系統平均負載                                                

ldavg-15 過去15分鐘的系統平均負載                                              

6、sar -r

輸出記憶體和交換空間的統計信息

7、iostat

tps 每秒鐘物理設備的 I/O 傳輸總量。                                                                                        

Blk_read 讀入的數據總量,單位為 塊。                                                                                          

Blk_wrtn 寫入的數據總量,單位為 塊。                                                                                          

kB_read 讀入的數據總量,單位為 KB。                                                                                           

kB_wrtn 寫入的數據總量,單位為 KB。                                                                                           

MB_read 讀入的數據總量,單位為 MB。                                                                                           

MB_wrtn 寫入的數據總量,單位為 MB。                                                                                           

Blk_read/s 每秒從驅動器讀入的數據量,單位為 塊 /s。                                                                           

Blk_wrtn/s 每秒向驅動器寫入的數據量,單位為 塊 /s。                                                                           

kB_read/s 每秒從驅動器讀入的數據量,單位為 KB/s。                                                                             

kB_wrtn/s 每秒向驅動器寫入的數據量,單位為 KB/s。                                                                             

MB_read/s 每秒從驅動器讀入的數據量,單位為 MB/s。                                                                             

MB_wrtn/s 每秒向驅動器寫入的數據量,單位為MB/s。

rrqm/s 將讀入請求合併後,每秒發送到設備的讀入請求數。   

wrqm/s 將寫入請求合併後,每秒發送到設備的寫入請求數。

r/s 每秒發送到設備的讀入請求 數。                                                                                             

w/s 每秒發送到設備的寫入請求 數。                                                                                             

rsec/s 每秒從設備讀入的扇區 數。                                                                                              

wsec/s 每秒向設備寫入的扇區 數。                                                                                              

rkB/s 每秒從設備讀入的數據量,單位為 KB/s。                                                                                  

wkB/s 每秒向設備寫入的數據量,單位為 KB/s。                                                                                  

rMB/s 每秒從設備讀入的數據量,單位為 MB/s。                                                                                  

wMB/s 每秒向設備寫入的數據量,單位為 MB/s。                                                                                  

avgrq-sz 發送到設備的請求的平均大小,單位為扇 區。                                                                            

avgqu-sz 發送到設備的請求的平均隊列長 度。                                                                                    

await I/O請求平均執行時間。包括發送請求和執行的時間。單位為毫 秒。     &nbs

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 委托(Delegate)是安全封裝方法的類型,類似於C和C++中的函數指針,與函數指針不同的是,委托是面向對象的、類型安全的和可靠的; 一、委托類型是命名空間中五種頂級類型之一,是一種引用類型,表示對具有指定參數列表和返回類型的方法的引用,也是一種特殊的類類型,其類型為System.Multicas ...
  • 前段在HTML頁面中抓數據時碰到的一些問題,有些數據直接隱藏在script標簽中了。於是想到了平衡組,分享下。 先通過HTML Agility Pack (非常強大的HTML解析工具)得到具體的HTML內容,通過具體的路徑匹配所有的script標簽,然後獲取你想要的某個script內容,如下圖: 開 ...
  • 需要添加的引用: using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; ...
  • 定時器是系統常用的組件之一,程式員可以根據自己的需求定製一個定時器類型,也可以使用.net內建的定時器類型。在.net中一共為程式員提供了3種定時器: System.Windows.Forms.Timer類型 System.Threading.Timer類型 System.Timers.Timer類 ...
  • 環境: 環境: 環境: 環境: 本機是window7系統,安裝VMware虛擬機,在VMware安裝了Rdhat系統,想上網,在網上搜索了不少的配置方法,這篇文章介紹的比較全面,感謝分享,摘抄在這裡讓更多的愛好者學習。我自己的情況和這個是一樣的,已經配置成功了。 首先在安裝完虛擬後,要查看本機網路連 ...
  • 本文介紹如何在不使用U盤的情況下使用wubi.exe程式在Win7上安裝ubuntu-14.04.3版系統。 花了一天的時間終於安裝上了Ubuntu14.04,過程坎坷,是血淚史,開始報“cannot download the metalink and therefore the ISO”錯誤,解決 ...
  • 2018-09-15 17:36:42 1. Etcher 官網:https://etcher.io/ 資料來源:https://linuxmint-installation-guide.readthedocs.io/zh_CN/latest/burn.html 步驟:下載、安裝、運行,界面如下圖所 ...
  • Busybox簡介 • 製作文件系統我們需要使用到Busybox 工具 – 版本為busybox-1.21.1.tar.bz2 – 開源網址是http://www.busybox.net/ – BusyBox 是一個集成了一百多個最常用linux 命令和工具的軟體,包含常用的shell命令 配置Bu ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...