日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

性能指標 | CPU飆高排查實戰

來源: 責編: 時間:2024-06-28 17:11:16 218觀看
導讀問題發現前段時間我們新上線了一個應用,由于流量一直不大,集群的每秒查詢率(QPS)大約只有 5。接口的響應時間大約在 30 毫秒左右。最近我們接入了新的業務,業務方提供的數據顯示,日常的 QPS 預計可以達到 2000,而在大促期間

問題發現

前段時間我們新上線了一個應用,由于流量一直不大,集群的每秒查詢率(QPS)大約只有 5。接口的響應時間大約在 30 毫秒左右。9ue28資訊網——每日最新資訊28at.com

最近我們接入了新的業務,業務方提供的數據顯示,日常的 QPS 預計可以達到 2000,而在大促期間峰值 QPS 可能會達到 1 萬。9ue28資訊網——每日最新資訊28at.com

為了評估系統的性能水平,我們進行了一次壓力測試。測試在預發布環境進行。在壓力測試過程中,我們觀察到當單臺服務器的 QPS 達到約 200 時,接口的響應時間沒有明顯變化,但是 CPU 利用率迅速上升,直到達到極限。9ue28資訊網——每日最新資訊28at.com

圖片圖片9ue28資訊網——每日最新資訊28at.com

壓力測試結束后,CPU 利用率立即下降。9ue28資訊網——每日最新資訊28at.com

隨后我們開始排查是什么原因導致了 CPU 的突然飆升。9ue28資訊網——每日最新資訊28at.com

排查與解決

在壓力測試期間,登錄到機器后,我們開始排查問題。9ue28資訊網——每日最新資訊28at.com

本案例的排查過程使用了阿里開源的 Arthas 工具。如果沒有 Arthas,也可以使用 JDK 自帶的命令進行排查。9ue28資訊網——每日最新資訊28at.com

在開始具體排查之前,可以先查看 CPU 的使用情況。最簡單的方法是使用top命令直接查看:9ue28資訊網——每日最新資訊28at.com

top - 10:32:38 up 11 days, 17:56,  0 users,  load average: 0.84, 0.33, 0.18Tasks:  23 total,   1 running,  21 sleeping,   0 stopped,   1 zombie%Cpu(s): 95.5 us,  2.2 sy,  0.0 ni, 76.3 id,  0.0 wa,  0.0 hi,  0.0 si,  6.1 stKiB Mem :  8388608 total,  4378768 free,  3605932 used,   403908 buff/cacheKiB Swap:        0 total,        0 free,        0 used.  4378768 avail Mem   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   3480 admin     20   0 7565624   2.9g   8976 S  241.2 35.8 649:07.23 java   1502 root      20   0  401768  40228   9084 S   1.0  0.5  39:21.65 ilogtail   181964 root      20   0 3756408 104392   8464 S   0.7  1.2   0:39.38 java   496 root      20   0 2344224  14108   4396 S   0.3  0.2  52:22.25 staragentd   1400 admin     20   0 2176952 229156   5940 S   0.3  2.7  31:13.13 java   235514 root      39  19 2204632  15704   6844 S   0.3  0.2  55:34.43 argusagent   236226 root      20   0   55836   9304   6888 S   0.3  0.1  12:01.91 systemd-journ

可以清楚的看到,進程 ID 為 3480 的 Java 進程占用了較高的 CPU,可以初步推斷是應用代碼執行過程中消耗了大量的 CPU 資源。接下來,我們需要進一步排查是哪個線程、哪段代碼導致了這種情況。9ue28資訊網——每日最新資訊28at.com

首先,我們需要下載 Arthas 工具:9ue28資訊網——每日最新資訊28at.com

curl -L https://arthas.aliyun.com/install.sh | sh

啟動:9ue28資訊網——每日最新資訊28at.com

./as.sh

使用 Arthas 命令 "thread -n 3 -i 1000"查看當前"最忙"(耗 CPU)的三個線程:9ue28資訊網——每日最新資訊28at.com

圖片圖片9ue28資訊網——每日最新資訊28at.com

通過上述堆棧信息可以看出,占用 CPU 資源的線程主要是在 JDBC 底層的 TCP 套接字讀取上阻塞。經過連續執行多次分析,發現很多線程都在這個地方卡住。9ue28資訊網——每日最新資訊28at.com

