性能測試過程中監控linux服務器資源情況

文章目錄

      • 1. cpu使用情況
        • (1)性能瓶頸類型
          • CPU密集型瓶頸?
          • ?I/O或等待瓶頸?
        • (2)資源分配與競爭?
          • 資源爭用分析?
          • 虛擬化環境資源分配?
        • (3)系統穩定性與異常?
          • ?異常波動與毛刺?
          • ?過熱降頻影響?
        • (4) 趨勢分析與容量規劃?
      • 2. 內存占用
        • (1)正常趨勢
        • (2)?持續上升趨勢?
        • (3)內存耗盡臨界點?
      • 3 磁盤io與虛擬報表圖
      • 4 網絡io圖
      • 5 proc圖
      • 6 系統平均負載

在性能場景執行過程中,可以使用nmon工具或者Prometheus+Grafana+node_exporter的方案來監控系統服務器資源情況,那么一般都監控哪些資源,如何分析呢?

1. cpu使用情況

(1)性能瓶頸類型
CPU密集型瓶頸?

?持續高負載(>80%)??:表明CPU資源飽和,可能因計算任務過多或算法效率低。需結合用戶態(us%)與內核態(sy%)占比分析:
?用戶態高?:應用程序自身計算邏輯復雜(如數據處理、加密運算)。
?內核態高?:頻繁系統調用或I/O操作(如網絡包處理、文件讀寫),可能需優化系統配置或升級硬件。
?多核負載不均?:圖形中部分核心持續滿載而其他空閑,提示任務調度不均衡或進程未充分利用多核,需調整進程親和性(taskset)或優化并行設計。

?I/O或等待瓶頸?

?高等待時間(wa%)??:CPU空閑但等待磁盤I/O完成(如數據庫寫入),圖形顯示CPU使用率低而系統響應慢。此時應檢查磁盤性能(iostat)或優化I/O調度策略。

(2)資源分配與競爭?

?

資源爭用分析?

?周期性尖峰?:圖形出現規律性峰值(如定時任務觸發),可能導致瞬時延遲,需錯峰調度或優化任務頻率。
?超線程爭用?:物理核心滿載但邏輯核心利用率低,提示超線程資源競爭,需綁定進程到物理核心或關閉超線程。
?

虛擬化環境資源分配?

?EC(Entitled Capacity)超限?:在虛擬化平臺(如AIX LPAR)中,圖形顯示CPU利用率超過EC值,表明資源借用導致性能不穩定,需擴容EC保障資源。

(3)系統穩定性與異常?
?異常波動與毛刺?

?突增異常?:無壓力時出現短暫100%利用率,可能因惡意進程(如挖礦病毒)或配置錯誤(如死循環),需結合top定位進程并排查。
?鋸齒狀圖形?:頻繁上下波動提示資源競爭(如鎖沖突),需優化同步機制或減少鎖粒度。

?過熱降頻影響?

?高頻后驟降?:CPU因溫度過高觸發降頻(throttling),圖形顯示利用率突降伴隨性能劣化,需改善散熱或限制CPU頻率

(4) 趨勢分析與容量規劃?

?長期趨勢預測?
?基線對比?:對比歷史圖形,若相同業務量下CPU利用率逐年上升,提示系統性能退化(如資源碎片化),需重構或擴容。
?容量規劃?:結合業務增長趨勢,預測CPU利用率達臨界值(如70%)的時間點,指導硬件升級。
?周期性負載規律?
?高峰時段識別?:圖形顯示每日固定時段利用率飆升(如電商大促),可提前擴容或實施彈性伸縮

2. 內存占用

(1)正常趨勢

內存使用隨負載增加而增加,但應有足夠的內存空間

(2)?持續上升趨勢?

?現象?:內存使用率隨時間或負載增加持續攀升且無回落,即使負載降低后內存仍未釋放。
?判斷?:表明存在內存泄漏?(如未釋放的緩存、數據庫連接池或對象引用)。需結合工具(如MAT)分析堆轉儲文件,定位泄漏對象。
?案例?:Java應用未關閉ResultSet導致數據庫連接堆積,內存占用從1GB持續增長至4GB。
?

(3)內存耗盡臨界點?

