Percona Toolkit 神器全攻略(系統類)

来源:https://www.cnblogs.com/greatsql/p/18350170
-Advertisement-
Play Games

Percona Toolkit 神器全攻略(系統類) Percona Toolkit 神器全攻略系列共八篇,前文回顧: 前文回顧 Percona Toolkit 神器全攻略 Percona Toolkit 神器全攻略(實用類) Percona Toolkit 神器全攻略(配置類) Percona T ...


Percona Toolkit 神器全攻略(系統類)

file

Percona Toolkit 神器全攻略系列共八篇,前文回顧:

前文回顧
Percona Toolkit 神器全攻略
Percona Toolkit 神器全攻略(實用類)
Percona Toolkit 神器全攻略(配置類)
Percona Toolkit 神器全攻略(監控類)

全文約定:$為命令提示符、greatsql>為 GreatSQL 資料庫提示符。在後續閱讀中,依據此約定進行理解與操作

系統類

在Percona Toolkit中系統類共有以下工具

  • pt-diskstats:查看系統磁碟狀態
  • pt-fifo-split:模擬切割文件並輸出
  • pt-ioprofile:查詢進程 I/O 並列印一個 I/O 活動表
  • pt-stalk:出現問題時,收集診斷數據
  • pt-sift:瀏覽由 pt-stalk 創建的文件
  • pt-summary:收集和顯示系統概況

pt-diskstats

概要

類似於iostat命令,不過它比iostat輸出的更加詳細一點

用法

  • pt-diskstats [OPTIONS] [FILES]

列印 GNU/Linux 的磁碟 I/O 統計信息。它有點類似於iostat,但它是互動式的並且更詳細。且可以分析從另一臺機器收集的樣本。

選項

該工具所有選項如下

參數 含義
--columns-regex 列印與此 Perl 正則表達式匹配的列
--config 讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--devices-regex 列印與此 Perl 正則表達式匹配的設備
--group-by 分組依據模式:disk,sample,all
--headers 如果存在 group ,則每個樣本將由空行分隔,除非樣本只有一行
--help 顯示幫助
--interval 在交互模式下,等待 N 秒後再列印到屏幕。
--iterations 當處於交互模式時,在 N 個樣本後停止。預設情況下永遠運行
--sample-time group-by sample模式下,每組包含 N 秒的樣本
--save-samples 用於保存 diskstats 樣本的文件
--show-inactive 顯示不活動的設備
--show-timestamps #ts列中顯示“HH:MM:SS”時間戳
--version 顯示版本
--[no]version-check 版本檢查

最佳實踐

註意!在較新的 Linux 內核版本中,為磁碟統計信息返回的欄位量更改為 20 個,並導致 pt-diskstat 在這些系統上無法提供任何輸出。

※該問題詳情見:https://perconadev.atlassian.net/jira/software/c/projects/PT/issues/PT-2313?jql=project %3D "PT" AND text ~ "diskstats" ORDER BY created DESC

※解決方法:https://github.com/percona/percona-toolkit/pull/526/files#diff-c3ecedaa384eecb55bd8fdb37456a89a3dc45a41588ef1ebe231120e965942d8R2247

直接採集分析

--devices-regex指定設備名稱,根據自身設備而修改

$ pt-diskstats --interval=1 --iterations=10 --devices-regex=sda --show-timestamps
     #ts device    rd_s rd_avkb rd_mb_s rd_mrg rd_cnc   rd_rt    wr_s wr_avkb wr_mb_s wr_mrg wr_cnc   wr_rt busy in_prg    io_s  qtime stime
