一段mongodb伺服器讀取資料逾時的故事

來源:互聯網
上載者:User

標籤:

北京時間 2016年9月25日  22:58:30 PM

近期線上生產環境mongodb的總是發現讀取資料逾時的問題,今天下午坐下來細細的研究了一番,大致過程如下:

業務背景                            

線上有一對mongodb主從的伺服器,只是簡單做了mongodb的主從,master - slave。

開始以為做了主從就能確保資料不丟的問題了,確實,資料沒有發生丟失的問題,但是近期發現好多使用者在點擊某些操作要讀取mongo裡面的資料內容的時候,要等待很長的時間,這樣的等待是叫人無法忍受的。

最開始的時候,以為做了主從,然後在Tomcat的mong設定檔中設定好讀寫分離的步驟就能做到讀寫分離了,可是不然,並沒有想象的那麼好,實際的結果是不管讀還是寫都被無情的把任務分發到了主的上面,這樣一來主的壓力就恨到了,導致了使用者讀取資料的時候,需要花費很長的時間來進行等待,沿著這個問題,我們就有了下文

問題排查:                                      

問題排查之:網卡流量君

先使用sar命令查看了伺服器的網卡流量資訊,發現正常:

sar -n DEV 1  #1秒鐘重新整理一次網卡流量資訊

23時05分26秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s23時05分27秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.0023時05分27秒      eth1    909.18    818.37     64.31    148.47      0.00      0.00      0.00

問題排查之:伺服器CPU君

查看了cpu之後發現並沒有什麼異常,8核的cpu使用率不到1%

top 時時顯示伺服器資源資訊

Cpu0  : 57.4%us,  2.6%sy,  0.0%ni, 32.3%id,  0.0%wa,  2.6%hi,  5.2%si,  0.0%stCpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu2  :  0.6%us,  0.0%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu3  :  0.6%us,  0.0%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu7  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

問題排查之:伺服器記憶體君

查看了記憶體使用量情況,可用記憶體還很多,16GB的記憶體,可用記憶體還有5GB之多

free -m 顯示記憶體資訊

             total       used       free     shared    buffers     cachedMem:         15950      10338       5612          0        105       8925-/+ buffers/cache:       1307      14642 Swap:         1023        682        341 

問題排查之:外來進程君

ps -ef 顯示系統進程

這裡不方便把伺服器開啟了那些進程羅列到此處,還請見諒;最後的分析結果就是,並無異常進程

這就奇怪了,到底是哪的問題呢?

此時io這個詞,在我頭腦中轉悠,我想會不會硬碟io堵塞,導致讀取資料超級慢呢?來,繼續

問題排查之:系統io君

iostart -x 1 每一秒鐘查看一下系統下所有磁碟的io使用狀況

avg-cpu:  %user   %nice %system %iowait  %steal   %idle          11.64    0.00    1.13    0.00    0.00   7.23Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %utilsda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00sdb               0.00     7.00    0.00    5.00     0.00   104.00    20.80     0.00    0.20   0.20   99.10dm-0              0.00     0.00    0.00   12.00     0.00   104.00     8.67     0.01    0.67   0.08   0.10

找到了一個可疑的元兇,磁碟io的等待很高,磁碟超負荷運轉。

沿著這個思路,順藤摸瓜,找到了研發同事問了下對mongodb做了什麼,他們淡定的說,就是簡單的增加、查詢之操作;好吧,那我就看看到底mongo的使用狀態吧

順藤蘑菇啊之:mongo系統使用狀況

insert  query update delete getmore command flushes mapped  vsize    res faults  locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn repl       time     *0     *0     *0     *0       0     2|0       0    31g  62.7g   999m      0 young:0.0%          0       0|0     0|0   120b     3k    18  SLV   23:19:57     *0     *0     *0     *0       0     1|0       0    31g  62.7g   999m      0 young:0.0%          0       0|0     0|0    62b     3k    18  SLV   23:19:58     *0     *0     *0     *0       0     8|0       0    31g  62.7g   999m      0 local:0.0%          0       0|0     0|0   468b     5k    18  SLV   23:19:59     *0     *0     *0     *0       0     5|0       0    31g  62.7g   999m      0 young:0.0%          0       0|0     0|0   294b     4k    18  SLV   23:20:00     *1     *0     *0     *0       0     6|0       0    31g  62.7g   999m      0     .:0.1%          0       0|0     0|0   352b     4k    18  SLV   23:20:01     *0     *0     *0     *0       0     2|0       0    31g  62.7g   999m      0 young:0.0%          0       0|0     0|0   120b     3k    18  SLV   23:20:02

 

 

 

一段mongodb伺服器讀取資料逾時的故事

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.