?現象?:內存使用率長期接近100%?,伴隨頻繁的Swap交換(磁盤I/O激增)。
?判斷?:系統面臨OOM(Out of Memory)崩潰風險,需擴容內存或優化代碼(如減少大對象分配)。

3 磁盤io與虛擬報表圖

在性能測試過程中,獲取磁盤I/O和虛擬報表(如數據庫報表引擎生成的數據報表)的信息,是定位系統瓶頸、優化資源配置、保障業務穩定性的關鍵手段。以下從磁盤I/O和虛擬報表兩個維度展開分析:

一、磁盤I/O分析:定位存儲性能瓶頸

磁盤I/O性能直接影響系統響應速度和穩定性,主要關注以下指標及其分析價值:

  1. IOPS(每秒I/O操作數)
    ? 分析場景:
    ? 低IOPS + 高%util:磁盤處理能力不足,需檢查RAID配置或升級SSD(如HDD隨機IOPS通常僅100左右,SSD可達數萬)。

    ? 高隨機IOPS需求:常見于OLTP數據庫(如訂單處理系統),若IOPS未達預期,需優化索引或分散數據存儲。

    ? 工具獲取:iostat -dx(關注r/s+w/s)、nmon。

  2. 吞吐量(帶寬,MB/s)
    ? 分析場景:

    ? 低吞吐量 + 高%util:磁盤帶寬飽和,影響大數據處理(如OLAP報表生成),需增加磁盤或優化數據壓縮。

    ? 大塊I/O場景:視頻流或備份任務,吞吐量不足可能因網絡或磁盤陣列限制。

    ? 工具獲取:iostat(rkB/s+wkB/s)、dd測試。

  3. 響應時間(時延,ms)
    ? 分析場景:
    ? await > 15ms(隨機I/O):磁盤隊列堆積,需檢查調度策略(如將deadline改為noop)或減少并發。
    ? 高svctm + 低吞吐量:物理磁盤老化或陣列緩存失效。

  4. 使用率(%util)與飽和度
    ? %util > 80%:磁盤持續繁忙,可能成為系統瓶頸。
    ? 高avgqu-sz(隊列長度):I/O請求積壓,需擴容或負載均衡。

  5. 關聯分析示例
    ? 現象:數據庫報表生成慢 + 磁盤%util=95% + await=25ms。

    ? 結論:磁盤I/O是瓶頸,需優化SQL查詢(減少全表掃描)或遷移至高速存儲。

二、虛擬報表信息分析:驗證業務邏輯與資源效率

虛擬報表(如數據庫引擎生成的業務報表)的性能分析側重數據準確性、響應效率和資源消耗:

  1. 數據準確性驗證
    ? 一致性:比對報表數據與源數據庫(如驗證銷售額匯總是否匹配原始交易表)。

    ? 完整性:檢查字段缺失或空值(如必填項未展示)。

  2. 響應時間與吞吐量
    ? 慢查詢定位:報表加載時間 > 2秒時,需分析SQL執行計劃(如是否缺少索引)。

    ? 并發能力:通過JMeter模擬多用戶請求,測試報表引擎的吞吐量極限。

  3. 資源消耗關聯
    ? 高CPU + 長響應時間:報表計算邏輯復雜(如多層聚合),需優化算法或引入緩存。

    ? 高磁盤I/O + 低吞吐量:報表頻繁讀寫臨時表,需調整內存分配或查詢分頁。

  4. 安全與穩定性
    ? 權限測試:驗證不同角色用戶僅能訪問授權數據(如經理vs員工視圖差異)。

    ? 長時間運行:監控內存泄漏(如報表服務持續運行后內存占用飆升)。

三、綜合分析:磁盤I/O與報表性能的關聯場景

場景 磁盤I/O指標 報表指標 優化方向
大數據量報表導出 吞吐量低 + %util 高 響應超時 升級磁盤陣列或分批次查詢
高頻實時儀表盤 隨機IOPS不足 + await高 數據刷新延遲 添加內存緩存或優化數據庫索引
多用戶并發訪問 隊列長度(avgqu-sz)激增 吞吐量下降 擴容應用服務器或負載均衡