14:08:26 sda        0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
14:08:26 sda1       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
14:08:26 sda2       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
14:08:26 sda3       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
  • ts:在--show-timestamps操作時候的時間戳。但如果在group-by為all模式下此列顯示時間戳偏移量,如果在sample模式下表示分組到每個樣本的總時間跨度
  • device:設備名稱
  • rd_s:每秒的平均讀取次數
  • rd_avkb:讀取的平均大小單位kb
  • rd_mb_s:每秒讀取的平均兆位元組數
  • rd_mrg:在發送到物理設備之前在隊列調度程式中合併在一起的讀取請求的百分比
  • rd_cnc:根據利特爾定律計算得出的讀取操作的平均併發度
  • rd_rt:讀取操作的平均響應時間,以毫秒為單位
  • wr_s:每秒平均寫入次數
  • wr_avkb:平均寫入大小
  • wr_mb_s:每秒平均寫入的平均大小
  • wr_mrg:發送到物理設備之前,在隊列調度程式中合併在一起的寫入請求的百分比
  • wr_cnc:寫入操作的平均併發量
  • wr_rt:寫入操作的平均相應時間
  • busy:磁碟繁忙程度
  • in_prg:正在進行的請求數
  • io_s:物理設備的平均吞吐量,以每秒 I/O 操作數 (IOPS) 為單位
  • qtime:平均排隊時間
  • stime:平均服務時間

採集分析

先收集 /proc/diskstats 的信息,存到一個文件裡面,採集一段時候後再通過 pt-diskstats 來計算。這樣的好處是,可以瞭解該段時間內的整體 I/O 性能,而不是瞬間的性能指標

使用該 Shell 腳本

採集時間可以修改LOOPS參數,採集間隔修改INTERVAL即可

$ vim collection.sh
#!/bin/bash
INTERVAL=1
LOOPS=10
INT=1
echo `date`
while (( $INT <= $LOOPS )) do Sleep=$(date +%s.%N | awk "{print $INTERVAL - (\$1 % $INTERVAL)}") 
    sleep $Sleep 
    date +"TS %s.%N %F %T" >> diskstats-samples.txt
    cat /proc/diskstats >> diskstats-samples.txt
    let INT=INT+1
done
echo `date`

授權並運行該 Shell 腳本

$ chmod 755 collection.sh
$ sh collection.sh

在腳本文件的同一個目錄下會生成diskstats-samples.txt文本文件,接著使用 pt-diskstats 工具分析即可

$ pt-diskstats --group-by disk diskstats-samples.txt
  #ts device    rd_s rd_avkb rd_mb_s rd_mrg rd_cnc   rd_rt    wr_s wr_avkb wr_mb_s wr_mrg wr_cnc   wr_rt busy in_prg    io_s  qtime stime
 {19} sda        0.0     0.0     0.0     0%    0.0     0.0     0.4     6.8     0.0     8%    0.0     0.3   0%      0     0.4    0.2   0.2
 {19} sda3       0.0     0.0     0.0     0%    0.0     0.0     0.3     7.9     0.0    10%    0.0     0.3   0%      0     0.3    0.2   0.1
 {19} dm-0       0.0     0.0     0.0     0%    0.0     0.0     0.4     7.2     0.0     0%    0.0     0.5   0%      0     0.4    0.2   0.2

不同點是ts列顯示包含在輸出行中的樣本數,其它欄位意思和上方一致

查看該段時間內 sda 的 iops 變化情況

$ pt-diskstats --group-by sample --devices-regex sda --columns-regex io_s diskstats-samples.txt

 #ts device    io_s
  0.0 {4}      156.6
......中間省略部分
 55.2 {4}        0.0
 56.2 {4}        0.0

查看 sda-sdb 兩塊盤在採集的時間段內的整體 I/O 平均負載情況

$ pt-diskstats --group-by disk --devices-regex 'sd[a-c]' diskstats-samples.txt

小技巧

在使用 pt-diskstats 工具線上分析的時候按“?”鍵,將調出互動式幫助菜單,其中顯示哪些鍵控製程序

