一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

分享預告

你的系統(tǒng)中是否存在間歇性的 IO 性能問題,或者一直以來都 IO 性能不佳呢?

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、東城網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5建站、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為東城等各大城市提供網(wǎng)站開發(fā)制作服務。

文章的最后,將給出共性的風險提示和檢查方法,還猶豫什么呢,也查一查您的系統(tǒng)吧^_^。

這次我們分享的主題   ---   看中國最美 DBA 一次價值連城的系統(tǒng)優(yōu)化!

通過系統(tǒng)的優(yōu)化,將某客戶一個關鍵業(yè)務系統(tǒng)經(jīng)常性卡頓和白屏的性能問題徹底解決 !

首先讓大家提前看一下 Oracle 數(shù)據(jù)庫優(yōu)化前后的效果比對圖吧,一會再看 ..

優(yōu)化前:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

優(yōu)化后:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

是的,似乎有人不關心優(yōu)化效果,而是關心“中國最美女 DBA” 。

好吧,言歸正傳,十七期,我們邀請到了中亦科技數(shù)據(jù)庫團隊的小仙女 -- 小亦姑娘,為大家做分享上面這個價值連城的系統(tǒng)優(yōu)化案例!之所以說價值連城,是因為對客戶而言,意義重大。案例中知識點很多,精彩不斷!

 

小亦姑娘作為中亦科技數(shù)據(jù)庫團隊的新生代90后DBA,成為團隊中初級DBA的典型代表,本篇為其處理CASE的代表作!

注意,不要只看照片,文章才是關鍵!也期待小亦姑娘更多作品^_^

喜歡就轉(zhuǎn)發(fā)吧,您的轉(zhuǎn)發(fā)是我們持續(xù)分享的動力!

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

臨危受命

"小亦 , 你下午和銷售去解決一個潛在客戶的性能問題吧。"

原來,一個保險客戶,他們的核心系統(tǒng),數(shù)據(jù)庫是 oracle單實例,跑在aix小機上。

業(yè)務系統(tǒng)每天都會經(jīng)常性地出現(xiàn)卡頓和白屏現(xiàn)象,業(yè)務部門多次投訴了,現(xiàn)在客戶的運維部門壓力很大,如果問題繼續(xù)下去,所有人都會被逼瘋的。

這次他們的運維經(jīng)理,找到中亦科技,希望我們可以出手解決這個問題,問題只要解決了,一切好說。之前找過一些公司,但均未能解決。問題也已經(jīng)很長時間了。

看上去,客戶遇到麻煩了 … 我,盡力吧!


問題很嚴重啊

到達客戶現(xiàn)場,客戶和我簡單介紹了下這個系統(tǒng)的情況后,我就迫不及待的取出 awr 報告! Oracle 之所以經(jīng)久不衰,被客戶喜愛,很重要的一個原因是可度量和可調(diào)整。

通過 OWI 就可以輕松了解到系統(tǒng)是否存在瓶頸,無數(shù)的接口等著你來控制它。

直接上等待事件,如下所示:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

這一看,直接嚇了一跳。數(shù)據(jù)庫中這么多異常的等待,怪不得業(yè)務系統(tǒng)卡頓了。

可以看到:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

?     等待事件中 Log File Sync 平均每次 94ms ,占整個 DB Time 的 42% ;

?     log buffer space 平均每次 952ms ,占整個 DB Time 的 20% 。

?     ORACLE 卡住的原因是   logfile 寫不下去,導致整個數(shù)據(jù)的 commit 變慢。

?    logbuffer space 和 buffer busy waits 顯然是   Log File Sync 慢的一個附屬結(jié)果。

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

顯然因為 lgwr 寫的慢,導致 log buffer 來不及刷到磁盤,導致 log buffer 看上去出現(xiàn)“滿”了,其他進程不得不等待" log buffer space”, 根本原因在于 log writer 寫的慢!

LGWR有多慢

接下來,小亦檢查了下 lgwr 進程的 trace:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

可以看到

在線日志寫入延時最高超過 137 秒,最后一條記錄顯示,寫入 18K ,居然需要 65 秒!真是讓人吃驚的結(jié)果。這里不得不懷疑存儲 IO 子系統(tǒng)出現(xiàn)了問題!難道這么簡單就被小亦解決了 ?  嘿嘿 …

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

令人失望的溝通

小亦將上述發(fā)現(xiàn)和分析方向告訴了客戶,結(jié)果發(fā)現(xiàn),客戶對此并不意外。

聽客戶說到,之前找到的專業(yè)公司也發(fā)現(xiàn)了這個問題,然后把問題就甩給他們了,說是IO有性能問題!但是我們多次檢查存儲陣列、SAN交換機、鏈路,結(jié)果沒有任何報錯和有用的線索!操作系統(tǒng)也沒有任何報錯!“如果你們最后也是這個結(jié)論,那你們可以回去了!”

有點委屈,中亦又不是只做數(shù)據(jù)庫服務的公司,我們是一站式服務商。小亦一定要證明給他看,我們是不一樣的!

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

錯怪了客戶

難道是客戶水準不夠,查不出來存儲IO子系統(tǒng)方面的問題?

正猶豫,要不要申請公司的AIX專家和存儲專家過來一起排查的時候呢, 不如先自己檢查檢查,等確認存儲確實有性能問題后再說吧。

敲下iostat,結(jié)果如下所示:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

看到這些數(shù)據(jù),看來小亦真的錯怪客戶了!

從操作系統(tǒng)看 LUN 一級的性能表現(xiàn),是非常棒的!

服務隊列沒有滿,沒有 timeout 和 fail, 讀寫的平均服務時間 avgsrv 以及最大響應時間 maxserv 都是非常小的。如果 iostat 或者 sar –d 沒有性能問題,那么還去找存儲陣列查,方向就是錯的了!