進一步分析調用鏈后發現,這個問題源自于我代碼中的數據庫 insert 操作,其中使用了 TDDL 來創建 sequence。在 sequence 的創建過程中,需要與數據庫進行交互。9ue28資訊網——每日最新資訊28at.com

根據對 TDDL 的了解,它每次從數據庫查詢 sequence 序列時,默認會獲取 1000 條,并在本地進行緩存,直到使用完這 1000 條序列之后才會再次從數據庫獲取下一個 1000 條序列。9ue28資訊網——每日最新資訊28at.com

考慮到我們的壓測 QPS 僅約為 300 左右,不應該導致如此頻繁的數據庫交互。然而,通過多次使用 Arthas 進行查看,發現大部分的 CPU 資源都耗費在這里。9ue28資訊網——每日最新資訊28at.com

因此,我們開始排查代碼問題。最終,發現了一個非常簡單的問題,即我們的 sequence 創建和使用存在著明顯的缺陷:9ue28資訊網——每日最新資訊28at.com

public Long insert(T dataObject) {    if (dataObject.getId() == null) {        Long id = next();        dataObject.setId(id);    }    if (sqlSession.insert(getNamespace() + ".insert", dataObject) > 0) {        return dataObject.getId();    } else {        return null;    }}public Sequence sequence() {    return SequenceBuilder.create()        .name(getTableName())        .sequenceDao(sequenceDao)        .build();}/** * 獲取下一個主鍵ID * * @return */protected Long next() {    try {        return sequence().nextValue();    } catch (SequenceException e) {        throw new RuntimeException(e);    }}

因此,我們每次執行 insert 語句時都重新構建了一個新的 sequence 對象,這導致本地緩存被清空。因此,每次都需要從數據庫重新獲取 1000 條 sequence,但實際上只使用了一條,下次又會重復這個過程。9ue28資訊網——每日最新資訊28at.com

為了解決這個問題,我們調整了代碼,在應用啟動時初始化了一個 Sequence 實例。這樣,在后續獲取 sequence 時,不會每次都與數據庫交互。而是首先檢查本地緩存,只有在本地緩存用盡時才會再次與數據庫交互,獲取新的 sequence。9ue28資訊網——每日最新資訊28at.com

public abstract class BaseMybatisDAO implements InitializingBean {        @Override        public void afterPropertiesSet() throws Exception {            sequence = SequenceBuilder.create().name(getTableName()).sequenceDao(sequenceDao).build();        }    }

通過實現 InitializingBean 接口,并重寫其中的 afterPropertiesSet()方法,在該方法中進行 Sequence 的初始化。9ue28資訊網——每日最新資訊28at.com

完成以上代碼修改后,提交并進行驗證。根據監控數據顯示,優化后數據庫的讀取響應時間(RT)明顯下降。9ue28資訊網——每日最新資訊28at.com

圖片圖片9ue28資訊網——每日最新資訊28at.com

sequence 的寫操作 QPS 也有明顯下降:9ue28資訊網——每日最新資訊28at.com

圖片圖片9ue28資訊網——每日最新資訊28at.com

于是我們開始了新的一輪壓測,但是發現 CPU 的使用率仍然很高,壓測的 QPS 還是無法達到預期。因此,我們決定重新使用 Arthas 工具查看線程的情況。9ue28資訊網——每日最新資訊28at.com

圖片圖片9ue28資訊網——每日最新資訊28at.com

發現了一個 CPU 消耗較高的線程堆棧,主要是因為我們在使用一個聯調工具時,該工具預發布狀態下默認開啟了 TDDL 的日志采集(盡管官方文檔中描述預發布狀態下默認不會開啟 TDDL 采集,但實際上確實會進行采集)。9ue28資訊網——每日最新資訊28at.com

在該工具打印日志時,會進行數據脫敏操作,脫敏框架使用了 Google 的 re2j 進行正則表達式匹配。9ue28資訊網——每日最新資訊28at.com

由于我的操作涉及到大量的 TDDL 操作,而默認情況下會采集大量 TDDL 日志并進行脫敏處理,這導致了較高的 CPU 消耗。9ue28資訊網——每日最新資訊28at.com

因此,通過在預發布環境中關閉對 TDDL 的日志采集,可以有效解決這個問題。9ue28資訊網——每日最新資訊28at.com

總結