$ pt-diskstats --devices-regex=sda --show-timestamps
15:08:06 sda        0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
15:08:06 sda1       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
15:08:06 sda2       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
15:08:06 sda3       0.0     0.0     0.0     0%    0.0     0.0     0.0     0.0     0.0     0%    0.0     0.0   0%      0     0.0    0.0   0.0
# 此時輸入'?'會彈出提示
   You can control this program by key presses:
   ------------------- Key ------------------- ---- Current Setting ----
   A, D, S) Set the group-by mode              A
   c) Enter a Perl regex to match column names .
   /) Enter a Perl regex to match disk names   sda
   z) Set the sample size in seconds           1
   i) Hide inactive disks                      yes
   p) Pause the program
   q) Quit the program
   space) Print headers
   ------------------- Press any key to continue -----------------------

pt-fifo-split

概要

可以用做切割大文件,切割完成後再分批導入 GreatSQL 資料庫中,不會造成效率低以及主從延遲

用法

  • pt-fifo-split [OPTIONS] [FILE]

選項

該工具所有選項如下

參數 含義
--config 讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--fifo 可以從中讀取行的 fifo 的名稱
--force 如果 fifo 已存在,請將其刪除,然後重新創建
--help 顯示幫助
--lines 每個塊中要讀取的行數
--offset 從第 N 行開始。如果參數為 0,則所有行都列印到 fifo。如果為 1,則從第一行開始列印行(與 0 完全相同)。如果為 2,則跳過第一行,並將第二行及後續行列印到 fifo
--pid 創建給定的 PID 文件
--statistics 列印塊之間的統計信息
--version 顯示版本

最佳實踐

用命令seq 1 1000000 > hugefile.txt 向hugefile.txt文件插入一百萬行數據

$ wc -l hugefile.txt           
1000000 hugefile.txt

接著需要寫一個腳本文件獲取切割後的數據

$ vim fifo_get.sh 
#!/bin/bash
filename=/tmp/hugefile
n=1
while [ -e /tmp/pt-fifo-split ];
do 
        cat /tmp/pt-fifo-split > "$filename"_"$n".txt ;
        let n++
done

使用 pt-fifo-split 工具切割

$ pt-fifo-split --lines 10000 --statistics hugefile.txt
chunks     lines  time  overall  current
    1     10000    48 208.33 208.33
    2     20000    48 416.67 10000.00
    3     30000    48 625.00 10000.00
    4     40000    48 833.33 10000.00
    5     50000    48 1041.67 10000.00
......下方省略

使用腳本工具獲取數據

$ chmod 755 fifo_get.sh
$ sh fifo_get.sh 
$ ls /tmp/hugefile_* 2>/dev/null | wc -l
100

接下來就可以把這些切割後的文件導入到 GreatSQL 資料庫中了,此時可以用 GreatSQL 的並行LOAD DATA特性,最大導入的加速比大概為20倍

使用 LOAD 語句增加 HINT 啟用

greatsql> LOAD /*+ SET_VAR(gdb_parallel_load=ON) SET_VAR(gdb_parallel_load_chunk_size=65536) SET_VAR(gdb_parallel_load_workers=16) */
DATA INFILE 'hugefile.txt' INTO TABLE t1;

GreatSQL的並行LOAD DATA詳見:https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-1-highperf-parallel-load.html

當然也可以使用split命令來做切割 split -l 1000 hugefile.txt chunk_

pt-ioprofile

概要

主要用於監視和分析 GreatSQL/MySQL 進程的 I/O 活動。通過 stracelsof 來跟蹤進程的 I/O 情況,並列印出相關的表文件和活動 I/O 信息。

用法

  • pt-ioprofile [OPTIONS] [FILE]

建議使用root許可權,可以收集到更多的信息

選項

該工具所有選項如下

參數 含義
--aggregate 聚合函數,sumavg
--cell 指定單元格的內容,有效值為count、sizes、times
--group-by 分組項,有效值為all、filename、pid
--help 顯示幫助
--profile-pid 要分析的 PID 會覆蓋 --profile-process
--profile-process 要分析的進程名稱
--run-time 分析的時間長度
--save-samples 保存樣本的文件名
--version 顯示版本

