精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

性能指標(biāo) | CPU飆高排查實(shí)戰(zhàn)

開(kāi)發(fā) 前端
這篇總結(jié)回顧了一次線上 CPU 飆高問(wèn)題的排查過(guò)程,雖然問(wèn)題最終解決起來(lái)并不復(fù)雜,但排查過(guò)程中卻有其獨(dú)特的教育意義。

問(wèn)題發(fā)現(xiàn)

前段時(shí)間我們新上線了一個(gè)應(yīng)用,由于流量一直不大,集群的每秒查詢率(QPS)大約只有 5。接口的響應(yīng)時(shí)間大約在 30 毫秒左右。

最近我們接入了新的業(yè)務(wù),業(yè)務(wù)方提供的數(shù)據(jù)顯示,日常的 QPS 預(yù)計(jì)可以達(dá)到 2000,而在大促期間峰值 QPS 可能會(huì)達(dá)到 1 萬(wàn)。

為了評(píng)估系統(tǒng)的性能水平,我們進(jìn)行了一次壓力測(cè)試。測(cè)試在預(yù)發(fā)布環(huán)境進(jìn)行。在壓力測(cè)試過(guò)程中,我們觀察到當(dāng)單臺(tái)服務(wù)器的 QPS 達(dá)到約 200 時(shí),接口的響應(yīng)時(shí)間沒(méi)有明顯變化,但是 CPU 利用率迅速上升,直到達(dá)到極限。

圖片圖片

壓力測(cè)試結(jié)束后,CPU 利用率立即下降。

隨后我們開(kāi)始排查是什么原因?qū)е铝?CPU 的突然飆升。

排查與解決

在壓力測(cè)試期間,登錄到機(jī)器后,我們開(kāi)始排查問(wèn)題。

本案例的排查過(guò)程使用了阿里開(kāi)源的 Arthas 工具。如果沒(méi)有 Arthas,也可以使用 JDK 自帶的命令進(jìn)行排查。

在開(kāi)始具體排查之前,可以先查看 CPU 的使用情況。最簡(jiǎn)單的方法是使用top命令直接查看:

top - 10:32:38 up 11 days, 17:56,  0 users,  load average: 0.84, 0.33, 0.18
Tasks:  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 st
KiB Mem :  8388608 total,  4378768 free,  3605932 used,   403908 buff/cache
KiB 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

可以清楚的看到,進(jìn)程 ID 為 3480 的 Java 進(jìn)程占用了較高的 CPU,可以初步推斷是應(yīng)用代碼執(zhí)行過(guò)程中消耗了大量的 CPU 資源。接下來(lái),我們需要進(jìn)一步排查是哪個(gè)線程、哪段代碼導(dǎo)致了這種情況。

首先,我們需要下載 Arthas 工具:

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

啟動(dòng):

./as.sh

使用 Arthas 命令 "thread -n 3 -i 1000"查看當(dāng)前"最忙"(耗 CPU)的三個(gè)線程:

圖片圖片

通過(guò)上述堆棧信息可以看出,占用 CPU 資源的線程主要是在 JDBC 底層的 TCP 套接字讀取上阻塞。經(jīng)過(guò)連續(xù)執(zhí)行多次分析,發(fā)現(xiàn)很多線程都在這個(gè)地方卡住。

進(jìn)一步分析調(diào)用鏈后發(fā)現(xiàn),這個(gè)問(wèn)題源自于我代碼中的數(shù)據(jù)庫(kù) insert 操作,其中使用了 TDDL 來(lái)創(chuàng)建 sequence。在 sequence 的創(chuàng)建過(guò)程中,需要與數(shù)據(jù)庫(kù)進(jìn)行交互。

根據(jù)對(duì) TDDL 的了解,它每次從數(shù)據(jù)庫(kù)查詢 sequence 序列時(shí),默認(rèn)會(huì)獲取 1000 條,并在本地進(jìn)行緩存,直到使用完這 1000 條序列之后才會(huì)再次從數(shù)據(jù)庫(kù)獲取下一個(gè) 1000 條序列。

考慮到我們的壓測(cè) QPS 僅約為 300 左右,不應(yīng)該導(dǎo)致如此頻繁的數(shù)據(jù)庫(kù)交互。然而,通過(guò)多次使用 Arthas 進(jìn)行查看,發(fā)現(xiàn)大部分的 CPU 資源都耗費(fèi)在這里。

因此,我們開(kāi)始排查代碼問(wèn)題。最終,發(fā)現(xiàn)了一個(gè)非常簡(jiǎn)單的問(wèn)題,即我們的 sequence 創(chuàng)建和使用存在著明顯的缺陷:

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();
}