這篇總結回顧了一次線上 CPU 飆高問題的排查過程,雖然問題最終解決起來并不復雜,但排查過程中卻有其獨特的教育意義。9ue28資訊網——每日最新資訊28at.com

之前經驗豐富的我按照慣例進行了排查,初始階段并未發現明顯問題,錯誤地將數據庫操作增加歸因于流量上升所致的正常情況。9ue28資訊網——每日最新資訊28at.com

通過多方查證(例如使用 arthas 查看序列獲取情況,以及通過數據庫查詢最新插入數據的主鍵 ID 等方法),最終確認問題出在 TDDL 的序列初始化機制上。9ue28資訊網——每日最新資訊28at.com

解決了這個問題后,本以為問題徹底解決,卻又遭遇到 DP 采集 TDDL 日志導致 CPU 飆高的情況,最終再次解決問題后系統性能有了顯著提升。9ue28資訊網——每日最新資訊28at.com

因此,這個經歷再次驗證了“事出反常必有妖”,排查問題確實需要有耐心和系統性。9ue28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-97280-0.html性能指標 | CPU飆高排查實戰

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 為什么會 Js 但是依然不會寫 Node?原因竟是這三點...

下一篇: 如何獲取請求的進度,并展示給用戶看?

標簽:
  • 熱門焦點
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發仿造稿定設計的圖片編輯器到現在,不知不覺已過去一年時間了,期間我經歷了裁員失業、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 從零到英雄:高并發與性能優化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構師或者程序員,你是否曾經為公司的系統在面對高并發和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • 東方甄選單飛:有些鳥注定是關不住的

    文/彭寬鴻編輯/羅卿東方甄選創始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • 8月見!小米MIX Fold 3獲得3C認證:支持67W快充

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • 網傳小米汽車開始篩選交付中心 建筑面積不低于3000平方米

    7月7日消息,近日有微博網友@長三角行健者爆料稱,據經銷商集團反饋,小米汽車目前已經開始了交付中心的篩選工作,要求候選場地至少有120個車位,建筑不能低
  • 華為Mate60標準版細節曝光:經典星環相機模組回歸

    這段時間以來,關于華為新旗艦的爆料日漸密集。據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲国产精品第一区二区| 国产一区二区三区在线播放免费观看| 免费成人高清| 欧美顶级艳妇交换群宴| 欧美日韩国产免费| 国产精品羞羞答答| 精品不卡一区二区三区| 亚洲毛片av| 欧美一区二区精品| 欧美xart系列在线观看| 欧美日韩在线一区二区三区| 国产欧美一区二区三区在线老狼| 亚洲高清免费| 亚洲欧美日韩成人高清在线一区| 久久精品成人| 欧美日韩成人网| 国产亚洲人成网站在线观看| 亚洲国产成人av好男人在线观看| 亚洲性视频网站| 久久资源在线| 国产精品久久久久av免费| 在线观看日韩av先锋影音电影院| 亚洲深夜激情| 亚洲免费精品| 精品91久久久久| 一区二区三区四区蜜桃| 欧美日韩亚洲一区二区三区四区| 欧美成人高清视频| 99精品欧美一区| 欧美激情一区在线| 久久一二三四| 亚洲一区欧美二区| 国产九九精品视频| 制服丝袜激情欧洲亚洲| 在线观看91精品国产入口| 欧美在线观看视频| 国产精品一区二区黑丝| 亚洲亚洲精品在线观看| 欧美激情四色| 亚洲精品资源| 国产精品欧美日韩| 欧美成人精品一区二区| 一区二区精品国产| 麻豆精品91| 99v久久综合狠狠综合久久| 亚洲欧洲一区二区三区| 国产毛片一区二区| 国产精品毛片在线| 欧美高清视频在线| 欧美激情精品久久久久久蜜臀| 欧美在线观看视频在线| 午夜精品一区二区三区电影天堂| 精品99一区二区三区| 欧美r片在线| 欧美一级网站| 亚洲美女色禁图| 在线不卡免费欧美| 国产精品久久久久久久久婷婷| 亚洲伊人网站| 夜夜嗨av一区二区三区四季av | 国产精品www.| 欧美日韩精品二区第二页| 国产精品久久久久久久久久久久久| 欧美色道久久88综合亚洲精品| 欧美一激情一区二区三区| 亚洲综合成人在线| 欧美日韩国产一区精品一区| 亚洲国产毛片完整版| 久久亚洲精品视频| 国产亚洲一区二区在线观看| 亚洲一区在线免费观看| 欧美视频不卡中文| 日韩一区二区精品在线观看| 欧美freesex8一10精品| 亚洲福利视频专区| 久久综合免费视频影院| 狠狠色丁香婷综合久久| 久久精品国产视频| 国内外成人在线视频| 久久精品一区二区三区不卡| 国产一区二区三区av电影 | 久久综合九色综合网站| 激情五月***国产精品| 久久久久国产一区二区| 国产一区二区精品久久| 久久精品国产v日韩v亚洲| 国产一区二区三区日韩| 久久午夜精品一区二区| 曰韩精品一区二区| 狂野欧美一区| 亚洲日本电影在线| 欧美日韩蜜桃| 亚洲永久在线| 国产精品中文在线| 久久激情五月婷婷| 伊人久久婷婷| 欧美高清在线精品一区| 99这里有精品| 国产精品久久二区二区| 午夜伦欧美伦电影理论片| 国产一区二区三区无遮挡| 久久综合久久综合九色| 亚洲精品一级| 国产精品久久久久毛片软件| 欧美亚洲视频| 在线电影一区| 欧美日本一区二区三区| 亚洲男女自偷自拍| 狠狠色伊人亚洲综合网站色| 免费看成人av| 日韩视频精品在线| 国产精品三区www17con| 久久精品亚洲乱码伦伦中文 | 久久大逼视频| 亚洲电影第1页| 欧美日韩国产欧| 先锋影音久久| 亚洲高清123| 欧美视频国产精品| 欧美中文字幕在线播放| 亚洲福利国产精品| 欧美视频中文字幕在线| 久久成人精品视频| 亚洲欧洲一区二区三区在线观看 | 亚洲欧美日韩国产中文在线| 狠狠v欧美v日韩v亚洲ⅴ| 欧美二区不卡| 亚洲欧美一区在线| 在线观看视频日韩| 欧美日韩在线播放一区| 久久黄色影院| 99人久久精品视频最新地址| 国产欧美三级| 欧美激情一区二区三区全黄| 午夜精品视频在线观看| 亚洲国产日韩欧美在线动漫| 国产精品激情av在线播放| 久久九九精品99国产精品| 亚洲精品视频在线| 国产日韩在线亚洲字幕中文| 免费在线成人| 欧美一区二区三区视频免费播放| 亚洲国产一区二区三区高清 | 国产亚洲午夜| 欧美三级视频在线播放| 久久噜噜亚洲综合| 亚洲天堂成人在线观看| 亚洲第一福利在线观看| 国产精品丝袜久久久久久app| 久久综合国产精品| 亚洲一本大道在线| 亚洲第一综合天堂另类专| 国产欧美婷婷中文| 欧美人与禽猛交乱配视频| 久久久久久久高潮| 亚洲主播在线观看| 亚洲美洲欧洲综合国产一区| 极品日韩av| 国产精品日日摸夜夜摸av| 欧美国产三级| 久久精品国产精品亚洲综合| 亚洲图片欧洲图片日韩av| 亚洲国产精品久久| 国产亚洲免费的视频看| 国产精品qvod| 欧美精品在线视频观看| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲欧美大片| 一区二区不卡在线视频 午夜欧美不卡在| 激情另类综合| 国产欧美一区二区三区沐欲| 欧美四级电影网站| 欧美黄色aaaa| 久久综合电影一区| 久久久久久久久久看片| 午夜精品久久久久久久久久久久| 99热这里只有精品8| 亚洲国产激情| 精品成人国产| 国语自产精品视频在线看8查询8| 国产精品一区二区在线观看| 国产精品高潮久久| 欧美性淫爽ww久久久久无| 欧美精品一区二区蜜臀亚洲| 免费久久99精品国产自在现线| 久久精品在线播放| 久久国产免费看| 性色av一区二区三区在线观看 | 亚洲高清不卡av| 精品1区2区| 国产主播一区二区三区四区| 国产欧美一区二区三区在线老狼| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩亚洲国产一区| 欧美日本中文| 欧美伦理在线观看| 欧美日本不卡高清| 欧美日本国产在线| 欧美久色视频| 欧美日韩亚洲国产一区| 国产精品99免费看 | 亚洲黄色尤物视频| 亚洲黄色尤物视频| 亚洲清纯自拍|