最佳實踐

直接使用即可,預設--cell為times既I/O操作的時間,預設監聽30秒的mysqld進程,並給出30秒內的分析結果

註意!是要等待30秒後給出分析結果,並不是實時出結果

$ pt-ioprofile
Wed Apr  3 02:16:37 PM CST 2024
Tracing process ID 657147
     total      write      lseek  ftruncate filename
  0.000468   0.000232   0.000142   0.000094 /data/GreatSQL/innodb_status.657147
  0.000184   0.000000   0.000184   0.000000 /tmp/#13526
  0.000180   0.000000   0.000180   0.000000 /tmp/#13525

可指定--cell為sizes既I/O操作的大小

$ pt-ioprofile --cell=sizes                                                        
Wed Apr  3 02:11:09 PM CST 2024
Tracing process ID 657147
     total      write      lseek  ftruncate filename
     53620      26810      26810          0 /data/GreatSQL/innodb_status.657147
      5074          0       5074          0 /tmp/#13525
      2024          0       2024          0 /tmp/#13526

可指定--cell為count既I/O操作的次數

$ pt-ioprofile --cell=count 
Wed Apr  3 02:15:18 PM CST 2024
Tracing process ID 657147
     total      write      lseek  ftruncate filename
         7          4          2          1 /data/GreatSQL/innodb_status.657147
         1          0          1          0 /tmp/#13526
         1          0          1          0 /tmp/#13525

pt-stalk

概要

pt-stalk工具的功能是出現問題時收集GreatSQL資料庫和系統的診斷信息,可以解決更細粒度的現場故障採集

用法

  • pt-stalk [OPTIONS]

建議使用root許可權,可以收集到更多的信息

選項

該工具所有選項如下

參數 含義
--ask-pass 連接 GreatSQL/MySQL 時提示輸入密碼
--collect 當故障發生時收集診斷數據,可使用 --no-collect 使工具只監視系統不收集數據
--collect-gdb 收集 GDB 堆棧跟蹤
--collect-oprofile 收集 oprofile 數據
--collect-strace 收集跟蹤數據
--collect-tcpdump 收集 tcpdump 數據
--config 讀取以逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--cycles 在觸發--collect之前,--variable必須大於--threshold多少次
--daemonize 守護進程,後臺運行
--defaults-file 只從給定文件中讀取 GreatSQL 選項
--dest 保存--collect的診斷數據的位置,不要選擇和GreatSQL同一個目錄,最好是獨立的目錄,因為該工具會刪除目錄下超過一定日期的文件,可能會造成誤刪。預設目錄/var/lib/pt-stalk
--disk-bytes-free 如果磁碟的可用空間少於次值的設定就不使用--collect。防止磁碟被該工具的診斷數據填滿
--disk-pct-free 如果磁碟的可用空間少於次值的百分比就不使用--collect 。這可以防止該工具用診斷數據填充磁碟,和--disk-bytes-free差不多,一個是具體值一個是百分比
--function 設置觸發條件,預設值監視SHOW GLOBAL STATUS,也可以通過此參數修改為SHOW PROCESSLIST
--help 顯示幫助
--host 連接到主機
--interval 檢查觸發器是否為 true 的頻率
--iterations 收集多少次,預設是一直運行
--log 守護進程時將所有輸出列印到此文件
--match 監測SHOW PROCESSLIST時使用的模式
--notify-by-email 發送收集信息到指定的郵箱中
--password 用於連接的密碼
--pid 創建給定的 PID 文件
--plugin 載入插件以連接到該工具並擴展其功能
--mysql-only 僅觸發 GreatSQL 相關的捕獲,忽略所有其他
--port 用於連接的埠號
--prefix 診斷樣本的文件名首碼,預設情況下,同一--collect實例創建的所有文件都具有基於當前本地時間的時間戳首碼,例如 2011_12_06_14_02_02 ,即 2011 年 12 月 6 日 14:02:02
--retention-count 保留最後 N 次運行的數據。如果 N > 0,程式將保留最後 N 次運行的數據,並刪除較舊的數據
--retention-size 保留最多–retention-size MB的數據
--retention-time 保留收集樣本的天數
--run-time 觸發多長時間的 --collect 診斷數據,預設30秒
--sleep --collect 之後要停止多久,可以防止該工具連續觸發
--sleep-collect 收集迴圈周期之間休眠多長時間
--socket 用於連接的套接字文件
--stalk 觀察伺服器並等待觸發發生
--system-only 僅觸發與操作系統相關的捕獲,忽略所有其他捕獲
--threshold --variable 的最大可接受值
--user 登錄的用戶
--variable 要與 --threshold 進行比較的變數
--verbose 運行時列印或多或少的信息
--version 顯示版本