/**
 * 獲取下一個(gè)主鍵ID
 *
 * @return
 */
protected Long next() {
    try {
        return sequence().nextValue();
    } catch (SequenceException e) {
        throw new RuntimeException(e);
    }
}

因此,我們每次執(zhí)行 insert 語(yǔ)句時(shí)都重新構(gòu)建了一個(gè)新的 sequence 對(duì)象,這導(dǎo)致本地緩存被清空。因此,每次都需要從數(shù)據(jù)庫(kù)重新獲取 1000 條 sequence,但實(shí)際上只使用了一條,下次又會(huì)重復(fù)這個(gè)過(guò)程。

為了解決這個(gè)問(wèn)題,我們調(diào)整了代碼,在應(yīng)用啟動(dòng)時(shí)初始化了一個(gè) Sequence 實(shí)例。這樣,在后續(xù)獲取 sequence 時(shí),不會(huì)每次都與數(shù)據(jù)庫(kù)交互。而是首先檢查本地緩存,只有在本地緩存用盡時(shí)才會(huì)再次與數(shù)據(jù)庫(kù)交互,獲取新的 sequence。

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

通過(guò)實(shí)現(xiàn) InitializingBean 接口,并重寫(xiě)其中的 afterPropertiesSet()方法,在該方法中進(jìn)行 Sequence 的初始化。

完成以上代碼修改后,提交并進(jìn)行驗(yàn)證。根據(jù)監(jiān)控?cái)?shù)據(jù)顯示,優(yōu)化后數(shù)據(jù)庫(kù)的讀取響應(yīng)時(shí)間(RT)明顯下降。

圖片圖片

sequence 的寫(xiě)操作 QPS 也有明顯下降:

圖片圖片

于是我們開(kāi)始了新的一輪壓測(cè),但是發(fā)現(xiàn) CPU 的使用率仍然很高,壓測(cè)的 QPS 還是無(wú)法達(dá)到預(yù)期。因此,我們決定重新使用 Arthas 工具查看線程的情況。

圖片圖片

發(fā)現(xiàn)了一個(gè) CPU 消耗較高的線程堆棧,主要是因?yàn)槲覀冊(cè)谑褂靡粋€(gè)聯(lián)調(diào)工具時(shí),該工具預(yù)發(fā)布狀態(tài)下默認(rèn)開(kāi)啟了 TDDL 的日志采集(盡管官方文檔中描述預(yù)發(fā)布狀態(tài)下默認(rèn)不會(huì)開(kāi)啟 TDDL 采集,但實(shí)際上確實(shí)會(huì)進(jìn)行采集)。

在該工具打印日志時(shí),會(huì)進(jìn)行數(shù)據(jù)脫敏操作,脫敏框架使用了 Google 的 re2j 進(jìn)行正則表達(dá)式匹配。

由于我的操作涉及到大量的 TDDL 操作,而默認(rèn)情況下會(huì)采集大量 TDDL 日志并進(jìn)行脫敏處理,這導(dǎo)致了較高的 CPU 消耗。

因此,通過(guò)在預(yù)發(fā)布環(huán)境中關(guān)閉對(duì) TDDL 的日志采集,可以有效解決這個(gè)問(wèn)題。

總結(jié)

這篇總結(jié)回顧了一次線上 CPU 飆高問(wèn)題的排查過(guò)程,雖然問(wèn)題最終解決起來(lái)并不復(fù)雜,但排查過(guò)程中卻有其獨(dú)特的教育意義。

之前經(jīng)驗(yàn)豐富的我按照慣例進(jìn)行了排查,初始階段并未發(fā)現(xiàn)明顯問(wèn)題,錯(cuò)誤地將數(shù)據(jù)庫(kù)操作增加歸因于流量上升所致的正常情況。

通過(guò)多方查證(例如使用 arthas 查看序列獲取情況,以及通過(guò)數(shù)據(jù)庫(kù)查詢最新插入數(shù)據(jù)的主鍵 ID 等方法),最終確認(rèn)問(wèn)題出在 TDDL 的序列初始化機(jī)制上。

解決了這個(gè)問(wèn)題后,本以為問(wèn)題徹底解決,卻又遭遇到 DP 采集 TDDL 日志導(dǎo)致 CPU 飆高的情況,最終再次解決問(wèn)題后系統(tǒng)性能有了顯著提升。

因此,這個(gè)經(jīng)歷再次驗(yàn)證了“事出反常必有妖”,排查問(wèn)題確實(shí)需要有耐心和系統(tǒng)性。

