千峰逆戰(zhàn)技術(shù)分享第二十四天 用工具快速定位數(shù)據(jù)庫問題

我們經(jīng)常會收到業(yè)務(wù)反饋“在么? xx端口感覺訪問有點慢熬嘲碱!” 在確認(rèn)數(shù)據(jù)庫本身沒有問題(沒有down麦锯、沒有數(shù)據(jù)庫報錯)之后,就需要檢測服務(wù)器的各項指標(biāo)排查問題鹅巍。今天就給大家介紹一個非常好用的檢測工具sar。

常見問題

在日常數(shù)據(jù)庫運維中澎羞,我們經(jīng)常會遇到下面幾種情況:

數(shù)據(jù)庫卡慢

服務(wù)器負(fù)載過高

服務(wù)器異常重啟

遇到這些情況后妆绞,通常我們會使用一些工具來檢測服務(wù)器的狀態(tài)枫攀。

強大的sysstat工具包

sysstat是一個軟件包脓豪,包含監(jiān)測系統(tǒng)性能及效率的一組工具。

安裝

兩種安裝方式:

sudo yum install sysstat

git clone git://github.com/sysstat/sysstat

包含工具

sysstat工具集包含以下幾個常用工具:

iostat:用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況。mpstat:用于多CPU環(huán)境下查看各個可用CPU的狀態(tài)信息笤闯。

pidstat:用于監(jiān)控全部或指定進(jìn)程占用系統(tǒng)資源的情況颗味。

sar:目前Linux上最為全面的系統(tǒng)性能分析工具之一牺弹,可以從多方面對系統(tǒng)的活動進(jìn)行報告。

今天主要介紹一下功能強大的sar晶默。

Sar

sar(System Activity Reporter系統(tǒng)活動情況報告)是目前 Linux 上最為全面的系統(tǒng)性能分析工具之一磺陡,sar 工具將對系統(tǒng)當(dāng)前的狀態(tài)進(jìn)行取樣漠畜,然后通過計算數(shù)據(jù)和比例從多方面顯示系統(tǒng)的當(dāng)前運行狀態(tài)憔狞,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況拍冠、磁盤I/O倦微、CPU效率、內(nèi)存使用狀況责球、進(jìn)程活動及IPC(進(jìn)程間通信)有關(guān)的活動等。

特點

可以連續(xù)對系統(tǒng)取樣拓劝,獲得大量的取樣數(shù)據(jù)

取樣數(shù)據(jù)和分析的結(jié)果都可以存入文件雏逾,所需的負(fù)載很小

sar 提供了豐富的選項,功能強大

Sar統(tǒng)計項

?磁盤I/O及數(shù)據(jù)傳輸速率統(tǒng)計數(shù)據(jù)

CPU統(tǒng)計數(shù)據(jù)

內(nèi)存郑临、特大頁和交換空間利用率統(tǒng)計數(shù)據(jù)

虛擬內(nèi)存栖博、分頁和故障統(tǒng)計數(shù)據(jù)

網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)

進(jìn)程創(chuàng)建統(tǒng)計數(shù)據(jù)

中斷統(tǒng)計數(shù)據(jù)

光纖通道的流量統(tǒng)計數(shù)據(jù)

NFS服務(wù)器和客戶端活動統(tǒng)計數(shù)據(jù)

Socket統(tǒng)計數(shù)據(jù)

隊列及系統(tǒng)負(fù)載統(tǒng)計數(shù)據(jù)

內(nèi)核內(nèi)部表統(tǒng)計數(shù)據(jù)

TTY活動統(tǒng)計數(shù)據(jù)

文件系統(tǒng)利用率統(tǒng)計數(shù)據(jù)

通過圖解也可以看出來sar的功能相當(dāng)強大,我們今天只介紹幾個對數(shù)據(jù)庫問題排查有幫助的參數(shù)厢洞。

1排查CPU問題

使用 -u 或 -p 參數(shù)?

報告CPU的統(tǒng)計信息

輸出項說明:

CPU:????? all 表示統(tǒng)計信息為所有 CPU 的平均值仇让。

%user:??? 用戶級別(application)運行使用CPU 總時間的百分比躺翻。

%nice:??? 用戶級別丧叽,用于nice操作所占用 CPU 總時間的百分比(nice命令用于改變進(jìn)程的優(yōu)先級)

%system:? 內(nèi)核級別(kernel)運行所使用 CPU 總時間的百分比。

%iowait:? 等待I/O操作占用 CPU 總時間的百分比公你。

%steal:?? 管理程序為另一個虛擬進(jìn)程提供服務(wù)而等待虛擬CPU的百分比

%idle: ???CPU 空閑時間占用 CPU 總時間的百分比踊淳。

分析:

若 %iowait 的值過高,表示硬盤存在I/O瓶頸陕靠。

若 %idle 的值高但系統(tǒng)響應(yīng)慢時迂尝,有可能是 CPU 等待分配內(nèi)存,此時應(yīng)加大內(nèi)存容量剪芥。