最佳實踐

監控SHOW GLOBAL STATUS中的狀態值

例如監控Threads_running狀態值,如果Threads_running狀態值連續5次超過100,這觸發收集主機和資料庫的信息

$ pt-stalk --function status --variable Threads_running --cycles 5 --threshold 500 --daemonize --user=root --password=

有以下三種觸發方式

  • status
    通過監控SHOW GLOBAL STATUS的參數值,--variable參數指定的監控的具體是哪個參數,預設Threads_running

  • processlist

    通過監控SHOW FULL PROCESSLIST命令的結果,--variable參數指定列的值和--match指定值相匹配的次數,如:State列,匹配值:statistics

  • 自定義腳本

立即收集主機和資料庫信息

不等待觸發發生,立即收集在60秒內主機和資料庫的信息,等待180秒後結束自動退出

$ pt-stalk --no-stalk --run-time=60 --iterations=1 --user=root --password=

查看預設診斷數據存放的位置/var/lib/pt-stalk

$ ls /var/lib/pt-stalk                            
2024_04_07_14_47_10-df              2024_04_07_14_47_10-lsof            2024_04_07_14_47_10-numastat     2024_04_07_14_47_10-ps-locks-transactions
2024_04_07_14_47_10-disk-space      2024_04_07_14_47_10-meminfo         2024_04_07_14_47_10-opentables1  2024_04_07_14_47_10-slabinfo
2024_04_07_14_47_10-diskstats       2024_04_07_14_47_10-mpstat          2024_04_07_14_47_10-opentables2  2024_04_07_14_47_10-slave-status
2024_04_07_14_47_10-hostname        2024_04_07_14_47_10-mpstat-overall  2024_04_07_14_47_10-output       2024_04_07_14_47_10-sysctl
2024_04_07_14_47_10-innodbstatus1   2024_04_07_14_47_10-mutex-status1   2024_04_07_14_47_10-pmap         2024_04_07_14_47_10-top
2024_04_07_14_47_10-innodbstatus2   2024_04_07_14_47_10-mutex-status2   2024_04_07_14_47_10-processlist  2024_04_07_14_47_10-trigger
2024_04_07_14_47_10-interrupts      2024_04_07_14_47_10-mysqladmin      2024_04_07_14_47_10-procstat     2024_04_07_14_47_10-variables
2024_04_07_14_47_10-iostat          2024_04_07_14_47_10-netstat         2024_04_07_14_47_10-procvmstat   2024_04_07_14_47_10-vmstat
2024_04_07_14_47_10-iostat-overall  2024_04_07_14_47_10-netstat_s       2024_04_07_14_47_10-ps           2024_04_07_14_47_10-vmstat-overall

有很多採集的文件,從文件名可以看出來,命名方式就是以命令來命名的。同時也可以用pt-sift工具來查看產生的文件內容

pt-sift

概要

