日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

線上機器CPU占用高分析實踐

京東云 ? 來源:京東零售 王江波 ? 作者:京東零售 王江波 ? 2025-02-18 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:京東零售 王江波

1. 線程運行狀態(tài)

1.1 total

wKgZO2e0K4iAUWSmAAPq2vdj1K0085.png

??

1.2 timed_waiting

wKgZPGe0K4mAXzE4AAMUL7ckbRY633.png

??

wKgZO2e0K4qAKhnsAAEfBtxpT6g700.png

??

通過上圖我們可以發(fā)現(xiàn)timed_waiting的topN線程都是查詢國補資質的。

1.3 waiting

wKgZPGe0K4uAEqx2AAIxDoYW2JQ568.png

??

wKgZO2e0K4uAEslDAALKeLlm70w870.png

??

通過上圖我們可以發(fā)現(xiàn)waiting的topN線程都是查詢國補活動的。

1.4 線程分析

下面我們分析上述兩種狀態(tài):

1. WAITING 狀態(tài)

?定義:當一個線程處于 WAITING 狀態(tài)時,它在等待另一個線程的特定操作(如通知或中斷),并且不會繼續(xù)執(zhí)行。

?觸發(fā)條件:線程進入 WAITING 狀態(tài)的常見情況包括:

調用 Object.wait() 方法:線程在等待某個對象的監(jiān)視器(鎖)被其他線程通知。

調用 Thread.join() 方法:等待另一個線程完成。

調用 LockSupport.park() 方法:線程被阻塞,直到它被其他線程喚醒。

?恢復:線程在 WAITING 狀態(tài)下將一直保持此狀態(tài),直到其他線程調用 notify() 或 notifyAll()(對于 Object.wait()),或者被中斷。

2. TIMED_WAITING 狀態(tài)

?定義:當一個線程處于 TIMED_WAITING 狀態(tài)時,它在等待某個條件的發(fā)生,但它會在指定的時間后自動返回。

?觸發(fā)條件:線程進入 TIMED_WAITING 狀態(tài)的常見情況包括:

調用 Thread.sleep(milliseconds):線程休眠指定的毫秒數(shù)。

調用 Object.wait(milliseconds):線程在等待某個對象的監(jiān)視器(鎖),并且在指定的時間內等待。

調用 Thread.join(milliseconds):等待另一個線程完成,但有時間限制。

調用 LockSupport.parkNanos() 或 LockSupport.parkUntil()。

?恢復:線程在 TIMED_WAITING 狀態(tài)下會在指定的時間結束后自動恢復,或者在其他線程調用 notify() 或 notifyAll() 時恢復。

| 狀態(tài)           | 描述                                     | 觸發(fā)條件                                    | 恢復方式                                   |
|----------------|------------------------------------------|---------------------------------------------|--------------------------------------------|
| **WAITING**    | 線程等待另一個線程的特定操作,不會繼續(xù)執(zhí)行 | `Object.wait()`, `Thread.join()`, `LockSupport.park()` | 其他線程調用 `notify()`/`notifyAll()` 或被中斷 |
| **TIMED_WAITING** | 線程等待某個條件的發(fā)生,但有時間限制   | `Thread.sleep(milliseconds)`, `Object.wait(milliseconds)`, `Thread.join(milliseconds)` | 超過指定時間后自動恢復,或其他線程調用 `notify()`/`notifyAll()` |

下面我們結合實際代碼情況分析:

wKgZPGe0K42ALX4tAAPnywM_5ZI317.png

??

上文中 queryActTp 為 getActivityInfo 執(zhí)行并發(fā)任務,其中包含兩個子任務、 queryQualityTp 為 getQualityInfo 執(zhí)行并發(fā)任務,其中五個子任務。同時將這倆任務放到queryActAndQualityTp中并行。

getActivityInfo所在的秒級監(jiān)控如下:

wKgZO2e0K46AE1-PAAIoNZXJJLE768.png

??