若 %idle 的值持續(xù)低于1垄开,則系統(tǒng)的 CPU 處理能力相對較低,表明系統(tǒng)中最需要解決的資源是 CPU 粗俱。

使用 -q 參數(shù)?

報告進(jìn)程隊列長度和平均負(fù)載狀態(tài)说榆。

輸出項說明:

runq-sz: 運行隊列的長度(等待運行的進(jìn)程數(shù))

plist-sz:進(jìn)程列表中進(jìn)程(processes)和線程(threads)的數(shù)量

ldavg-1: 最后1分鐘的系統(tǒng)平均負(fù)載(System load average)

ldavg-5: 過去5分鐘的系統(tǒng)平均負(fù)載

ldavg-15:過去15分鐘的系統(tǒng)平均負(fù)載

2排查內(nèi)存問題

使用 -r ?參數(shù)

報告內(nèi)存和交換空間使用情況

輸出項說明:

kbmemfree:可用內(nèi)存(kb)。這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間.

kbmemused:已用內(nèi)存(kb)寸认。但是不包括內(nèi)核本身使用的內(nèi)存签财,這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間.

%memused: 內(nèi)存使用百分比。這個值是kbmemused和內(nèi)存總量(不包括swap)的一個百分比.

kbbuffers:內(nèi)核本身用于buffers使用的內(nèi)存(kb)

kbcached: 內(nèi)核本身用于cached使用的內(nèi)存(kb)

kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.

kbswpfree:剩余swap空間(kb)

kbswpused:已用swap空間(kb)

%swpused: swap使用百分比

kbswpcad: swap與內(nèi)存的交換緩存值偏塞。內(nèi)存中的數(shù)據(jù)交換至swap

使用 -W 參數(shù)

報告swap統(tǒng)計數(shù)據(jù)

輸出項說明:

pswpin/s:系統(tǒng)交換至swap分區(qū)頁的數(shù)量

pswpout/s:系統(tǒng)交換出swap分區(qū)也的數(shù)量

使用 -B 參數(shù)

內(nèi)存分頁情況統(tǒng)計信息

輸出項說明:

pgpgin/s:表示每秒從磁盤或SWAP置換到內(nèi)存的字節(jié)數(shù)(KB)唱蒸。低版本內(nèi)核(2.2.x),這個值表示每秒置換的塊數(shù)灸叼。

pgpgout/s:表示每秒從內(nèi)存置換到磁盤或SWAP的字節(jié)數(shù)(KB)神汹。

fault/s:每秒鐘系統(tǒng)產(chǎn)生的缺頁數(shù)(major + minor)(2.5版本的內(nèi)核)缺頁中斷并不一定產(chǎn)生I/O庆捺。

majflt/s:每秒鐘產(chǎn)生的主缺頁數(shù),需要從磁盤加載到內(nèi)存中1的數(shù)據(jù)頁(2.5版本的內(nèi)核報告)屁魏。

說明:

高分頁操作是內(nèi)存缺乏的信號滔以。

3排查I/O問題

使用 -b 參數(shù)

顯示I/O和磁盤讀寫速率的統(tǒng)計信息

輸出項說明:

tps:??? 每秒鐘物理設(shè)備的 I/O 傳輸總量。一個物理設(shè)備的I/O請求氓拼,多次邏輯請求可以組合成一個特定設(shè)備的I/O請求你画。

tps:??? 每秒鐘從物理設(shè)備讀入的數(shù)據(jù)總量

wtps:?? 每秒鐘向物理設(shè)備寫入的數(shù)據(jù)總量

bread/s:每秒鐘從物理設(shè)備讀入的數(shù)據(jù)量,單位為 塊/s桃漾。高于2.4版本內(nèi)核的塊的大小為512字節(jié)坏匪。低版本內(nèi)核塊的大小是不確定的

bwrtn/s:每秒鐘向物理設(shè)備寫入的數(shù)據(jù)量,單位為 塊/s

使用 -u 或 -p 參數(shù)

可參考上面排查cpu問題里的介紹撬统。

使用 -d (-p)參數(shù)

設(shè)備塊使用情況(適用于2.4及更新的內(nèi)核)

輸出項說明:

tps:每秒從物理磁盤I/O的次數(shù).多個邏輯請求會被合并為一個I/O磁盤請求,一次傳輸?shù)拇笮∈遣淮_定的.

rd_sec/s:每秒讀扇區(qū)的次數(shù).扇區(qū)的大小為512b

wr_sec/s:每秒寫扇區(qū)的次數(shù).扇區(qū)的大小為512b

avgrq-sz:平均每次設(shè)備I/O操作的數(shù)據(jù)大小(扇區(qū)).

avgqu-sz:磁盤請求隊列的平均長度.

await:從請求磁盤操作到系統(tǒng)完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒=1000毫秒).

svctm:磁盤I/O請求到設(shè)備的平均服務(wù)時間(以毫秒為單位)

%util:磁盤I/O請求到設(shè)備的CPU平均百分比(設(shè)備寬帶利用率)???????????????? 當(dāng)這個值接近100%的時候适滓,表示設(shè)備繁忙。