總結:核心價值與工具推薦

  1. 磁盤I/O分析價值:
    ? 定位存儲硬件瓶頸(如磁盤老化、帶寬不足);

    ? 指導I/O模型優化(如隨機小I/O場景需提升IOPS,順序大I/O需提升吞吐量)。

    ? 工具鏈:iostat(實時監控)、pidstat -d(進程級)、fio(壓力測試)。

  2. 虛擬報表分析價值:
    ? 確保業務數據可信度(防篡改、防遺漏);

    ? 優化資源密集型操作(如避免全表掃描消耗磁盤I/O)。

    ? 工具鏈:JMeter(并發測試)、Selenium(自動化驗證)、Prometheus(資源監控)。

通過關聯分析磁盤I/O與報表性能,可精準識別系統瓶頸:

  • 若報表響應慢伴隨磁盤%util>90%,優先優化存儲層;

  • 若報表數據錯誤但資源正常,則聚焦業務邏輯或權限配置。

實際案例:某電商平臺報表導出耗時從120s降至15s,方案為:將HDD替換為SSD(提升IOPS 50倍)+ 優化SQL分頁查詢(減少70% I/O)。

4 網絡io圖

監控Linux服務器的網絡讀寫情況是系統運維和性能調優的核心環節,通過分析網絡流量數據,可以深入診斷以下關鍵問題:

一、性能瓶頸與資源使用分析

  1. 帶寬飽和與擁塞檢測
    ? 實時帶寬占用:通過 iftop、nload 等工具實時監測接口流量(如 eth0),若 發送/接收速率接近物理帶寬上限,表明網絡成為瓶頸,需擴容或優化流量調度。

    ? 隊列堆積與丟包:netstat -i 或 /proc/net/dev 中的 dropped(丟包數)、errors(錯誤包數)指標升高,提示網絡擁塞或硬件故障。

  2. I/O與網絡協同瓶頸
    ? 高網絡流量伴隨高磁盤I/O:若 iostat 顯示磁盤 %util > 70% 且 iftop 顯示大量數據傳輸,可能是網絡請求觸發密集磁盤讀寫(如文件下載服務),需優化存儲或緩存策略。

    ? CPU軟中斷過高:top 中 %si(軟件中斷)突增,常見于高流量場景(如視頻流),需檢查網卡多隊列或調整中斷親和性。

二、安全威脅與異常行為識別

  1. 惡意流量檢測
    ? 異常連接源:iftop 實時顯示IP級流量,若發現非常規IP(如境外地址)持續高流量上傳,可能為數據泄露或DDoS攻擊。

    ? 隱蔽通信:tcpdump 抓包分析端口流量,例如非標準端口(如8080)突發加密流量,提示后門程序活動。

  2. 資源濫用定位
    ? 進程級帶寬占用:nethogs 可定位高流量進程(如 java 進程異常上傳),結合業務判斷是否為惡意挖礦或配置錯誤。

    ? 協議層異常:iptraf 分析協議分布,若未知協議(如非常規UDP端口)流量激增,需安全審計。

三、業務可用性與體驗優化

  1. 服務響應延遲根因
    ? 高TCP重傳率:sar -n TCP 顯示 retrans/s > 1%,表明網絡質量差或防火墻干擾,導致應用超時。

    ? 連接數過載:ss -s 統計 ESTAB 連接數,若接近內核限制(/proc/sys/net/core/somaxconn),需擴容或優化連接復用。

  2. 應用層性能調優
    ? 流量模型驗證:壓測期間監控流量,若吞吐量未達預期但帶寬空閑,可能是應用線程數不足或鎖競爭(如數據庫連接池瓶頸)。

    ? CDN/緩存有效性:對比源站與邊緣節點流量,若源站流量未下降,提示緩存策略失效。

四、容量規劃與成本控制

  1. 歷史趨勢與基線分析
    ? 流量增長預測:通過 vnstat 生成日/月報表(如 vnstat -m),結合業務增長規劃帶寬擴容節點。

    ? 峰值預留策略:分析 sar -n DEV 歷史數據,識別業務高峰時段(如電商大促),動態調整帶寬配額以降低成本。

  2. 資源錯峰調度
    ? 帶寬密集型任務:若備份任務占用日間帶寬,可調度至夜間低峰期執行。