用於分析、查看pt-stalk命令產生的文件內容,並生產概要信息,然後通過輸入不同的命令查看不同的內容。如,輸入m,查看的是SHOW STATUS命令的內容。

用法

  • pt-sift FILE|PREFIX|DIRECTORY

這是一個互動式的命令

選項

該工具所有選項如下

參數 含義
--help 顯示幫助
--version 顯示版本

最佳實踐

顯示所有pt-stalk收集的信息

可以直接使用pt-sift命令,並加上pt-stalk工具收集的信息存放地址

$ pt-sift /var/lib/pt-stalk

此時會跳出一個互動式的命令行,可以通過輸入?來查看幫助信息,通過輸入不同的命令顯示不同的內容

  • d:設置在樣本磁碟性能統計信息上啟動 pt-diskstats 工具的操作
  • i:設置在 less 中查看第一個 INNODB STATUS 樣本的操作
  • m:使用 pt-mext 工具併排顯示 SHOW STATUS 計數器的前 4 個樣本
  • n:以兩種方式彙總 netstat 數據的第一個樣本:按原始主機和按連接狀態
  • j:選擇下一個時間戳作為活動樣本
  • k:選擇前一個時間戳作為活動樣本
  • q:退出程式
  • 1:將每個示例的操作設置為預設值,即查看示例的摘要
  • 0:將操作設置為僅列出示例中的文件
  • *:查看所有文件
                  ---  COMMANDS  ---
      1  Default action: summarize files
      0  Minimal action: list files
      *  View all the files in less
      d  Invoke 'diskstats' on the disk performance data
      i  View the first INNODB STATUS sample in 'less'
      m  Invoke 'pt-mext' to show the SHOW STATUS counters side by side
      n  Summarize the 'netstat -antp' status data
                  --- NAVIGATION ---
      j  Select the next timestamp
      k  Select the previous timestamp
      q  Quit the program
Press any key to continue

pt-summary

概要

列印信息涵蓋CPU、記憶體、硬碟、網卡等核心信息,同時展現文件系統、磁碟調度、隊列大小、LVM、RAID等詳細配置,以及網路鏈接統計、netstat分析,並突出前10負載與vmstat數據

用法

  • pt-summary

選項

參數 含義
--config 讀取這個逗號分隔的配置文件列表,如果指定,這必須是命令行上的第一個選項
--help 顯示幫助
--read-samples 從此目錄中的文件創建報告
--save-samples 將收集到的數據保存在此目錄中
--sleep 從 vmstat 收集樣本時休眠多長時間
--summarize-mounts 報告已安裝的文件系統和磁碟使用情況
--summarize-network 有關網路控制器和配置的報告
--summarize-processes 報告頂級進程和 vmstat 輸出
--version 列印工具的版本並退出

最佳實踐

直接使用即可

$ pt-summary

該段展示當前日期和時間,以及伺服器和操作系統的概覽

# Percona Toolkit System Summary Report ######################
        Date | 2024-04-15 07:49:13 UTC (local TZ: CST +0800)
    Hostname | myarch
      Uptime | 74 days,  5:25,  4 users,  load average: 0.03, 0.01, 0.00
    Platform | Linux
     Release | "Arch Linux" (n/a)
      Kernel | 6.6.3-arch1-1
Architecture | CPU = 64-bit, OS = 64-bit
   Threading | NPTL 2.39
    Compiler | GNU CC version 13.2.1 20230801.
     SELinux | No SELinux detected
 Virtualized | No virtualization detected

該段提取自/proc/cpuinfo

# Processor ##################################################
  Processors | physical = 1, cores = 6, virtual = 12, hyperthreading = yes
      Speeds | 1x4071.589, 1x4177.016, 1x4179.769, 1x4197.696, 1x4197.784, 1x4198.704, 6x800.000
      Models | 12xIntel(R) Core(TM) i7-8850H CPU @ 2.60GHz
      Caches | 12x9216 KB