責(zé)任編輯:武曉燕 來(lái)源: 碼上遇見(jiàn)你
相關(guān)推薦

2020-09-29 07:59:22

CPU系統(tǒng)性能

2023-12-26 11:39:50

CPU系統(tǒng)進(jìn)程

2019-12-03 10:16:45

服務(wù)器負(fù)載系統(tǒng)

2022-05-02 08:56:04

前端性能指標(biāo)

2010-09-08 11:38:27

2013-06-17 10:19:30

交換機(jī)性能交換機(jī)參數(shù)交換機(jī)

2023-11-20 09:48:13

Linux性能指標(biāo)命令

2024-09-20 08:32:21

2011-05-04 13:53:08

jQuery

2018-06-08 15:12:00

服務(wù)器性能指標(biāo)

2024-06-26 09:29:53

2011-07-28 14:58:49

HP ProLiant服務(wù)器

2023-12-29 15:30:41

內(nèi)存存儲(chǔ)

2023-11-25 20:16:22

前端

2023-12-17 14:49:20

前端首屏?xí)r間

2011-06-07 14:16:38

雙絞線

2017-02-22 11:51:11

FortiGate企業(yè)級(jí)防火墻NGFW

2009-12-11 15:17:35

2018-01-04 09:23:21

WEB服務(wù)器性能

2020-10-19 08:53:08