五、網絡架構優化依據

  1. 負載均衡有效性
    ? 多服務器流量對比:若某節點流量顯著高于其他節點,可能是負載均衡策略失效(如Nginx權重配置錯誤)。

  2. VLAN/子網分割必要性
    ? 廣播風暴檢測:tcpdump 捕獲ARP風暴或未知組播包,提示需隔離廣播域。

分析工具與指標速查表

分析目標 推薦工具 關鍵指標

實時帶寬占用 iftop、nload TX/RX速率、峰值帶寬

進程級流量追蹤 nethogs 進程名、發送/接收流量

歷史趨勢分析 vnstat、sar -n 日/月流量統計、峰值時間點

協議與連接分析 iptraf、ss 協議分布、TCP狀態、連接數

異常包檢測 tcpdump、Wireshark 源/目的IP、端口、包內容

注意事項

  1. 監控開銷控制:高頻抓包(如 tcpdump)可能消耗10%以上CPU,生產環境建議采樣或限時。
  2. 數據敏感性:流量中可能含用戶隱私,需遵守合規要求(如匿名化處理)。
  3. 基線建立:正常流量模式是異常檢測的前提,需長期積累數據。

通過多維度關聯分析,網絡讀寫監控不僅能快速定位故障,還可驅動架構優化與成本決策,成為保障業務穩定的“神經系統”。

5 proc圖

在性能測試場景中,獲取Linux服務器的/proc信息是監控系統實時狀態、分析性能瓶頸的關鍵手段。/proc作為虛擬文件系統,動態映射內核數據,提供進程、硬件及內核參數的實時視圖。其核心作用包括實時監控資源使用、定位性能瓶頸、動態調優系統行為。以下是具體解析:

一、/proc的核心特性與作用

  1. 動態性與實時性
    ? /proc文件內容由內核動態生成,不占用磁盤空間,讀取時實時反映系統狀態(如進程狀態、CPU負載、內存使用)。

    ? 示例:/proc/loadavg每秒更新系統負載,/proc/meminfo實時顯示內存占用。

  2. 進程級深度監控
    ? 每個進程在/proc下有獨立目錄(如/proc/[PID]),包含:

    ? cmdline:進程啟動命令及參數。

    ? status:進程狀態(運行/休眠)、內存占用(VmRSS)、線程數等。

    ? fd/:進程打開的文件描述符,用于排查文件泄漏(如ls -l /proc/1234/fd)。

    ? io:進程I/O統計(讀寫字節數),定位磁盤瓶頸。

  3. 系統級資源分析
    ? CPU:/proc/cpuinfo提供核心數、型號、頻率;/proc/stat記錄各狀態CPU時間(用戶態、內核態、空閑)。

    ? 內存:/proc/meminfo展示總內存、空閑內存、緩存(Buffers/Cached)、Swap使用(SwapCached)。

    ? 磁盤I/O:/proc/diskstats統計設備讀寫次數、延遲(await)、吞吐量。

    ? 網絡:/proc/net/dev顯示接口流量、丟包率;/proc/net/tcp分析TCP連接狀態。

二、性能測試中的具體應用場景

  1. 瓶頸定位
    ? CPU瓶頸:高/proc/stat中的%sy(系統態CPU)可能因頻繁系統調用;/proc/[PID]/status中線程數激增可能引發上下文切換過高。

    ? 內存泄漏:/proc/[PID]/smaps分析進程內存映射,定位未釋放的堆/共享庫。

    ? I/O延遲:/proc/diskstats中%util > 70%且await激增,表明磁盤過載。

  2. 壓力測試監控
    ? 負載模擬時:通過/proc/loadavg監控1/5/15分鐘負載,若持續超過CPU核心數,需擴容。

    ? 并發連接測試:/proc/sys/fs/file-nr跟蹤文件描述符使用量,避免“too many open files”錯誤。

總結

在性能測試中,/proc是Linux內核的實時診斷控制臺:
? 監控層面:提供進程級(資源占用)、系統級(CPU/內存/I/O)的全棧指標。

? 調優層面:通過/proc/sys動態優化內核行為,提升吞吐量與穩定性。

? 定位層面:結合工具(如awk、Prometheus)快速定位瓶頸,指導擴容或代碼優化。