說明:

?avgqu-sz的值較低時恋追,設(shè)備的利用率較高凭迹。

當(dāng)%util的值接近 1 時,表示設(shè)備帶寬已經(jīng)占滿几于。

當(dāng)數(shù)據(jù)顯示時蕊苗,使用的設(shè)備規(guī)范為:dev m-n。

m是設(shè)備的主設(shè)備號沿彭,最新的內(nèi)核(2.5+),n是次設(shè)備號尖滚,但2.5版本之前的內(nèi)核喉刘,只有一個序列數(shù)。

如果使用-p 參數(shù)漆弄,設(shè)備名稱也可能是可打印形式睦裳。

也就是說:參數(shù)-p可以打印出sda,hdc等磁盤設(shè)備名稱,如果不用參數(shù)-p,設(shè)備節(jié)點則有可能是dev8-0,dev22-0。

某些2.4版本的內(nèi)核撼唾,avgqu-sz, await, svctm 和 %uti可能是不可用廉邑,顯示為0.00。

4排查網(wǎng)卡流量問題

使用-n DEV 參數(shù)

網(wǎng)絡(luò)統(tǒng)計報告

-n 參數(shù)對應(yīng)不同的關(guān)鍵字時報告不同的信息:

DEV關(guān)鍵字倒谷,報告網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)蛛蒙。

EDEV關(guān)鍵字,針對網(wǎng)絡(luò)設(shè)備匯報其失敗情況

NFS關(guān)鍵字渤愁,針對NFS客戶端進(jìn)行匯報牵祟。

NFSD關(guān)鍵字,針對NFS服務(wù)端進(jìn)行匯報抖格。

SOCK關(guān)鍵字诺苹,對用戶使用的sockets進(jìn)行匯報

ALL關(guān)鍵字咕晋,針對上述所有網(wǎng)絡(luò)信息進(jìn)行匯報

通常情況下,我們只關(guān)注網(wǎng)卡流量收奔,即使用-n DEV 參數(shù)

輸出項說明:

IFACE:就是網(wǎng)4絡(luò)設(shè)備的名稱

rxerr/s:每秒鐘接收到的損壞的包的數(shù)目

txerr/s:當(dāng)發(fā)送包時掌呜,每秒鐘發(fā)生的錯誤數(shù)

coll/s:當(dāng)發(fā)送包時,每秒鐘發(fā)生的沖撞(collisions)數(shù)(這個是在半雙工模式下才有)

rxdrop/s:由于緩沖區(qū)滿坪哄,網(wǎng)絡(luò)設(shè)備接收端质蕉,每秒鐘丟掉的網(wǎng)絡(luò)包的數(shù)目

txdrop/s:由于緩沖區(qū)滿,網(wǎng)絡(luò)設(shè)備發(fā)送端损姜,每秒鐘丟掉的網(wǎng)絡(luò)包的數(shù)目

txcarr/s:當(dāng)發(fā)送數(shù)據(jù)包時饰剥,每秒鐘載波錯誤發(fā)生的次數(shù)

rxfram/s:在接收數(shù)據(jù)包時,每秒鐘發(fā)生的幀對齊錯誤的次數(shù)

rxfifo/s:在接收數(shù)據(jù)包時摧阅,每秒鐘緩沖區(qū)溢出錯誤發(fā)生的次數(shù)

txfifo/s:在發(fā)送數(shù)據(jù)包時汰蓉,每秒鐘緩沖區(qū)溢出錯誤發(fā)生的次數(shù)

以上就是數(shù)據(jù)庫排查過程中,常用到的sar的參數(shù)棒卷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顾孽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子比规,更是在濱河造成了極大的恐慌若厚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜒什,死亡現(xiàn)場離奇詭異测秸,居然都是意外死亡,警方通過查閱死者的電腦和手機灾常,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門霎冯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钞瀑,你說我怎么就攤上這事沈撞。” “怎么了雕什?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵缠俺,是天一觀的道長。 經(jīng)常有香客問我贷岸,道長壹士,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任凰盔,我火速辦了婚禮墓卦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘户敬。我一直安慰自己落剪,他們只是感情好睁本,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忠怖,像睡著了一般呢堰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凡泣,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天枉疼,我揣著相機與錄音,去河邊找鬼鞋拟。 笑死骂维,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贺纲。 我是一名探鬼主播航闺,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猴誊!你這毒婦竟也來了潦刃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤懈叹,失蹤者是張志新(化名)和其女友劉穎乖杠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澄成,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡胧洒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了墨状。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片略荡。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖歉胶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情巴粪,我是刑警寧澤通今,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站肛根,受9級特大地震影響辫塌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜派哲,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一臼氨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芭届,春花似錦储矩、人聲如沸感耙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽即硼。三九已至,卻和暖如春屡拨,著一層夾襖步出監(jiān)牢的瞬間只酥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工呀狼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留裂允,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓哥艇,卻偏偏與公主長得像绝编,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子她奥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容