linux-磁碟io監控相關工具整理

来源:https://www.cnblogs.com/baihh/archive/2022/10/20/16771744.html
-Advertisement-
Play Games

常見的io監控工具包括iostat、iotop,這裡從工具的安裝、使用、優缺點進行分析,並給出目前缺少的監控工具 1 iostat 功能:用於報告CPU(中央處理器)統計信息和整個系統、適配器、tty設備、磁碟和CD-ROM的輸入/輸出統計信息;通過觀察設備處於活動狀態的時間(相對於其平均傳輸速率) ...


常見的io監控工具包括iostat、iotop,這裡從工具的安裝、使用、優缺點進行分析,並給出目前缺少的監控工具


 1 iostat

  • 功能:用於報告CPU(中央處理器)統計信息和整個系統、適配器、tty設備、磁碟和CD-ROM的輸入/輸出統計信息;通過觀察設備處於活動狀態的時間(相對於其平均傳輸速率)來整理實時報告輸出 ,主要用於監視nfs網路文件系統和本地文件系統。
  • 參數詳解:
    • iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
    • -c: 僅顯示CPU統計信息.與-d選項互斥.
    • -d:僅顯示磁碟統計信息.與-c選項互斥.
    • -k:以K為單位顯示每秒的磁碟請求數,預設單位塊.
    • -m: 以M為單位顯示每秒的磁碟請求數
    • -p:device | ALL,與-x選項互斥,用於顯示塊設備及系統分區的統計信息.也可以在-p後指定一個設備名,如:# iostat -p hda 或顯示所有設備# iostat -p ALL
    • -t : 在輸出數據時,列印搜集數據的時間.
    • -V: 列印版本號和幫助信息.
    • -x : 輸出擴展信息
  • 輸出
    • 輸出分為avg-cpu段和Device段
  • 常用命令
    • iostat -xm 1 : 每秒輸出一次cpu&device信息
    • iostat -c  1 2 : 每秒輸出一次cpu信息,總共輸出2次
    • iostat -d 2 : 間隔2秒輸出一次device信息
    • iostat -xm 1 /dev/sdb : 每秒輸出1次sdb的device信息和cpu信息
    • iostat -p /dev/sdb -d 1 2 : 每秒輸出一次sdb的分區的設備信息,總共輸出2次
  • 註意事項
    • util代表磁碟使用率,對於hdd,使用率達到100%代表已經達到磁碟瓶頸,但對於ssd並不代表已經達到瓶頸,因為util是按照(svctm*(r/s+w/s))/1000,對於ssd因為有併發,所以達到100%只能說明單通道達到了100%
  • 參考來源:(23條消息) 優化命令iostat詳解_灌南第一帥的博客-CSDN博客_iostat命令詳解參數