通過合理利用/proc,性能測試可從“黑盒”轉為“白盒”,精準驅動系統優化。例如,某電商通過調整/proc/sys/net參數,將TCP重傳率從3%降至0.5%,延遲降低40%。

6 系統平均負載

Linux系統負載(Load Average)是衡量系統整體繁忙程度的核心指標,反映單位時間內等待處理的任務總量(包括正在使用CPU和等待I/O的進程)。其核心價值在于幫助管理員實時診斷性能瓶頸、預測資源瓶頸及優化系統穩定性。以下是詳細解析:

一、系統負載的定義與計算

  1. 基本概念
    ? 負載值 = 單位時間內處于 可運行狀態(等待CPU時間片) + 不可中斷狀態(如等待磁盤I/O響應)的進程平均數。

    ? 三個關鍵值:通過uptime或top命令顯示的三個數字(如 load average: 0.12, 0.24, 0.18),分別表示過去1分鐘、5分鐘、15分鐘的平均負載。

  2. 與CPU核心數的關系
    ? 負載 < CPU核心數:系統空閑(理想狀態)。
    ? 負載 = CPU核心數:CPU完全飽和(臨界點)。
    ? 負載 > CPU核心數:任務積壓,需排隊等待資源。
    例:4核CPU的負載長期>4,表明系統過載。

二、系統負載的核心用途

  1. 性能瓶頸診斷
    ? CPU瓶頸:高負載 + 高CPU使用率(us%+sy% >80%),提示計算資源不足。
    ? I/O瓶頸:高負載 + 低CPU使用率 + 高wa%(I/O等待),表明磁盤或網絡延遲是主因。
    ? 內存瓶頸:高負載 + 頻繁Swap交換(si/so >0),需優化內存分配。

  2. 系統健康度評估

? 短期波動:1分鐘負載突增(如>10),可能因突發任務或流量沖擊。
? 長期趨勢:15分鐘負載持續>0.7×CPU核心數(如4核系統>2.8),提示資源緊張需擴容。
3. 優化決策支持

? 進程級調優:通過top或htop定位高資源進程(如Java進程占90% CPU),優化代碼或限制并發。
? 資源配置:負載長期高位時,擴展CPU/內存或升級I/O設備(如HDD→SSD)。
? 任務調度:避免高峰時段執行備份等I/O密集型任務。

三、常見誤區與深度解析

負載 vs. CPU使用率
指標 系統負載(Load) CPU使用率(Utilization)
本質 任務隊列長度(CPU+I/O等待) CPU芯片忙碌時間占比
高值場景 I/O阻塞時(如數據庫寫盤) 計算密集型任務(如視頻編碼)
健康閾值 需結合CPU核心數(如4核系統負載<4) 持續>80%需優化
工具命令 uptime, cat /proc/loadavg top, mpstat -P ALL

典型矛盾:負載10但CPU空閑80%,表明I/O阻塞嚴重(非CPU問題)。

負載值的動態解讀

? 1分鐘負載 > 15分鐘負載:突發壓力,需排查瞬時任務(如定時腳本)。
? 15分鐘負載 > 1分鐘負載:持續過載,需長期優化資源。

四、實踐操作指南

  1. 查看負載
    uptime # 顯示1/5/15分鐘負載
    cat /proc/loadavg # 原始數據(含運行進程數)

  2. 關聯分析
    top # 綜合查看負載+CPU/內存
    vmstat 1 # 監控進程隊列(r列)和I/O等待(b列)
    iostat -dx # 磁盤I/O與負載關聯性

  3. 優化案例
    ? 場景:Nginx服務器負載=8(4核CPU),但CPU使用率僅40%。
    ? 分析:vmstat顯示b列(等待I/O進程數)>5,iostat顯示磁盤%util=90%。
    ? 措施:將磁盤升級為SSD,負載降至2.5。

總結

? 負載本質:系統任務隊列的“排隊長度”,涵蓋CPU及I/O等待。
? 核心作用:早期預警性能瓶頸(尤其I/O隱匿問題)、指導資源擴容與調優。
? 決策原則:負載 > CPU核心數 = 過載;長期負載 > 0.7×核心數 = 需干預。