該段是記憶體信息。生成自freepssysctl以及dmidecode

# Memory #####################################################
         Total | 15.4G
          Free | 1.1G
          Used | physical = 3.7G, swap allocated = 0.0, swap used = 0.0, virtual = 3.7G
        Shared | 3.9M
       Buffers | 10.9G
        Caches | 11.7G
         Dirty | 20 kB
       UsedRSS | 3.3G
    Swappiness | 60
   DirtyPolicy | 20, 10
   DirtyStatus | 0, 0
    Numa Nodes | 1
   Numa Policy | default
Preferred Node | current
   Node    Size        Free        CPUs
   ====    ====        ====        ====
   node0   15787 MB    1165 MB     0 1 2 3 4 5 6 7 8 9 10 11

該段是掛載文件系統。生成自mountdf

# Mounted Filesystems ########################################
  Filesystem      Size Used Type     Opts
                   Mountpoint
  /dev/nvme0n1p1  799M   1% vfat     rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro /efi
  /dev/nvme0n1p2  233G  34% ext4     rw,relatime
                   /
  /dev/sda1       916G   4% ext4     rw,relatime
                   /home
  efivarfs        384K  19% efivarfs rw,nosuid,nodev,noexec,relatime
                   /sys/firmware/efi/efivars
  run             7.8G   1% tmpfs    rw,nosuid,nodev,relatime,mode=755,inode64
                   /run
  tmpfs           1.6G   1% tmpfs    rw,nosuid,nodev,inode64
                   /run/user/0
  tmpfs           1.6G   1% tmpfs    rw,nosuid,nodev,relatime,size=1616676k,nr_inodes=404169,mode=700,inode64
                   /run/user/0
  tmpfs           1.6G   1% tmpfs    rw,nosuid,nodev,nr_inodes=1048576,inode64
                   /run/user/0
  tmpfs           7.8G   0% tmpfs    rw,nosuid,nodev,inode64
                   /dev/shm
  tmpfs           7.8G   0% tmpfs    rw,nosuid,nodev,relatime,size=1616676k,nr_inodes=404169,mode=700,inode64
                   /dev/shm
  tmpfs           7.8G   0% tmpfs    rw,nosuid,nodev,nr_inodes=1048576,inode64
                   /dev/shm
  tmpfs           7.8G   1% tmpfs    rw,nosuid,nodev,inode64
                   /tmp
  tmpfs           7.8G   1% tmpfs    rw,nosuid,nodev,relatime,size=1616676k,nr_inodes=404169,mode=700,inode64
                   /tmp
  tmpfs           7.8G   1% tmpfs    rw,nosuid,nodev,nr_inodes=1048576,inode64
                   /tmp

該段是磁碟調度信息。提取自/sys

# Disk Schedulers And Queue Size #############################
     nvme0n1 | [none] 1023
         sda | [mq-deadline] 64

該段是磁碟分區信息。生成自fdisk -l

# Disk Partitioning ##########################################
Device       Type      Start        End               Size
============ ==== ========== ========== ==================
/dev/nvme0n1 Disk                             256060514304
/dev/nvme0n1p1 Part       2048    1640447                  0
/dev/nvme0n1p2 Part    1640448  500117503                  0
/dev/sda     Disk                            1000204886016
/dev/sda1    Part       2048 1953523711                  0

該段是Kernel Inode State

# Kernel Inode State #########################################
dentry-state | 733944   717873  45      0       291017  0
     file-nr | 1120     0       9223372036854775807
    inode-nr | 631593   103806

該段是內核索引節點信息。分別提取自/proc/sys/fs目錄下同名文件

# LVM Volumes ################################################
Unable to collect information
# LVM Volume Groups ##########################################
Unable to collect information

該段是RAID控制器。生成自lvs

# RAID Controller ############################################
  Controller | No RAID controller detected

該段是網路配置,生成自lspcisysctl