2 sar

  • 功能:系統維護的重要工具,主要幫助我們掌握系統資源的使用情況,特別是記憶體和CPU 的使用情況,是UNIX系統使用者應該掌握的工具之一
  • 參數詳解:
    • sar [options] [-A] [-o file] t [n]
    • 在命令行中,n 和t 兩個參數組合起來定義採樣間隔和次數,t為採樣間隔,是必須有的參數,n為採樣次數,是可選的,預設值是1,-o file表示將命令結果以二進位格式存放在文件中,file 在此處不是關鍵字,是文件名。options 為命令行選項
    • -A:所有報告的總和。
    • -u:CPU利用率
    • -v:進程、I節點、文件和鎖表狀態。
    • -d:硬碟使用報告。
    • -r:沒有使用的記憶體頁面和硬碟塊。
    • -g:串口I/O的情況。
    • -b:緩衝區使用情況。
    • -a:文件讀寫情況。
    • -c:系統調用情況。
    • -R:進程的活動情況。
    • -y:終端設備活動情況
    • -w:系統交換活動。
    • -p: 列印出設備名稱,不加輸出的是設備節點,如dev8-0
    • -n: 某個埠設備的網路狀態
    • sar -d -v  -R
  • 輸出:
      • DEV: 網卡/EDEV: 網卡(錯誤) 

      • NFS/NFSD/SOCK/IP/EIP/ICMP/EICMP/TCP/ETCP/UDP/SOCK6/IP6/EIP6/ICMP6/EICMP6/UDP6
  • 常用命令:
    • sar -d 1 : 間隔1s輸出一次設備情況
    • sar -u 1 10 : 間隔1s輸出一次cpu使用情況,總共輸出10次
    • sar -d -f /var/log/sa/sa03 -p|grep -E "DEV|sd" : 從文件sa03中過濾出磁碟信息(sa03代表3號,最多保存一個月的日誌)
    • sar -r 1 10 -o mem.log : 將記憶體信息每秒列印一次,總共列印10s,並將結果輸出到mem.log中
    • sar -v 1 3 :  監控目前系統中的資源使用情況
  • 參考鏈接:

 3 iotop

  • 功能:一個類似 top 的工具,用來顯示實時的磁碟活動。Linux下的IO統計工具如iostat,nmon等大多數是只能統計到per設備的讀寫情況。iotop 監控 Linux 內核輸出的 I/O 使用信息,並且顯示一個系統中進程或線程的當前 I/O 使用情況。它顯示每個進程/線程讀寫 I/O 帶寬。它同樣顯示當等待換入和等待 I/O 的線程/進程花費的時間的百分比。它是一款開源、免費的用來監控磁碟I/O使用狀況的類似top命令的工具,iotop可以監控進程的I/O信息。它是Python語言編寫的,與iostat工具比較,iostat是系統級別的IO監控,而iotop是進程級別IO監控。
  • 參數:
    • -o:只顯示有io操作的進程
    • -b:批量顯示,無交互,主要用作記錄到文件。
    • -n NUM:顯示NUM次,主要用於非互動式模式。
    • -d SEC:間隔SEC秒顯示一次。
    • -p PID:監控的進程pid。
    • -u USER:監控的進程用戶
    • -P :只顯示進程,不顯示線程
    • -a :顯示累計的io(從iotop啟動)
    • -k : 以KB為單位顯示
    • -t : 非交互模式下,顯示時間
    • -q: 只在第一次監測時顯示列名. 去除頭部一些行:這個參數可以設置最多3次來移除頭部行:-q列頭部只在最初交互顯示一次;-qq列頭部不顯示;-qqq,I/O的總結不顯示

 4 top

  • 功能:監視進程和Linux整體性能的工具,所有用戶可使用
  • 參數:
    • top [-] [d delay] [q] [c] [S] [s] [n]
    • d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
    • q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權則 top 將會以最高的優先序執行
    • c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱
    • S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
    • s : 安全模式,將交談式指令取消, 避免潛在的危機
    • i : 不顯示任何閑置 (idle) 或無用 (zombie) 的行程
    • n : 更新的次數,完成後將會退出 top
    • b : 批次檔模式,搭配 “n” 參數一起使用,可以用來將 top 的結果輸出到檔案內
    • 1 :交互界面中輸入數字1,可查看每個cpu的情況
    • b : 交互界面中輸入字母b,可高亮顯示當前運行進程
  • 輸出:
  • 常用命令:
    • top 然後在交互中輸入i(僅活躍的進程),然後輸入1(查看每個cpu的情況),然後輸入b(高亮顯示)

 5 vmstat

  • 功能:報告關於內核線程、虛擬記憶體、磁碟、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統範圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。Linux系統的記憶體分為物理記憶體和虛擬記憶體兩種。物理記憶體是真實的,也就是物理記憶體條上的記憶體。而虛擬記憶體則是採用硬碟空間補充物理記憶體,將暫時不使用的記憶體頁寫到硬碟上以騰出更多的物理記憶體讓有需要的進程使用。當這些已被騰出的記憶體頁需要再次使用時才從硬碟(虛擬記憶體)中讀回記憶體。這一切對於用戶來說是透明的。通常對Linux系統來說,虛擬記憶體就是swap分區。vmstat(VirtualMeomoryStatistics,虛擬記憶體統計)是Linux中監控記憶體的常用工具,可對操作系統的虛擬記憶體、進程、CPU等的整體情況進行監視
  • 參數:

 

    • vmstat [-a] [-n] [-S unit] [delay [ count]}  : -a顯示活躍和非活躍記憶體 -n只在開始時顯示列名稱  dealy刷新的時間間隔   count輸出的次數 -S:使用制定單位顯示(k/K/m/M等)
    • vmstat [-s] [-n] [-S unit] : -s顯示系統相關信息(如記憶體/cpu等)
    • vmstat [-m] [-n] [delay [ count]] : -m 顯示slab信息 
    • vmstat [-d] [-n] [delay [ count]] : -d顯示磁碟相關統計
    • vmstat [-p disk partition] [-n] [delay [ count]] : -p顯示磁碟分區統計信息
    • vmstat [-f] : -f從系統啟動至今的fork數量
    • vmstat [-V] : -v顯示版本信息

 

  • 輸出:
      • swpd: 使用虛擬記憶體大小
      • free: 可用記憶體大小
      • buff: 用作緩衝的記憶體大小
      • cache: 用作緩存的記憶體大小
      • si: 每秒從交換區寫到記憶體的大小
      • so: 每秒寫入交換區的記憶體大小
      • bi: 每秒讀取的塊數
      • bo: 每秒寫入的塊數
      • in: 代表每秒的中斷數目
  • 常用命令:
    • vmstat 1 5: 每隔1s輸出一次,共輸出5次
    • vmstat -f : 查看系統已經fork了多少次
    • vmstat -a : 查看active和非active記憶體情況【註:inact和active的數據來自於/proc/meminfo】
    • vmstat -s : 查看記憶體占用總體情況
    • vmstat -d 1 5 : 查看5次磁碟io情況 【註:這些信息主要來自於/proc/diskstats】
    • vmstat -p /dev/sdb1 : 查看分區sdb1的情況,只能用來查看分區
  • 參考鏈接:

  6 pidstat

  •  簡介:
    • sysstat工具的一個命令,用於監控全部或指定進程的cpu、記憶體、線程、設備IO等系統資源的占用情況。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息
  • 參數:
    • pidstat [ 選項 ] [ <時間間隔> ] [ <次數> ]
    • -u:預設的參數,顯示各個進程的cpu使用統計
    • -r:顯示各個進程的記憶體使用統計
    • -d:顯示各個進程的IO使用情況
    • -p:指定進程號
    • -w:顯示每個進程的上下文切換情況
    • -t:顯示選擇任務的線程的統計信息外的額外信息
    • -T { TASK | CHILD | ALL } 這個選項指定了pidstat監控的。TASK表示報告獨立的task,CHILD關鍵字表示報告進程下所有線程統計信息。ALL表示報告獨立的task和task下麵的所有線程。註意:task和子線程的全局的統計信息和pidstat選項無關。這些統計信息不會對應到當前的統計間隔,這些統計信息只有在子線程kill或者完成的時候才會被收集。
    • -V:版本號
    • -h:在一行上顯示了所有活動,這樣其他程式可以容易解析。
    • -I:在SMP環境,表示任務的CPU使用率/內核數量
    • -l:顯示命令名和所有參數
  • 輸出:
  • 常用命令:
    • pidstat -d 1 -l: 顯示磁碟io使用情況,並顯示詳細指令
    • pidstat -r : 顯示記憶體占用情況
    • pidstat -u : 顯示cpu占用情況
  • 參考鏈接:

 7 pt-ioprofile

  • 簡介
    • Percona Toolkit簡稱pt工具,是Percona公司開發用於管理MySQL的工具,功能包括檢查主從複製的數據一致性、檢查重覆索引、定位IO占用高的表文件、線上DDL等,DBA熟悉掌握後將極大提高工作效率,常用來定位哪個文件IO占用比較高,其原理是對某個pid附加一個strace進程進行IO分析, --profile-pid指定pid, --cell=sizes,該參數將結果已 B/s 的方式展示出來
  • 參數:
    • pt-ioprofile --profile-pid=18934 --cell=sizes
  • 輸出:
  • 常用命令:
    • pt-ioprofile --profile-pid=11220--cell=sizes
  • 參考鏈接:
  • 註意事項:
    • pt-ioprofile可能會凍結服務,crash進程,是進程變得更糟糕,或者使進程休眠
    • pt-ioprofile是一個有干擾的工具,一般不用在生產環境中,除非你能理解和接受風險

 8 lsof

  • 簡介:lsof(list open files),一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網路連接和硬體。因為 lsof 需要訪問核心記憶體和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能
  • 參數:
    • lsof [option] filename
    • -c: 顯示command列中包含string的進程所打開的文件
    • -u: 顯示某個用戶打開的文件
    • -a: 顯示滿足後續所有條件的文件
    • -p: 列出進程號所打開的文件
    • -h: 顯示幫助信息
    • -v: 顯示版本信息
    • -n:列出使用nfs的文件
    • +D: 遞歸打開目錄下的所有文件
    • +d:列出目錄下被打開的文件
    • -d:列出占用該文件號的進程
    • -g:列出gid(groupid)號進程詳情
    • -t:僅列出進程
    • -r: 迴圈列出文件直到被中斷,後面數字代表迴圈的頻率,
  • 輸出:
    • COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
      init 1 root cwd DIR 3,3 1024 2 /
      init 1 root rtd DIR 3,3 1024 2 /
      init 1 root txt REG 3,3 38432 1763452 /sbin/init
      init 1 root mem REG 3,3 106114 1091620 /lib/libdl-2.6.so
      init 1 root mem REG 3,3 7560696 1091614 /lib/libc-2.6.so
      init 1 root mem REG 3,3 79460 1091669 /lib/libselinux.so.1
      init 1 root mem REG 3,3 223280 1091668 /lib/libsepol.so.1
      init 1 root mem REG 3,3 564136 1091607 /lib/ld-2.6.so
      init 1 root 10u FIFO 0,15 1309 /dev/initctl
    • Command: 進程名稱
    • PID: 進程號
    • USER: 用戶名
    • FD: 文件描述符,如cwd(某個進程運行時所在的目錄) 、txt(程式代碼,如應用程式的二進位庫或者是共用庫)、rtd(根目錄)、mem(記憶體映射文件)、mmap(記憶體映射設備)、數字大頭的(0|1|2U|R|W)
    • TYPE: 類型,REG(文件)、DIR(目錄)、CHR(字元)、BLK(塊設備)、UNIX(套接字)、FIFO(先進先出隊列)、IPV4(網際協議套接字)
    • DEVICE: 指定磁碟的名稱
    • SIZE: 文件的大小
    • NODE:索引節點,文件在磁碟上的標識
    • NAME:打開文件的確切名稱
  • 常用命令
    • lsof filename : 打開filename的所有進程
    • lsof -c string: 顯示command列中包含string的進程所打開的文件
    • lsof -u user: 顯示所屬user進程打開的文件
    • lsof -a -c string -u user :同時滿足-c&-u兩個屬性的被打開的文件
    • lsof -u ^baihh : 顯示不屬於baihh進程的文件
    • lsof -i : 顯示所有打開的埠
    • lsof -i :80 : 顯示所有打開80埠的進程
    • lsof  /dev/sda[1234] : 顯示打開sda1 sda2 sda3 sda4中任意一個的設備的文件
    • lsof -p 300,400,500 : 列出進程300、400、500打開的所有文件
    • lsof -t -i: 列出使用某個埠的進程pid
  • 參考鏈接:

9 dstat

  • 簡介
    • 一個用來替換vmstatiostatnetstatnfsstatifstat這些命令的工具,可以實時的監控cpu、磁碟、網路、IO、記憶體等使用情況,是一個全能系統信息統計工具。與sysstat相比,dstat擁有一個彩色的界面,在手動觀察性能狀況時,數據比較顯眼容易觀察;而且dstat支持即時刷新,譬如輸入dstat 3即每三秒收集一次,但最新的數據都會每秒刷新顯示。和sysstat相同的是,dstat也可以收集指定的性能資源,譬如dstat -c即顯示CPU的使用情況
    • 使用python編寫的,方便擴展現有的工作任務 
  • 參數
    • dstat [-afv] [option] [gap count]: 預設1s顯示一次信息
    • -c: 顯示cpu信息
    • -C:只顯示指定cpu的信息
    • -d:顯示磁碟設備信息
    • -n:顯示網路設備信息
    • -N: 指定要顯示的網卡
    • -g:顯示頁面(page)相關信息
    • -y:顯示系統(system)相關信息
    • -a: 預設選項,等同於-cdngy
    • -p: 顯示進程狀態
    • -m: 顯示記憶體使用情況
    • -D: hda,total: include hds and total
    • -s: 顯示交換分區使用情況
    • -S:類似於D/N
    • -v: 等同於-pmgdsc -D total
    • -r: io請求情況
    • --output : 將輸出結果以csv格式重定向到指定文件中(可用excel打開)
    • -aio: 開啟同步io統計
    • -fs:開啟文件系統統計
    • -ipc:開啟ipc統計
    • -lock:開啟文件鎖統計
    • -raw:開啟raw統計(raw lock)
    • -socket: 開啟socket統計
    • -tcp/-udp/-unix/-vm: 開啟相關統計
    • -stat 通過插件名稱開啟插件擴展,可能的插件包括(aio/cpu/disk/disk24/disk240ld/fs/int/mem/net/socket/vm等)
    • -list:列出所有的插件名稱
    • -float/-integer: 終端顯示浮點型/整型
    • -nocolor: 無需顏色
    • --disk-util : 顯示某一時刻磁碟的繁忙程度
    • --disk-tps:磁碟每秒事務數統計
    • -top-io 顯示正常I/O最大的進程
    • --top-io-adv:詳細顯示
    • --freespace 顯示當前磁碟空間使用率
    • -top-bio 顯示塊I/O最大的進程,僅顯示進程
    • --top-bio-ad : 詳細顯示最消耗塊io的進程,包括pid和其他信息
    • dstat --top-latency:顯示哪個進程有最大的延遲
  • 輸出
    •   
      [root@iZ23uulau1tZ ~]# dstat
      ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
      usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
      0   0  99   0   0   0|7706B  164k|   0     0 |   0     0 | 189   225
      0   0 100   0   0   0|   0     0 |4436B  826B|   0     0 | 195   248
      1   0  99   0   0   0|   0     0 |4744B  346B|   0     0 | 203   242
      0   0 100   0   0   0|   0     0 |5080B  346B|   0     0 | 206   242
      0   1  99   0   0   0|   0     0 |5458B  444B|   0     0 | 214   244
      1   0  99   0   0   0|   0     0 |5080B  346B|   0     0 | 208   242
    • hiq: cpu硬中斷的次數
    • siq:cpu軟中斷的次數
    • int:系統的中斷次數(interrrupt)
    • csw:系統的上下文切換次數(context switch)
  • 常用命令
    • dstat -stat disk --disk-util --top-io --freespace
    • dstat -dD sda --top-io-adv: 顯示指定盤的耗用cpu最多的進程【待驗證】
    • dstat --dstat : 顯示dstat本身的cpu、延遲等
  • 參考鏈接

 

