操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    工具準(zhǔn)備:

    iotop: http://guichaz.free.fr/iotop/

    pt-ioprofile: http://www.percona.com/downloads/percona-toolkit/2.2.1/

    IO高分析方法:

    1、查看磁盤(pán)使用率 df -lh

    2、安裝iostat 安裝命令: yum install sysstat

    3、iostat -d -k 2 查看IO情況:

    哪個(gè)磁盤(pán)的IO負(fù)載較高,接下來(lái)我們就來(lái)定位具體的負(fù)載來(lái)源

    %util: 一秒中有百分之多少的時(shí)間用于 I/O 操作,或者說(shuō)一秒中有多少時(shí)間 I/O 隊(duì)列是非空的。即 delta(use)/s/1000 (因?yàn)閡se的單位為毫秒)

    如果 %util 接近 100%,說(shuō)明產(chǎn)生的I/O請(qǐng)求太多,I/O系統(tǒng)已經(jīng)滿(mǎn)負(fù)荷,該磁盤(pán)可能存在瓶頸。

    4、安裝iotop 命令:

    安裝命令:yum install iotop iotop 查看哪個(gè)線程耗IO比較高、按 o 只顯示有磁盤(pán) IO 活動(dòng)的進(jìn)程。

    5、pt-ioprofile定位負(fù)載來(lái)源文件

    pt-ioprofile --profile-pid=1236 --cell=sizes

    pt-ioprofile的原理是對(duì)某個(gè)pid附加一個(gè)strace進(jìn)程進(jìn)行IO分析。

    6、對(duì)于定位問(wèn)題更有用的是通過(guò)IO的吞吐量來(lái)進(jìn)行定位。使用參數(shù) --cell=sizes,該參數(shù)將結(jié)果已 B/s 的方式展示出來(lái)

    pt-ioprofile --profile-pid=1236 --cell=sizes

    從上圖可以看出IO負(fù)載的主要來(lái)源是jetty。

    并且壓力主要集中在讀取上。

    現(xiàn)象

    前段時(shí)間,一個(gè)Mysql數(shù)據(jù)庫(kù)服務(wù)器磁盤(pán)IO寫(xiě)非常高,經(jīng)過(guò)排查,發(fā)現(xiàn)是mysql線程導(dǎo)致的,磁盤(pán)讀寫(xiě)情況,如下圖所示


    從上圖可以看到磁盤(pán)IO已經(jīng)達(dá)到6.77M/S,mysql的版本是5.6,這個(gè)版本還沒(méi)有performance_schema.threads視圖的THREAD_OS_ID字段,沒(méi)辦法將操作系統(tǒng)的thread_id和mysql數(shù)據(jù)庫(kù)線程id進(jìn)行關(guān)聯(lián),不能精確定位是mysql那個(gè)線程產(chǎn)生的磁盤(pán)IO寫(xiě)操作。

    排查過(guò)程

    于是登錄mysql數(shù)據(jù)庫(kù),臨時(shí)開(kāi)始Mysql數(shù)據(jù)庫(kù)的general_log,查看日志記錄,也沒(méi)有發(fā)現(xiàn)什么特殊操作

    這就很詭異了,到底是什么原因呢,只能祭出終極武器perf了,看看此時(shí)mysql數(shù)據(jù)庫(kù)什么函數(shù)操作占用資源最多。

    [root@mysql ~]# ps -ef|grep -i mysqld
    mysql     11650      1  0 8月29 ?        00:00:00 /bin/sh /data/mysql-8.0.21/bin/mysqld_safe --defaults-file=/data/mysql/mysql8/conf/3308/my.cnf
    mysql     12694  11650  2 8月29 ?        00:59:29 /data/mysql-8.0.21/bin/mysqld --defaults-file=/data/mysql/mysql8/conf/3308/my.cnf --basedir=/data/mysql-8.0.21 --datadir=/data/mysql/mysql8/data/3308 --plugin-dir=/data/mysql-8.0.21/lib/plugin --log-error=/data/mysql/mysql8/log/3308/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql8/run/3308/mysql.pid --socket=/data/mysql/mysql8/run/3308/mysql.sock --port=3308
    root      49777  49737  0 15:58 pts/0    00:00:00 grep --color=auto -i mysqld
    [root@mysql ~]# 
    [root@mysql ~]# 
    [root@mysql ~]# perf top -p 12694
    

    觀察結(jié)果如下圖所示

    原因

    從圖中可以看到,buf_calc_page_new_checksum 函數(shù)操作占用的資源最多。

    那么buf_calc_page_new_checksum 這個(gè)函數(shù)到底是做什么的呢?
    在mysql刷盤(pán)時(shí),會(huì)調(diào)用這個(gè)函數(shù),這個(gè)函數(shù)的作用是checksum,并寫(xiě)入頁(yè)中。,其調(diào)用順序如下所示

    buf_flush_page-->buf_flush_write_block_low-->buf_flush_init_for_writing-->buf_calc_page_new_checksum

    從上面可以看出,是Mysql數(shù)據(jù)庫(kù)在做刷臟頁(yè)操作,導(dǎo)致磁盤(pán)的IO寫(xiě)特別高,這也是為什么在general_log看不出什么特殊操作的原因。

    喜歡的朋友,可以添加關(guān)注

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶(hù)案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有