# Network Config #############################################
  Controller | Intel Corporation Ethernet Connection (7) I219-LM (rev 10)
 FIN Timeout | 60
  Port Range | 60999

該段是網路介面統計,生成自ip -s link

# Network Connections ########################################
  Connections from remote IP addresses
    192.168.6.76        1
    213.133.111.6       1
  Connections to local IP addresses
    192.168.6.55        2
  Connections to top 10 local ports
    22                  1
    35554               1
  States of connections
    ESTABLISHED         2
    LISTEN              5

該段是TOP命令前幾行

# Top Processes ##############################################
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
1526529 root      20   0   15316   5632   3584 R  16.7   0.0   0:00.03 top
      1 root      20   0   22644  13452  10112 S   0.0   0.1  12:08.33 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:05.75 kthreadd
      3 root      20   0       0      0      0 S   0.0   0.0   0:00.00 pool_wo+
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+
      7 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+

該段是要註意的地方,這裡提示sshd沒運行

# Notable Processes ##########################################
  PID    OOM    COMMAND
    ?      ?    sshd doesn't appear to be running

該段是記憶體管理,這裡提示開啟了透明大頁

# Memory management ##########################################
Transparent huge pages are enabled.

該段表示結束

# The End ####################################################

本文完

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

-Advertisement-
Play Games
更多相關文章
  • 最近在Mac上想要遠程一臺Linux伺服器,結果不知怎麼的就不能使用以前的ssh登錄了 iot@ios-iMac ~ % ssh [email protected] Unable to negotiate with 192.168.1.230 port 22: no matching host k ...
  • 文件上傳到伺服器先 一般傳到伺服器目錄 mkdir /usr/local/install_package 資料庫 版本:Postgresql 9.5.20 檢查依賴環境 gcc-c++環境,有日誌列印就是有安裝,新伺服器一般都只有gcc沒有g++ gcc -v g++ -v rpm -qa | gr ...
  • Apache Doris設計思想介紹與應用場景 MPP ( Massively Parallel Processing ),即大規模並行處理,在資料庫非共用集群中,每個節點都有獨立的磁碟存儲系統和記憶體系統,業務數據根據資料庫模型和應用特點劃分到各個節點上,每台數據節點通過專用網路或者商業通用網路互相 ...
  • 《數據資產管理核心技術與應用》是清華大學出版社出版的一本圖書,全書共分10章,第1章主要讓讀者認識數據資產,瞭解數據資產相關的基礎概念,以及數據資產的發展情況。第2~8章主要介紹大數據時代數據資產管理所涉及的核心技術,內容包括元數據的採集與存儲、數據血緣、數據質量、數據監控與告警、數據服務、數據許可權 ...
  • 我把粉絲們發給我的面經好好整理了一下,從裡面挖出了十個被問得比較頻繁的資料庫面試題,可以收藏起來,在面試之前給它突擊過一遍。 ...
  • 視圖 1. 為什麼要使用視圖?什麼是視圖? 為了提高複雜 SQL 語句的復用性和表操作的安全性,MySQL 資料庫管理系統提供了視圖特性。所謂視圖,本質上是一種虛擬表,在物理上是不存在的,其內容與真實的表相似,包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以儲存的數據值形式存在。行和列數據 ...
  • 問題場景 SQL Server事務複製在正常創建發佈和訂閱之後,log reader Job 啟動異常,出現“The process could not execute ‘sp_replcmds’ on xxx”等異常日誌導致代理服務無法正常啟動。 異常現象 參考下圖,異常日誌如下 Error me ...
  • 整理了一下pg_dump邏輯備份還原,pg啥時候推出一個庫級別的物理備份還原就好,邏輯備份能行但操作大庫效率太低,就像MySQL/MSSQL一樣,跨實例做庫級別還原的需求太多了 pg_dump備份 pg_dump備份 -F format 參數,備份文件的格式。format可以是下列之一: p pla ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...