成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

mysql QPS 過(guò)高問(wèn)題處理

IT那活兒 / 3048人閱讀
mysql QPS 過(guò)高問(wèn)題處理
概述


在做db基準(zhǔn)測(cè)試的時(shí)候,qps,tps是衡量數(shù)據(jù)庫(kù)性能的關(guān)鍵指標(biāo)。QPS(Queryper second)每秒查詢量,TPS(Transactionper second)每秒事務(wù)量。


  • QPS:Queries / Seconds

Queries 是系統(tǒng)狀態(tài)值--總查詢次數(shù)


  • TPS:(Com_commit + Com_rollback) / Seconds

mysql中沒(méi)有直接的事務(wù)計(jì)數(shù)器,需要通過(guò)事務(wù)提交數(shù)和事務(wù)回滾數(shù)來(lái)計(jì)算。這是Mysql的兩個(gè)重要性能指標(biāo),需要經(jīng)常查看,和Mysql基準(zhǔn)測(cè)試的結(jié)果對(duì)比,如果值過(guò)高,就要盡快處理了。


異常現(xiàn)象


生產(chǎn)一MySQL數(shù)據(jù)庫(kù)日常平均QPS為2000左右,峰值3500,但業(yè)務(wù)新需求上線后,其QPS竟高達(dá)2.2萬(wàn),是以前平均值的11倍,此種情況過(guò)于異常。詢問(wèn)業(yè)務(wù)側(cè)是否上線大業(yè)務(wù)處理場(chǎng)景,業(yè)務(wù)側(cè)反饋無(wú),業(yè)務(wù)系統(tǒng)和以前幾乎一樣。




異常分析


既然業(yè)務(wù)側(cè)不能提供有用的信息,那只能從數(shù)據(jù)庫(kù)側(cè)著手分析了。先從數(shù)據(jù)庫(kù)監(jiān)控平臺(tái)查看:


1、近1小時(shí)qps曲線

近一小時(shí)內(nèi),數(shù)據(jù)庫(kù)QPS都在2.2萬(wàn)以上


2、近1小時(shí)數(shù)據(jù)庫(kù)各類(lèi)操作曲線

從圖上可以看出,每秒對(duì)數(shù)據(jù)庫(kù)的set操作高達(dá)19547次,在QPS中占比高達(dá)99%。


3、分析general log

從監(jiān)控平臺(tái)僅能看到set操作占比最高,但卻無(wú)法知道具體是什么set操作,基于此種情況,只好打開(kāi)數(shù)據(jù)庫(kù)的generallog,分析上圖中set操作具體是什么。


打開(kāi)數(shù)據(jù)庫(kù)的generallog,收集了7分鐘的信息,并進(jìn)行分析,分析結(jié)果如下:


  • “SETautocommit=0”操作,7分鐘內(nèi)執(zhí)行2143322次,每秒5103次


  • “SETautocommit=1”操作,7分鐘內(nèi)執(zhí)行2143331次,每秒次5103


  • “set session transaction readwrite”操作,7分鐘內(nèi)執(zhí)行1696531次,每秒4039次


  • “set session transaction readonly”操作,7分鐘內(nèi)執(zhí)行1696530次,每秒4039次


以上4種操作每秒執(zhí)行次數(shù)加起來(lái)就和數(shù)據(jù)庫(kù)的QPS差不多了,因些可以肯定就是這4種SET操作過(guò)于頻繁執(zhí)行,才引起數(shù)據(jù)庫(kù)的QPS過(guò)于異常。


4、解決方案

如果說(shuō)以上4種set操作是為了對(duì)事務(wù)進(jìn)行有效控制,按一個(gè)事務(wù)內(nèi)包含一個(gè)SQL語(yǔ)句1:1的比例分配,那也應(yīng)該有相應(yīng)的select、update、delete、insert操作次數(shù),但從實(shí)際的情況來(lái)看,每秒僅有291次insert、2次select操作,明顯與事務(wù)控制操作次數(shù)不符。

引起這種現(xiàn)象的僅有業(yè)務(wù)系統(tǒng)代碼,我懷疑業(yè)務(wù)代碼,否存在以下情況:


  • 運(yùn)行大量空事物

  • 引用的架構(gòu)中隱藏對(duì)事務(wù)的操作,但該操作不合理

把該現(xiàn)象及分析結(jié)果告之業(yè)務(wù)側(cè),讓其查看業(yè)務(wù)代碼,最終業(yè)務(wù)側(cè)反饋,他們使用的一個(gè)架構(gòu)中對(duì)事務(wù)的處理存在bug,并在下次業(yè)務(wù)發(fā)布時(shí)修復(fù)該bug。修復(fù)該bug的業(yè)務(wù)版本上線后,在數(shù)據(jù)庫(kù)側(cè)持續(xù)觀察兩天,再無(wú)出現(xiàn)該問(wèn)題,即該問(wèn)題也圓滿解決。


總結(jié)


每秒數(shù)據(jù)庫(kù)執(zhí)行的查詢量即為QPS,它是衡量MySQL數(shù)據(jù)庫(kù)性能的一個(gè)主要指標(biāo),但此查詢量不僅包括select、DML語(yǔ)句,還包括其它如set類(lèi)的操作,如果set類(lèi)操作占比比較大的話,它很可能會(huì)影響到數(shù)據(jù)庫(kù)的性能;因此,我們?cè)贛ySQL的日常運(yùn)維過(guò)程中,還是要常常分析下QPS中各類(lèi)操作的占比情況,把過(guò)于異常的操作占比情況分析出來(lái),防范于未然。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130155.html

相關(guān)文章

  • Redis 分布式鎖--PHP

    摘要:分布式鎖的作用在單機(jī)環(huán)境下,有個(gè)秒殺商品的活動(dòng),在短時(shí)間內(nèi),服務(wù)器壓力和流量會(huì)陡然上升。分布式集群業(yè)務(wù)業(yè)務(wù)場(chǎng)景下,每臺(tái)服務(wù)器是獨(dú)立存在的。這里就用到了分布式鎖這里簡(jiǎn)單介紹一下,以的事務(wù)機(jī)制來(lái)延生。 Redis 分布式鎖的作用 在單機(jī)環(huán)境下,有個(gè)秒殺商品的活動(dòng),在短時(shí)間內(nèi),服務(wù)器壓力和流量會(huì)陡然上升。這個(gè)就會(huì)存在并發(fā)的問(wèn)題。想要解決并發(fā)需要解決以下問(wèn)題 1、提高系統(tǒng)吞吐率也就是qps 每...

    canger 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<