通過負載監控,可將性能問題從“被動救火”轉為“主動防御”,例如某電商系統通過負載趨勢預測大促流量,提前擴容避免宕機。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91341.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91341.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用defineExpose暴露子組件的屬性和方法、頁面生命周期onLoad和onReady的使用

歡迎來到我的UniApp技術專欄&#xff01;&#x1f389; 在這里&#xff0c;我將與大家分享關于UniApp開發的實用技巧、最佳實踐和項目經驗。 專欄特色&#xff1a; &#x1f4f1; 跨平臺開發一站式解決方案 &#x1f680; 從入門到精通的完整學習路徑 &#x1f4a1; 實戰項目經…

新手必看!VSCodePyCharm 配置 OpenCV 超詳細教程(支持 Python 和 C++ 雙語言)

新手必看&#xff01;VSCode&PyCharm 配置 OpenCV 超詳細教程&#xff08;支持 Python 和 C 雙語言&#xff09; 適用對象&#xff1a;初學者&#xff0c;希望在 VSCode 與 PyCharm 兩款常用 IDE 中&#xff0c;學會配置并使用 OpenCV&#xff0c;分別實現 Python 與 C 環境…

PyTorch深度學習框架入門案例實戰

PyTorch深度學習框架詳解與實戰 1. PyTorch簡介與環境配置 1.1 安裝與導入 # 基礎導入 import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torch.utils.data import DataLoader, TensorDataset import numpy as np import…

Spring Boot - Spring Boot 集成 MyBatis 分頁實現 手寫 SQL 分頁

一、準備階段 1、依賴引入 pom.xml <properties>...<postgresql.verison>42.5.6</postgresql.verison><mybatis.version>3.0.1</mybatis.version> </properties><dependencies>...<!-- postgresql 驅動 --><dependency>…

李宏毅《生成式人工智能導論》 | 第9講 AI Agent

文章目錄大模型未來趨勢&#xff1a;以大型語言模型打造的AgentAI Agent運行的可能原理有記憶的ChatGPT大模型未來趨勢&#xff1a;以大型語言模型打造的Agent 人類需要做多步驟的復雜任務&#xff0c;AI可以做到這件事嗎&#xff1f; 如果可以我們將其稱為AI Agent&#xff…

OCR 與 AI 圖像識別:協同共生的智能雙引擎

OCR 擅長提取圖像中的文字信息&#xff0c;但面對復雜背景、扭曲角度的圖片時&#xff0c;容易受干擾&#xff1b;AI 圖像識別能解析圖像場景、物體形態&#xff0c;卻難以精準捕捉文字細節 —— 兩者結合才能釋放最大價值。比如在票據處理中&#xff0c;AI 圖像識別先定位票據…

C# 按照主題的訂閱 按照類型的訂閱

安裝TinyPubSub庫&#xff0c;按照 主題發布訂閱using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Form…