Redis性能指標(biāo)監(jiān)控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲在线播放电影| 奇门遁甲1982国语版免费观看高清| 亚洲欧美手机在线| 在线观看免费视频你懂的| a亚洲天堂av| 国产精品日韩在线播放| 青青草原国产视频| 亚洲人和日本人hd| 欧美一区二区三区四区视频| 毛片在线播放视频| 日韩欧美小视频| 国产精品白丝jk黑袜喷水| 91成人在线观看国产| 免费在线观看黄色小视频| 波多野结衣一区二区三区免费视频| 色综合天天综合在线视频| 秋霞在线一区二区| 久蕉在线视频| 成人精品视频网站| 国产日韩在线免费| 中日韩黄色大片| 一区二区三区在线| 亚洲性日韩精品一区二区| 一二三区视频在线观看| 高清av一区二区三区| 亚洲va欧美va人人爽| 最新欧美日韩亚洲| 久久电影中文字幕| 97精品久久久久中文字幕| 亚洲在线免费视频| 中文字幕欧美在线观看| 性欧美长视频| 欧美极品少妇xxxxⅹ免费视频| 国产美女网站视频| sdde在线播放一区二区| 久久久精品视频网站| 在线观看a视频| 99re在线精品| 国产91aaa| 一区二区精品视频在线观看| 久久综合激情| 69av在线视频| 日本特黄一级片| 欧美激情一级片一区二区| 深夜福利91大全| 国产制服丝袜在线| 国产精品玖玖玖在线资源| 日韩一卡二卡三卡四卡| 亚洲精品在线视频播放| 电影亚洲一区| 欧美日韩国产在线观看| 黑森林精品导航| 亚洲四虎影院| 欧美综合视频在线观看| 久久久国产欧美| 韩国成人在线| 欧美日韩一二三| 自拍偷拍21p| 欧美a一级片| 欧美日韩精品系列| 日本不卡一区在线| 亚洲精品777| 日韩视频中午一区| 国产调教打屁股xxxx网站| 一区二区网站| 日韩av在线网址| 日韩乱码人妻无码中文字幕久久 | 国产精品入口尤物| 一级特黄色大片| 国产酒店精品激情| 国产精品日韩一区二区| 日韩一级片免费在线观看| 97久久超碰国产精品| 欧美18视频| aaa日本高清在线播放免费观看| 国产精品乱码一区二区三区软件| 亚洲午夜精品一区二区三区| 亚洲第一图区| 午夜精品福利在线| 99草草国产熟女视频在线| 国产精品久久久久久久久久齐齐 | 国产精品美女久久久久av爽李琼| 亚州欧美一区三区三区在线| 国产三级在线播放| 午夜精品久久久久久久| 欧美伦理视频在线观看| 国产精品毛片无码| 亚洲国产精品成人精品| 亚洲第一综合网| 中文字幕一区二区三区乱码图片| 国语自产偷拍精品视频偷 | 欧美三级视频在线| 苍井空张开腿实干12次| 外国成人在线视频| 日韩在线观看免费av| 免费一级特黄特色大片| 日韩**一区毛片| 99re在线观看| 国产69精品久久app免费版| 一区二区免费在线| 波多野结衣天堂| 综合成人在线| 视频在线一区二区| 日韩熟女精品一区二区三区| 久久 天天综合| 蜜桃传媒视频麻豆第一区免费观看| 生活片a∨在线观看| 亚洲成人自拍偷拍| www.国产视频.com| 亚洲自拍都市欧美小说| 久久久精品免费| 少妇久久久久久久| 成人高清av在线| 午夜在线视频免费观看| 亚洲天堂资源| 精品国产1区二区| 婷婷伊人五月天| 美女mm1313爽爽久久久蜜臀| 久久久福利视频| 最新国产在线拍揄自揄视频| 欧美私人免费视频| 日本少妇毛茸茸| 欧美精品大片| 成人在线激情视频| yourporn在线观看视频| 黑人巨大精品欧美一区二区一视频| 日本特黄在线观看| 欧美r级电影| 国产成人亚洲综合91精品| 天天综合网天天综合| 一区二区理论电影在线观看| 杨幂一区二区国产精品| 国产精品国产一区| 国产精品十八以下禁看| 国产三级电影在线观看| 日韩欧美极品在线观看| 先锋资源av在线| 伊人蜜桃色噜噜激情综合| 久久精品电影网站| www成人在线| 国产91精品欧美| 亚洲一区二区免费视频软件合集| 欧美极品videos大乳护士| 欧美mv日韩mv亚洲| 国产精品aaaa| 性生活三级视频| 玉足女爽爽91| 无码人妻一区二区三区在线视频| 99久久夜色精品国产亚洲狼| 国产日韩av在线播放| 日本在线视频站| 欧美人xxxx| 日本精品在线免费观看| 激情都市一区二区| 在线国产精品网| 91视频成人| 不卡毛片在线看| 亚洲精品国产精| 无码av免费一区二区三区试看 | 国产精品一区不卡| 日本三级中文字幕在线观看| 午夜久久av| 97欧美精品一区二区三区| 香蕉视频免费在线看| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区av| 久久bbxx| 欧美色视频在线观看| 日本免费www| 激情综合一区二区三区| a级网站在线观看| 免费观看亚洲天堂| 国语自产精品视频在线看抢先版图片| 天天摸夜夜添狠狠添婷婷| 色乱码一区二区三区88| 在线观看天堂av| 成人性生交大片免费| 日韩av资源在线| 久久人体视频| 国产精品swag| 欧美成人app| 色综合久久88| 久久伊伊香蕉| 欧美一区二区视频在线观看| 成人精品在线看| 成人欧美一区二区三区在线播放| 日本久久久久久久久久| 日韩av中文在线观看| avove在线观看| 日本精品影院| 亚洲va久久久噜噜噜| 国产精品原创| 久久精品在线视频| 色呦呦中文字幕| 欧美挠脚心视频网站| 久久精品免费av| 国产精品人成在线观看免费| 污污免费在线观看| 美腿丝袜一区二区三区| 丁香六月激情婷婷| 色喇叭免费久久综合网| 国产一区二区自拍| 亚洲在线资源| 国产成人亚洲综合91精品| 污片在线免费观看| 色999日韩欧美国产| 午夜福利理论片在线观看| 91精品国产综合久久久久| 亚洲成熟少妇视频在线观看| 亚洲精品乱码久久久久久| 亚洲一二三四视频| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 午夜视频在线观看一区二区 | 91久久久在线| 国产精品伦理| 国产精品久久久久永久免费观看| 国产在线精品一区二区三区| 粉嫩av一区二区三区四区五区| 欧美激情视频网址| 爱久久·www| 日韩av中文字幕在线| 国产三级漂亮女教师| 91国模大尺度私拍在线视频 | 精品美女久久久久久免费| 中文字幕电影av| 中文字幕中文字幕一区二区| 欧美多人猛交狂配| av中文一区二区三区| 日本美女视频网站| 国产a精品视频| 91网址在线观看精品| 免费成人美女在线观看| 一级特黄性色生活片| 亚洲一区二区三区高清| 91好吊色国产欧美日韩在线| 伊人久久久大香线蕉综合直播| 成人手机在线播放| 性xxxx欧美老肥妇牲乱| 在线视频不卡一区二区| 久久免费av| 在线视频福利一区| 99久久夜色精品国产亚洲96| 在线国产精品网| 仙踪林久久久久久久999| 中文字幕在线观看一区二区三区| 久久激情电影| 一本色道久久综合亚洲二区三区| 欧美电影一区| 一本一生久久a久久精品综合蜜| 99久久久国产精品美女| 精品91一区二区三区| 欧美韩日精品| 日韩欧美不卡在线| 国产精品主播| 热久久精品免费视频| 麻豆91精品视频| 999久久久精品视频| 精品午夜久久福利影院| 成人高清在线观看视频| 国产成人在线视频网站| 中国xxxx性xxxx产国| 99精品一区二区| 亚洲色成人网站www永久四虎| 国产精品污www在线观看| 北条麻妃在线观看视频| 一区二区三区**美女毛片| 成人免费区一区二区三区| 在线观看91视频| 国产免费视频一区二区三区| 精品日韩一区二区三区免费视频| 天堂中文字幕在线| 国产一区二区黄| а√天堂8资源在线官网| 久久久免费av| 四虎4545www精品视频| 51国偷自产一区二区三区的来源 | 免费观看一级欧美片| 国产欧美日韩精品在线观看| 一区中文字幕| 欧美一级二级三级九九九| 999国产精品| 激情五月宗合网| 久久精品国产99久久6| 中文字幕一区二区三区乱码不卡| 国产喂奶挤奶一区二区三区| 五月婷婷一区二区| 色婷婷久久久综合中文字幕| 国产又黄又粗又硬| 亚洲高清一二三区| 永久免费在线观看视频| 久久久久久久97| 成人黄色在线| 精品一区在线播放| 久久久五月天| 日本黄网站免费| 国产成人免费视频一区| 欧美日韩国产黄色| 亚洲高清久久久| 97精品人妻一区二区三区香蕉| 亚洲成色999久久网站| 日本在线人成| 国产成人精品电影| 精品网站aaa| 超碰97免费观看| 天使萌一区二区三区免费观看| 麻豆精品国产传媒| 国产精品久久精品日日| 日韩少妇裸体做爰视频| 欧美一级片免费看| 一级毛片视频在线观看| 国产91九色视频| 理论片一区二区在线| 日韩精品一区二区三区电影| 日本aⅴ亚洲精品中文乱码| 国产 中文 字幕 日韩 在线| 亚洲欧美激情小说另类| 中国黄色一级视频| 亚洲欧洲日韩国产| а√在线中文在线新版| 成人9ⅰ免费影视网站| 国产国产精品| 日韩一区二区三区不卡视频| 久久综合久久综合久久综合| 日韩三级一区二区三区| 精品久久久久久久久久久久久久久久久 | 免费日韩一级片| 精品久久久久久久久久久院品网| 在线中文字幕视频观看| 国产在线不卡精品| 久久国产精品成人免费观看的软件| 日本女优爱爱视频| 久久这里只有精品6| 日韩精品1区2区| 日韩电影大全免费观看2023年上| av在线资源| 黑人巨大精品欧美一区二区小视频 | 亚洲视频综合网| 欧美国产大片| 欧美国产综合视频| 久久久www| 国产高潮呻吟久久| 91久久人澡人人添人人爽欧美| 久久精品国产亚洲a∨麻豆| 热99精品只有里视频精品| 青青草久久爱| 99福利在线观看| 欧美国产成人精品| 18国产免费视频| 日韩亚洲综合在线| 国产精品日韩精品在线播放| 在线观看污视频| 懂色av中文一区二区三区 | 在线播放亚洲| 亚洲av成人片色在线观看高潮 | 久久免费福利视频| 久久aimee| 无码人妻丰满熟妇区毛片| 日本一区二区三区dvd视频在线| 在线免费a视频| 不卡伊人av在线播放| 国产精品xxxav免费视频| 黄网站欧美内射| 久久精品视频网| 888奇米影视| 欧美人在线视频| 欧美影院天天5g天天爽| 免费看国产黄色片| 亚洲丝袜制服诱惑| 亚洲欧美黄色片| 日韩av免费看| 亚洲精品2区| 亚洲一区二区在线免费| 欧洲视频一区二区| 免费在线观看黄色网| 国产精品二区三区四区| 免费国产自线拍一欧美视频| 成人免费视频入口| 精品日韩在线观看| 久久夜夜操妹子| 午夜啪啪福利视频| 本田岬高潮一区二区三区| 日韩熟女一区二区| 久久99精品久久久久久青青91 | 尤物九九久久国产精品的特点 | 国产亚洲成人av| 亚洲欧美国产精品专区久久| 伊人亚洲精品| 国产a级一级片| 亚洲欧洲三级电影| 色窝窝无码一区二区三区成人网站| 国产精品美女在线观看| 精品福利av| а天堂中文在线资源| 日韩av一卡二卡| 国产精品高清一区二区| 麻豆av免费在线| 亚洲福利视频一区二区| 久久久久久久久免费视频| 蜜桃av噜噜一区二区三| 国产成人a级片|