国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mysql使用perf top判斷cpu高原因

IT那活兒 / 2504人閱讀
Mysql使用perf top判斷cpu高原因

點(diǎn)擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!



Perf介紹
我們在mysql數(shù)據(jù)庫時,經(jīng)常會遇到主機(jī)cpu使用率突增的現(xiàn)象,碰到緊急情況需要盡快找到原因進(jìn)行處理,這里我推薦使用Perf top。
Perf 是內(nèi)置于Linux 內(nèi)核源碼樹中的性能剖析工具:
它基于事件采樣原理,以性能事件為基礎(chǔ),支持針對處理器相關(guān)性能指標(biāo)與操作系統(tǒng)相關(guān)性能指標(biāo)的性能剖析。可用于性能瓶頸的查找與熱點(diǎn)代碼的定位。

linux2.6及后續(xù)版本都自帶該工具,幾乎能夠處理所有與性能相關(guān)的事件。perf top 是比較常用于展示占用CPU始終最多的函數(shù)或者指令,一般以此來查找熱點(diǎn)函數(shù)。



指標(biāo)介紹

# perf top

  • -g:可以查看堆棧調(diào)用;
  • -a:查看所有CPU。
例:
  • Samples : 采樣數(shù), perf 總共采集了 876 個 CPU 時鐘事件。
  • event : 事件類型。
  • Event count (approx.) : 事件總數(shù)量。

行列:

  • Overhead: 是該符號的性能事件在所有采樣中的比例,用百分比來表示。

  • Shared: Shared ,是該函數(shù)或指令所在的動態(tài)共享對象(Dynamic Shared Object),如內(nèi)核、進(jìn)程名、動態(tài)鏈接庫名、內(nèi)核模塊名等。

  • Object: Object ,是動態(tài)共享對象的類型。比如 [.] 表示用戶空間的可執(zhí)行程序、或者動態(tài)鏈接庫,而 [k] 則表示內(nèi)核空間。

  • Symbol: Symbol 是符號名,也就是函數(shù)名。當(dāng)函數(shù)名未知時,用十六進(jìn)制的地址來表示。

上面結(jié)果顯示內(nèi)核模塊中_raw_spin_unlock_irqrestore占用 CPU時鐘最多,比列占11.31%。



根據(jù)MYSQL進(jìn)程查找CPU消耗過高的線程信息
1. 找到mysql進(jìn)程id:
ps -ef |grep mysqld|grep -v grep
例:
[root@gaussdb11 ~]# ps -ef |grep mysqld|grep -v grep
mysql 12816      1  0 08:47 ? 00:00:00 /bin/sh 
/home/mysql/bin/mysqld_safe --defaults-
file=/home/mysql_data/db/mysqldb1.cnf --ledir=/home/mysql/bin
mysql 14206  12816  0 08:47 ? 00:00:36 
/home/mysql/bin/mysqld --defaults-file=/home/mysql_data/db/mysqldb1.cnf --basedir=/home/mysql
--datadir=/home/mysql_data/db/data --plugin-dir=/home/mysql/lib/plugin --log-
error=/home/mysql_data/db/log/mysql.err --pid-file=/home/mysql_data/db/mysql.pid --
socket=/home/mysql_data/db/mysql.sock --port=3306
2. 根據(jù)進(jìn)程id查找MYSQL的調(diào)用函數(shù)信息及進(jìn)程的線程信息:
perf top -g -p pid
top -H -p pid
  • -H 顯示線程信息;
  • -p指定pid。
14206就是mysql進(jìn)程,我們以這個進(jìn)程為例:
Children,Self表示函數(shù)本身的overhead:如果某個函數(shù)的overhead占60%,那么它的Self overhead就是40%。一個是調(diào)用 main() 上,一個是執(zhí)行 main() 指令,二者的overhead都要計算入main的Children overhead。Self函數(shù)所占非常低,說明函數(shù)都在被正常調(diào)用。
[root@gaussdb11 ~]# top -H -p 14206
top - 15:11:14 up  6:25, 3 users, load average: 0.00, 0.03, 0.05
Threads: 42 total, 0 running, 42 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 6.2 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3765236 total, 2696380 free, 566248 used, 502608 buff/cache
KiB Swap: 3145724 total, 3145724 free, 0 used. 2624428 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
14206 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:03.13 mysqld
14207 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.00 mysqld
14216 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.41 mysqld
14217 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.49 mysqld
14218 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.39 mysqld
14219 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.39 mysqld
14220 mysql     20   0 3345492 414464  11640 S  0.0 11.0   0:00.37 mysqld
3. 根據(jù)上一步查出來的線程pid可以查看該線程詳細(xì)信息:
select CONCAT(kill ,id,;) AS KillSQL,USER,HOST,DB,COMMAND,TIME,STATE,INFO from 
information_schema.PROCESSLIST where ID = (
select PROCESSLIST_ID from  performance_schema.threads where 
THREAD_OS_ID=14207);
4. 根據(jù)查出來的信息,查看sql執(zhí)行計劃,如果是高耗SQL,與應(yīng)用確認(rèn)后予以kill,然后進(jìn)行在進(jìn)行sql優(yōu)化。


END




本文作者:湯 杰(上海新炬王翦團(tuán)隊)

本文來源:“IT那活兒”公眾號

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129444.html

相關(guān)文章

  • 記一次PHP并發(fā)性能調(diào)優(yōu)實戰(zhàn) -- 性能提升104%

    摘要:這是多處理器系統(tǒng)中,調(diào)度器用來分散任務(wù)到不同的機(jī)制,通常也被稱為處理器間中斷,。文章編寫計劃 待完成: 詳細(xì)介紹用到的各個工具 作者: 萬千鈞(祝星) 適合閱讀人群 文中的調(diào)優(yōu)思路無論是php, java, 還是其他任何語言都是用. 如果你有php使用經(jīng)驗, 那肯定就更好了 業(yè)務(wù)背景 框架及相應(yīng)環(huán)境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...

    番茄西紅柿 評論0 收藏0
  • 記一次PHP并發(fā)性能調(diào)優(yōu)實戰(zhàn) -- 性能提升104%

    摘要:這是多處理器系統(tǒng)中,調(diào)度器用來分散任務(wù)到不同的機(jī)制,通常也被稱為處理器間中斷,。文章編寫計劃 待完成: 詳細(xì)介紹用到的各個工具 作者: 萬千鈞(祝星) 適合閱讀人群 文中的調(diào)優(yōu)思路無論是php, java, 還是其他任何語言都是用. 如果你有php使用經(jīng)驗, 那肯定就更好了 業(yè)務(wù)背景 框架及相應(yīng)環(huán)境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...

    xeblog 評論0 收藏0
  • Perf分析CPU性能問題筆記

    摘要:本文僅僅是一個筆記。因此同樣可以用觀察,但是會出現(xiàn)無法顯示函數(shù)符號的問題,注意觀察最下面一行解決辦法是先用記錄采樣數(shù)據(jù),然后將容器內(nèi)文件系統(tǒng)綁定到上,然后用指定符號目錄。觀察容器內(nèi)進(jìn)程使用情況目前沒有辦法。 本文僅僅是一個筆記。 場景 觀察進(jìn)程的CPU使用情況 觀察進(jìn)程內(nèi)各個函數(shù)的CPU使用情況: sudo perf top -p 同時顯示函數(shù)調(diào)用鏈: sudo perf top -...

    paulquei 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<