getQualityInfo所在的秒級監(jiān)控如下;

wKgZPGe0K4-AT78sAALfDAaj9hY787.png

??

上文中同樣的調用方式,但是出現(xiàn)了兩種線程狀態(tài),理論上應該都是TIMED_WAITING。針對queryActTp我們可以發(fā)現(xiàn)堆棧信息中也是LockSupport.park而不是LockSupport.parkNanos。具體原因有待進一步分析。

上述代碼中還有一個問題就是A線程池中又并行調用了B、C線程池,在大流量情況下,CPU頻繁切換也會造成一定的CPU壓力,我們改寫這塊邏輯用一個線程池實現(xiàn)活動和資質的并發(fā)查詢。鑒于改動較大,本次先不動。

2. 火焰圖分析

wKgZO2e0K5CADIzrAAFlIjl_MMk997.png

??

2.1 wait線程

wKgZPGe0K5KAbzQ4AAS-vXOvmLQ104.png

??

2.2 鎖性能

wKgZO2e0K5OAbT9fAABVTv8WRRg556.png

??

2.3 CPU采樣

wKgZPGe0K5SAEN51AAVJrQt6tI8976.png

??

2.3.1 getFatherActivity分析

wKgZO2e0K5WAJnlpAASFE89Jb-A955.png

??

Q1:調用場景:循環(huán)中調用getFatherActivity

Q2:查看配置數(shù)據,json格式化后50000字符,大對象的反序列化

Q3:使用new ArrayList() 創(chuàng)建新對象

Q4:分組后只用了對象中的第一個元素,這里用toMap更佳

優(yōu)化1:

wKgZPGe0K5aAKN8XAAJwzhk-DqE043.png

??

我們可以發(fā)現(xiàn)上文在循環(huán)中還是會存在多次的stream調用,繼而將toMap邏輯提到循環(huán)外,如下:

wKgZO2e0K5iAJn0PAASLwbZPUT8987.png

??

其他方法確實占用CPU較高,這里先不處理。

下文再優(yōu)化一項獲取并發(fā)線程執(zhí)行結果的工具類:

wKgZPGe0K5qAe7g2AAkqVb6pW3o510.png

??

1、 allOf異常后,取消所有線程的繼續(xù)執(zhí)行。這么做為了防止有些線程超時后仍在執(zhí)行,浪費部分CPU資源,線上發(fā)現(xiàn)確實存在較多的超時情況。
2、 這里的異常日志較多,根據異常類型進行區(qū)分,去掉沒用的堆棧日志。