當執行shell時,出現未預期的符號 `$‘\r‘‘ 附近有語法錯誤

1.當執行shell時&#xff0c;出現未預期的符號 $‘\r’’ 附近有語法錯誤 解決&#xff1a; linux下解決&#xff1a; 方案一&#xff1a; Linux下打開shell文件&#xff0c;用vi/vim命令打開腳本文件&#xff0c;輸入“:set fileformatunix”&#xff0c;回車&#xff0c;保存…

合作共贏|華望系統科技受邀出席杭州市基礎軟件和工業軟件產業技術聯盟成立大會

大會現場&#xff08;圖源官方&#xff09;2025年7月11日&#xff0c;在杭州市經濟和信息化局&#xff08;杭州市數字經濟局&#xff09;的指導下&#xff0c;杭州市基礎軟件與工業軟件產業技術聯盟成立大會暨工業軟件生態共性云平臺發布儀式在西電杭州研究院圓滿舉行。會上&am…

7.17 滑動窗口

lc523.同余定理兩個注意點同余定理&#xff1a;余數相同的兩個數&#xff0c;做差可被整除。--前綴和hash存mod&#xff0c;不可以用set&#xff0c;因為要保證len大于等于2&#xff0c;所以要存idx映射&#xff01;&#xff01;還有對于全選和全不選的兩個邊界&#xff0c;下標…

算法與前端的可訪問性

引言 可訪問性&#xff08;Accessibility, a11y&#xff09;是現代 Web 開發的核心&#xff0c;確保所有用戶&#xff0c;包括殘障人士&#xff0c;都能無障礙地使用應用。算法在優化前端性能的同時&#xff0c;也能通過高效的數據處理和交互邏輯提升可訪問性體驗。例如&#x…

使用token調用Spring OAuth2 Resource Server接口錯誤 insufficient_scope

1、場景 最近照著《Spring Security實戰》學習&#xff0c;學到第18章&#xff0c;使用Keycloak作為授權服務器&#xff0c;使用 org.springframework.boot:spring-boot-starter-oauth2-resource-server 實現資源服務器&#xff0c;調用資源服務器的接口返回403&#xff0c;具…

4. 觀察者模式

目錄一、現實應用場景二、初步實現2.1 實現方案12.2 實現方案2三、觀察者模式3.1 應用場景3.2 詳解3.3 實現3.4 設計類圖四、實現五、更多一、現實應用場景 教師的手機號改變之后要通知給所有學生如果有一個學生沒有通知到位就會產生遺漏如何自動完成 二、初步實現 2.1 實現…

es 啟動中的一些記錄

完整修復流程 bash # 1. 創建用戶主目錄(如果需要) mkdir -p /home/es8 chown es8:es8 /home/es8# 2. 變更 Elasticsearch 目錄所有權 chown -R es8:es8 /data/es/elasticsearch-8.17.2/# 3. 調整目錄和文件權限 chmod -R 755 /data/es/elasticsearch-8.17.2/ chmod 644 /d…

區塊鏈之拜占庭容錯算法——Practical Byzantine Fault Tolerance(PBFT)

實用拜占庭容錯算法&#xff08;PBFT&#xff09;是由 Barbara Liskov 和 Miguel Castro 于 90 年代末提出的一種共識算法。原論文鏈接如下&#xff1a; http://pmg.csail.mit.edu/papers/osdi99.pdf pBFT 被設計為在異步&#xff08;響應請求的時間沒有上限&#xff09;系統…

從電子管到CPU

在線verilog轉電路圖 簡單門電路 https://logic.ly/demo/ 數學基礎 普通邏輯 與自然語言關系緊密, 亞里士多德三段論,??穆勒五法 , 語言, 語義,概念,定義,辯論, 詐騙 等, 是文科類的邏輯。 離散數學 不連續數學 數理邏輯 命題邏輯與謂詞邏輯, 與數學推理關系緊密, 它…

Javase-8.數組的練習

1.查找數組中指定元素(二分查找)以升序數組為例, 二分查找的思路是先取中間位置的元素, 然后使用待查找元素與數組中間元素進行比較&#xff1a; 如果相等&#xff0c;即找到了返回該元素在數組中的下標 如果小于&#xff0c;以類似方式到數組左半側查找 如果大于&#xff0c;以…

H3CNE綜合實驗之機器人

H3CNE綜合實驗之機器人 實驗拓撲圖實驗需求 1.按照圖示配置 IP 地址 2.SW1 和 SW2 之間的直連鏈路配置鏈路聚合 3.公司內部業務網段為 Vlan10 和 Vlan20;Vlan10 是市場部&#xff0c;Vlan20 是技術部&#xff0c;要求對 Vlan 進行命名以識別; ? PC8 屬于 Vlan10&#xff0c…

2025/7/15——java學習總結

Java IO、Stream、異常與 File 全體系總結&#xff1a;從基礎到進階的完整突破一、核心知識深耕&#xff1a;四大模塊的體系與底層邏輯&#xff08;一&#xff09;IO 流&#xff1a;數據傳輸的基礎通道體系架構與核心分類按流向&#xff1a;輸入流&#xff08;InputStream/Read…

【軌物方案】當補貼退潮,光伏電站如何回歸價值本質?

中國光伏產業正站在一個歷史性的拐點。過去&#xff0c;國家補貼的“黃金時代”催生了裝機量的爆發式增長&#xff0c;許多電站在建設初期將重心放在了快速并網&#xff0c;卻忽視了貫穿2-30年生命周期的運維規劃。如今&#xff0c;補貼浪潮逐漸退去&#xff0c;各大企業開始從…