思考時刻 
一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期
到這里,讀者可以停下來思考一下,如果是你,你會怎么接著往下查,你的懷疑方向有是什么呢?

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

找到通往天堂的路口

既然lgwr進程寫的慢,那么小亦就用truss來獲取該進程的系統(tǒng)調(diào)用情況吧,如下所示:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

可以看到:

lgwr 大量地調(diào)用 aio_nwait_timeout,listio64 兩個系統(tǒng) call ,并且在 listio64 這個 call 調(diào)用之后,都會有一段時間的停頓。顯然,這兩個屬于 AIX 系統(tǒng)異步 IO 的調(diào)用。

那么接下來檢查異步 IO 的配置就順其自然了。檢查如下:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

# ioo -F -a|grep aio

aio_active = 1

aio_maxreqs =4096   # 最大請求數(shù)

aio_maxservers = 10     # 每個 cpu 的 aio 的最大服務數(shù)

aio_minservers = 3      # 每個 cpu 的 aio 的最小服務數(shù)

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

    該系統(tǒng)配置了22 CPU,每顆CPU 最多支持10個AIO SERVER,那么整個系統(tǒng)理論上最大是22*10=220個AIO SERVER.

繼續(xù)乘勝追擊,看看操作系統(tǒng)起了多少個AIO SERVER呢?

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

# pstat –a |grep -c kproc

320

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

可以看到,一共起了 320 個!不只是最大的 220. 看來,當最大 SERVER 不夠的時候,系統(tǒng)是允許有突破這個限制的!

小亦之后多次持續(xù)的檢查,發(fā)現(xiàn)都是 320 個,正常而言, AIOSERVER 過了一個空閑時間,數(shù)量將會降下去,除非一直在工作!

這就對了!小亦看到這,心里已經(jīng)樂開花了,顧不得女孩子的矜持了。

AIOSERVER 不足,導致 LGWR 沒有無用的 AIO SERVER,IO 壓根傳遞不到 LUN 一級,因此 IO 長時間無法完成。

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

原因總結(jié)

可以認為是應用發(fā)出太多的 IO 請求,導致操作系統(tǒng) AIO server 不能滿足需求,從而導致 LGWR 寫入變得極其緩慢。


再次思考 
一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

至此,讀者朋友們,不妨停下來,思考下,如果是您來決策,您會怎么調(diào)整?Maxserver從10調(diào)整到多大呢?20?50?還是……

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

您的決策可能會影響到優(yōu)化的效果,效果不好,可能就會影響到客戶的信息,畢竟這是客戶的關鍵業(yè)務系統(tǒng)啊,不妨停下來,看看小亦的選擇。

選擇前的確認

為了進一步坐實證據(jù),小亦發(fā)出下列命令,獲得異步 IO 不足的情況:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

可以看到:

1 秒內(nèi),最大的異步 IO 的請求數(shù)量都超過 2000 了,遠遠超過 AIO 設置的最大值 220 , IO 寫的慢就是必然的了。

解決方案


有了前面的分析,解決起來就簡單了!

這個性能問題,我們不調(diào) SQL ,我們不改數(shù)據(jù)庫參數(shù),我們改操作系統(tǒng)參數(shù)!

在征求公司 AIX 專家和團隊三線專家的意見后,小亦給客戶提出了以下優(yōu)化方案:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

修改 AIO 相關參數(shù): 將 maxserver 調(diào)大到 800 ,同時修改 maxreqs 為 16384

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

令人振奮的優(yōu)化效果

做完操作系統(tǒng)參數(shù)調(diào)整后,小亦也是無比期待啊,就像自己的孩子一樣。

第二天迫不及待給客戶去了電話,“截止目前,沒有再出現(xiàn)任何系統(tǒng)卡頓和白屏的情況了,實在是太感謝了!這是一次價值連城的優(yōu)化?。I(yè)務的健康發(fā)展意義重大!你們繼續(xù)做進一步的優(yōu)化,商務的事情交給我 ! ”

優(yōu)化前:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

優(yōu)化后:

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

經(jīng)驗提示

在AIX操作系統(tǒng)上, 如果采用文件系統(tǒng)存放數(shù)據(jù)庫文件 ,不正確的異步IO配置,會導致IO 出現(xiàn)嚴重的性能問題。 很多客戶忽略掉了這一點,并且有可能在持續(xù)忍受著糟糕的IO性能而無從下手。

中亦科技建議大家通過下列命令檢查或者監(jiān)控起來, 及時作出調(diào)整,確保系統(tǒng)運行在最佳性能狀態(tài)下;

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

步驟 1-- 獲取 CPU 個數(shù)

# vmstat 

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期
一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

步驟2—查看異步IO的配置

# ioo -F -a|grep aio

aio_active = 1

aio_maxreqs =4096   # 最大請求數(shù)

aio_maxservers = 10     # 每個 cpu 的 aio 的最大服務數(shù)

aio_minservers = 3      # 每個 cpu 的 aio 的最小服務數(shù)

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期
一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

步驟3—查看異步IO的maxgc:

如果maxgc長時間處于超過CPU個數(shù)*aio_maxservers的狀態(tài),則說明IO可能有嚴重性能問題,需要對異步IO配置做出調(diào)整!

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期

本文題目:一次系統(tǒng)優(yōu)化!-技術(shù)人生系列-我和數(shù)據(jù)中心的故事-第十七期
URL網(wǎng)址:http://muchs.cn/article10/pgdedo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、云服務器、營銷型網(wǎng)站建設、服務器托管企業(yè)建站、網(wǎng)頁設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設