下面講講關(guān)于MySQL主從延遲的原因,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL主從延遲的原因這篇文章你一定會(huì)有所受益。
專業(yè)從事企業(yè)網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)服務(wù),包括網(wǎng)站建設(shè)、空間域名、網(wǎng)站空間、企業(yè)郵箱、微信公眾號(hào)開(kāi)發(fā)、微信支付寶微信小程序定制開(kāi)發(fā)、重慶APP軟件開(kāi)發(fā)、軟件開(kāi)發(fā)、等服務(wù)。公司始終通過(guò)不懈的努力和以更高的目標(biāo)來(lái)要求自己,在不斷完善自身管理模式和提高技術(shù)研發(fā)能力的同時(shí),大力倡導(dǎo)推行新經(jīng)濟(jì)品牌戰(zhàn)略,促進(jìn)互聯(lián)網(wǎng)事業(yè)的發(fā)展。
Step1 : iostat 查看IO情況
iostat -x 1 查看IO情況,哪個(gè)磁盤(pán)的IO負(fù)載較高,接下來(lái)我們就來(lái)定位具體的負(fù)載來(lái)源
Step2: iotop定位負(fù)載來(lái)源進(jìn)程
iotop的本質(zhì)是一個(gè)python腳本,從proc中獲取thread的IO信息,進(jìn)行匯總。
從下圖可以看出大部分的IO來(lái)源都來(lái)自于mysqld進(jìn)程。因此可以確定dfa的負(fù)載來(lái)源是數(shù)據(jù)庫(kù)
Step3 pt-ioprofile定位負(fù)載來(lái)源文件
pt-ioprofile的原理是對(duì)某個(gè)pid附加一個(gè)strace進(jìn)程進(jìn)行IO分析。
以下是摘自官網(wǎng)的一段警示:
However, it works by attaching strace to the process using ptrace(), which will make it run very slowly until strace detaches. In addition to freezing the server, there is also some risk of the process crashing or performing badly after strace detaches from it, or indeed of strace not detaching cleanly and leaving the process in a sleeping state. As a result, this should be considered an intrusive tool, and should not be used on production servers unless you are comfortable with that.
通過(guò)ps aux|grep mysqld 找到 mysqld進(jìn)程對(duì)應(yīng)的進(jìn)程號(hào),通過(guò)pt-ioprofile查看哪個(gè)文件的IO占用時(shí)間最多。
默認(rèn)參數(shù)下該工具展示的是IO占用的時(shí)間。
pt-ioprofile --profile-pid 3082
對(duì)于定位問(wèn)題更有用的是通過(guò)IO的吞吐量來(lái)進(jìn)行定位。使用參數(shù) --cell=sizes,該參數(shù)將結(jié)果已 B/s 的方式展示出來(lái)
pt-ioprofile --profile-pid 3082 --cell
第一種:表未建主鍵和二級(jí)索引(排查最容易忽略的情況)
如下圖,當(dāng)sql_thread在重放relay log時(shí)會(huì)根據(jù)表是否有主鍵(注:這就是為什么建表必須要有主鍵原因之一)和二級(jí)索引來(lái)判斷是否全表掃描
在MySQL5.6中提供了一個(gè)新的參數(shù):slave_rows_search_algorithms, 可以部分解決無(wú)主鍵表導(dǎo)致的復(fù)制延遲問(wèn)題,其基本思路是對(duì)于在一個(gè)ROWS EVENT中的所有前鏡像收集起來(lái),然后在一次掃描全表時(shí),判斷HASH中的每一條記錄進(jìn)行更新;
slave_rows_search_algorithms由三個(gè)值的組合組成:TABLE_SCAN,INDEX_SCAN, HASH_SCANTABLE_SCAN,INDEX_SCAN (默認(rèn)配置,表示如果有索引就用索引,否則使用全表掃描)
使用組合包括:
INDEX_SCAN,HASH_SCAN
TABLE_SCAN,HASH_SCAN
TABLE_SCAN,INDEX_SCAN,HASH_SCAN(等價(jià)于INDEX_SCAN, HASH_SCAN)
對(duì)于以上MySQL主從延遲的原因相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
當(dāng)前名稱:找出MySQL主從延遲的原因
鏈接URL:http://m.rwnh.cn/article18/jgpjgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、Google、App開(kāi)發(fā)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)