單條commit與多條commit對系統產生的IOPS影響的探討,commitiops

來源:互聯網
上載者:User

單條commit與多條commit對系統產生的IOPS影響的探討,commitiops


本文中姓名與敏感號碼脫敏聲明:

   出於對個人隱私的保護,對專家的真名進行脫敏,採用人稱名代替,對於手機號和QQ號,部分用“X”符號替換。

 

1、國內資深效能最佳化專家老白先生(筆名:白鱔,人稱老白)提問

單條COMMIT和多條COMMIT,對系統產生的IOPS有什麼影響,有多大影響,為什嗎?

2、小弟黎俊傑(網名:踩點)應答

黎俊傑134XXXXXXX1(389338XX3) 9:41:57

單條commit的IOPS肯定大於多條commit,每commit一次,LGWR就會有一個日誌塊做寫入,即最少發生一次IOPS;多條一起commit,如果多條記錄的大小小於一個塊大小的話,即也只是發生一次IOPS,而通常一條記錄即達到一個塊大小的情況比較小。不知是不是這樣理解,請徐總指教。

3、老白先生回複

老白138XXXXXXX0(62XX5) 9:44:24

首先分析下批量插入的IO產生有那幾塊,

然後評估下大概多大

小弟想,即然老白先生這麼回複,肯定說明我的回答不夠完整,好,看,繼續往下,看我來深入一下。

4、小弟黎俊傑(網名:踩點)接著應答

黎俊傑134XXXXXXX1(389338XX3) 2015/1/5 9:51:34

批量插入的情況下,主要應該是LGWR和DBWR兩部分產生IO

5、老白先生再次回複

老白138XXXXXXX0(62XX5) 2015/1/5 9:56:20

如果問題要分析的再細一點,還要考慮索引的影響

老白此話一出,小弟我立即自拍腦袋三下,插入資料,如果表上有索引,肯定會維護索引的,在此題目的回答上,我怎麼就沒有把思維擴寬些,插入資料維護索引也會引起IO,而只是單純圍繞著題目中的“插入”這個具體的事件,而不考慮該事件還會引發的相關事件呢。看來,在專家面前,不得不承認自己與專家的差距啊。

下面來老實回答一下老白吧。往下啦…

6、中間插曲

Hu jun軍150XXXXXXX8(275475005) 2015/1/5 9:57:21
一般批量插入的資料量都較大

Hu jun軍是我的哥們,是子衿最佳化團隊的一枚實力大將,看來這哥們是忙中偷閑了一下啊。

7、未等俺喘氣,老白先生繼續指導

老白138XXXXXXX0(62XX5) 2015/1/5 9:57:35
IO產生有幾大塊,格式化資料區塊產生的預讀,索引修改產生的單塊讀,DBWR寫入,LGWR寫日誌

8、小弟的肺腑回複

黎俊傑134XXXXXXX1(389338XX3) 2015/1/5 9:57:42
剛才考慮時,確實沒有想到索引上來

   不得不說,我當時的回答確實沒有想到索引上來,在此長知識了。不過還好,問題回答上了一半,說明了產生IO主要是因為DBWR與LGWR

9、再看專家的過人之高言

老白138XXXXXXX0(62XX5) 2015/1/5 9:58:00
還有索引大批量修改產生的排序可能產生的暫存資料表空間讀寫DIRECT PATH

看到這段指導之言,不得不說,“專家就是專家”,問題分析的全面與深入,讓小弟發自從內心的佩服!

 

   小弟今天真是長知識了,與專家交流的感覺真是好,也真希望與專家的交流能夠更多些。

 

本文作者:黎俊傑(網名:踩點),從事”系統架構、作業系統、存放裝置、資料庫、中介軟體、應用程式“六個層面系統性的效能最佳化工作

歡迎加入 系統效能最佳化專業群,共同探討效能最佳化技術。群號:258187244

相關文章

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.