10 atop

  • 簡介

 

11 sysdig

 

12 sysstat

 

 

參考:Linux 系統監控工具 atop - 走看看 (zoukankan.com)

Linux系統的atop監控工具 (aliyun.com)

 

11  ioping

 

參考:(23條消息) linux 查看共用磁碟_用於檢測查看磁碟活動的Linux命令_小透明熊熊的博客-CSDN博客

 

總結:以上工具通過某些指令都可以用來分析磁碟io,但目前的工具還缺少分析指定盤的帶寬占用進程統計,而此統計在實際應用有重要的意義,比如系統盤io占用,一般我們需要分析哪個進程占用系統盤的io資源比較多,據此來限制此進程的操作,若各位有這種工具,歡迎推薦,共同進步,增長見識!!!

 


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

-Advertisement-
Play Games
更多相關文章
  • 1 設計模式概述 ​ 軟體設計模式(Software Design Pattern),俗稱設計模式,設計模式是一套被反覆使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。它描述了在軟體設計過程中的一些不斷重覆發生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 ...
  • 1、統一數據返回 使用逆向工程來進行測試,實體,mapper等省略; 1.1 直接使用 RequestResoult 1.1.1 RequestResoult 請求結果返回實體 //統一返回 實體 類 @Data public class RequestResult<T> { //狀態碼 priva ...
  • synchronized作為Java程式員最常用同步工具,很多人卻對它的用法和實現原理一知半解,以至於還有不少人認為synchronized是重量級鎖,性能較差,儘量少用。 但不可否認的是synchronized依然是併發首選工具,連volatile、CAS、ReentrantLock都無法動搖s... ...
  • WPF以其豐富靈活的控制項樣式設計,相較於WinForm而言,一直是工控組態軟體的寵兒。經過上一篇文章的學習,已經對WPF開發工控組態軟體有了一個基本的瞭解, 今天繼續學習冷卻塔和空氣壓縮機的開發,僅供學習分享使用,如有不足之處,還請指正。 ...
  • System.IO命名空間下麵有一個FileSystemWatcher,這個東西可以實現文件變動的提醒。需要監控文件夾變化(比如FTP伺服器)的情形非常適用。 需要監控文件新建時,我們可以這麼寫: _fileSystemWatcher.Path = path; _fileSystemWatcher. ...
  • 年底找工作不容易,但是目前的工作做起來沒意思了。 這家公司是檢測設備的公司,裡面需要wpf開發,我就去投了試一下,隔了一周hr說線下麵試。 1面:HR 主要是問一下為啥想要離職,以後的發展方向有沒有確定。hr說他們公司不加班,加班沒工資但是可以調休 2面:技術 來之前在hr那做了一份題目,主要是C# ...
  • 一個美麗的邂逅 昨天心血來潮,想著用了很久的HangFire這個任務調度組件,卻從來沒有研究過其源碼,所以我就想著看一下Hangfire的源碼,然後當我看到Hangfire源碼中 AspNetShutdownDetector(Asp.Net服務停止檢測器)這個類的源碼的時候,看到其實現方式中,有兩個 ...
  • 1 獲取基本信息 1.1 查看系統版本 [root@surpass ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 1.2 查看系統內核版本 [root@surpass ~]# uname -r 3.10.0-1160 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...