并發(fā)線程中所有的等待統(tǒng)一都使用了上文的方法,前文中的queryActTp處于WAITING狀態(tài)可能也是執(zhí)行沒取消導致,修改部署后再觀察分析。同樣的調用方式 queryQualityTp 處于Timed_waiting狀態(tài)可能與一次父任務中子任務的執(zhí)行耗時有關,見上文監(jiān)控,活動和資質相差較大,具體原因有待進一步分析。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11339

    瀏覽量

    226021
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    共聚焦顯微技術在高分子科學中的應用與實踐

    研究高分子材料的微觀結構,傳統(tǒng)方法面臨一個永恒的困境:要看到內部,就得破壞樣品;要保持樣品完整,就只能觀察表面。如今已跨越學科邊界,成為高分子材料工業(yè)研發(fā)的重要工具。共聚焦顯微鏡憑借更高的檢測
    的頭像 發(fā)表于 04-02 18:16 ?121次閱讀
    共聚焦顯微技術在<b class='flag-5'>高分</b>子科學中的應用與<b class='flag-5'>實踐</b>

    基于Arm架構服務器釋放更高CPU利用率

    在大型云服務提供商的數(shù)據中心中,CPU 利用率長期偏低,造成了大量資源閑置。根據 CAST AI 的分析,超過 1,000 個 CPU 的大型集群平均占用率僅約 17%[1],不同云服
    的頭像 發(fā)表于 03-24 10:19 ?576次閱讀

    Linux性能分析實戰(zhàn):用trace揪出卡頓、高CPU的“真兇”

    做 Linux 開發(fā)或運維的你,是否常被這些問題困擾:服務突然卡頓卻找不到根源,CPU 占用率飆升但查不到 “罪魁禍首”,系統(tǒng)響應變慢卻摸不清瓶頸?其實,Linux 內核早已為我們準備了 “透視鏡”——trace 跟蹤技術,今天就手把手教你從生成 trace 文件到可視化
    的頭像 發(fā)表于 02-03 15:24 ?649次閱讀
    Linux性能<b class='flag-5'>分析</b>實戰(zhàn):用trace揪出卡頓、高<b class='flag-5'>CPU</b>的“真兇”

    機器視覺網卡的全面選型指南

    選擇適合的機器視覺網卡,不能只看“千兆”還是“萬兆”,更需要結合相機類型、傳輸距離、CPU資源占用以及工業(yè)環(huán)境來綜合考量,尤其在高分辨率、高幀率視覺應用日益普及的當下,網卡的穩(wěn)定性直接
    的頭像 發(fā)表于 01-08 16:35 ?440次閱讀
    <b class='flag-5'>機器</b>視覺網卡的全面選型指南

    DMA 實戰(zhàn)指南:零 CPU 占用玩轉高速數(shù)據傳輸

    做嵌入式開發(fā)時,大家是不是都有過這種崩潰場景:采集一個傳感器數(shù)據,本來以為只是簡單的ADC→內存,結果發(fā)現(xiàn)CPU忙得要死;想收點串口數(shù)據,CPU每次被中斷打斷,延遲累積到系統(tǒng)卡頓;數(shù)據傳輸量一上來
    的頭像 發(fā)表于 01-04 09:15 ?575次閱讀
    DMA 實戰(zhàn)指南:零 <b class='flag-5'>CPU</b> <b class='flag-5'>占用</b>玩轉高速數(shù)據傳輸

    低 ESR 突破 3mΩ:固態(tài)疊層高分子電容在車載 DC-DC 的應用實踐

    MLCC與液態(tài)電容的核心方案。 以下從技術特性、應用場景、性能優(yōu)化及行業(yè)實踐四個維度展開分析: ?? 一、低ESR特性:突破3mΩ的技術優(yōu)勢 能量損耗降低 MLPC采用導電高分子電解質(如PEDOT)與納米級導電層技術,ESR可
    的頭像 發(fā)表于 11-22 08:50 ?1329次閱讀
    低 ESR 突破 3mΩ:固態(tài)疊層<b class='flag-5'>高分</b>子電容在車載 DC-DC 的應用<b class='flag-5'>實踐</b>

    時鐘周期、機器周期、指令周期介紹

    執(zhí)行操作,以時鐘作為驅動完成每一步。因此時鐘周期決定了計算機的工作節(jié)奏,進而影響到計算機工作速度。 機器周期:通常用從內存中讀取一個指令字的最短時間來規(guī)定CPU周期(機器周期),也即CPU
    發(fā)表于 11-17 07:54

    在英偉達Thor平臺部署EtherCAT主站:實測高性能、低抖動與低占用

    基礎。通過部署acontisEC-Master主站協(xié)議棧,并結合實時內核與優(yōu)化驅動,我們在JetsonThor上實現(xiàn)了低抖動、低CPU占用的EtherCAT通信性
    的頭像 發(fā)表于 10-31 15:38 ?759次閱讀
    在英偉達Thor平臺部署EtherCAT主站:實測高性能、低抖動與低<b class='flag-5'>占用</b>

    在英偉達Thor平臺部署EtherCAT主站:實測高性能、低抖動與低占用

    基礎。通過部署acontisEC-Master主站協(xié)議棧,并結合實時內核與優(yōu)化驅動,我們在JetsonThor上實現(xiàn)了低抖動、低CPU占用的EtherCAT通信性
    的頭像 發(fā)表于 10-31 09:24 ?25次閱讀
    在英偉達Thor平臺部署EtherCAT主站:實測高性能、低抖動與低<b class='flag-5'>占用</b>

    在高性能 AI 平臺上部署 EtherCAT 主站:實測低抖動、低占用方案

    基礎。通過部署acontisEC-Master主站協(xié)議棧,并結合實時內核與優(yōu)化驅動,我們在JetsonThor上實現(xiàn)了低抖動、低CPU占用的EtherCAT通信性
    的頭像 發(fā)表于 10-30 15:35 ?699次閱讀
    在高性能 AI 平臺上部署 EtherCAT 主站:實測低抖動、低<b class='flag-5'>占用</b>方案

    RK3576機器人核心:三屏異顯+八路攝像頭,重塑機器人交互與感知

    瑞芯微RK3576 AIoT處理器處理器憑借其卓越的多屏異顯與8路攝像頭接入能力,為機器人領域帶來革新。米爾電子MYD-LR3576開發(fā)板實測數(shù)據顯示,在高負載下CPU占用僅34%,完美實現(xiàn)多路視覺
    發(fā)表于 10-29 16:41

    小批量SMT打樣上機費,是“亂收費”還是“必要成本”?

    一站式PCBA加工廠家今天為大家講講為什么小批量SMT打樣收取上機費?小批量SMT打樣中上機費的價值。小批量SMT打樣中收取上機費是必要的,其價值主要體現(xiàn)在設備調試與固定成本分攤、工藝調整與質量
    的頭像 發(fā)表于 10-21 09:08 ?694次閱讀

    集成16位超高分辨率磁編碼器的機器人舵機解決方案

    隨著機器人技術的快速發(fā)展,對運動控制精度的要求越來越高。傳統(tǒng)機器人舵機通常采用電位器或普通磁編碼器作為位置反饋元件,但這些方案在分辨率、抗干擾性和可靠性方面都存在一定局限。本文將詳細介紹一種集成16位超高分辨率磁編碼器的
    的頭像 發(fā)表于 08-29 16:21 ?1263次閱讀
    集成16位超<b class='flag-5'>高分</b>辨率磁編碼器的<b class='flag-5'>機器</b>人舵機解決方案

    單核CPU網關和雙核CPU網關有什么區(qū)別

    單核CPU網關與雙核CPU網關的核心區(qū)別在于處理能力、多任務效率、性能表現(xiàn)及適用場景,雙核CPU網關在多任務處理、復雜計算和響應速度上具有顯著優(yōu)勢,而單核CPU網關則更適合輕量級、低負
    的頭像 發(fā)表于 07-05 14:37 ?1354次閱讀

    熱重分析儀在高分子材料中的應用

    高分子材料以其輕質、高強度、耐腐蝕等特性廣泛應用于工業(yè)、醫(yī)療、電子等領域。然而,其熱穩(wěn)定性直接影響加工性能、使用壽命及安全性。熱重分析儀作為一種表征材料熱性能的關鍵儀器,能夠精準測定高分子材料在升溫
    的頭像 發(fā)表于 05-27 14:19 ?549次閱讀
    熱重<b class='flag-5'>分析</b>儀在<b class='flag-5'>高分</b>子材料中的應用
    门头沟区| 玉田县| 四平市| 岳池县| 河间市| 瓦房店市| 江西省| 漳州市| 清水河县| 宁国市| 宜黄县| 宜君县| 霸州市| 清流县| 揭阳市| 无锡市| 新兴县| 西乡县| 云林县| 柘城县| 托克逊县| 孝感市| 仁布县| 叶城县| 神池县| 宾阳县| 高陵县| 福泉市| 兴义市| 平远县| 梧州市| 无为县| 灵寿县| 乌鲁木齐市| 修水县| 蛟河市| 金沙县| 洪洞县| 崇左市| 左云县| 卢湾区|