日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

同一条sql insert 有时快有时慢 引发的血案

發布時間:2023/12/31 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同一条sql insert 有时快有时慢 引发的血案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??同一條sql語句,為什么有時插入塊,有時插入慢原因剖析

?

?

?

?

背景:同一條sql ,有時插入時間幾毫秒,有時插入時間幾十毫秒,為什么?

Sql角度:簡單insert

表角度: 一個主鍵

系統參數角度:

開啟了雙1 策略。

也就意味著每次事物就會有刷新磁盤

關閉雙1 ,設置為 0 100 ,或者 2 100 ,會極大提升性能。這是因為不刷硬盤了,但不能解決為什么時快時慢問題

?

操作系統角度

iostat -xmd 1? 看磁盤

?

?

?

?

磁盤 不夠快啊。 讀寫0.15M 就使用了7%

?

?

來個順序文件拷貝, 30M 使用 100%。 離散讀寫更慢了

使用sar -B 1 可以查看頁面交換

?

?

pgpgin/s:表示每秒從磁盤或SWAP置換到內存的字節數(KB)

pgpgout/s:表示每秒從內存置換到磁盤或SWAP的字節數(KB)

fault/s:每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)

majflt/s:每秒鐘產生的主缺頁數.

pgfree/s:每秒被放入空閑隊列中的頁個數

pgscank/s:每秒被kswapd掃描的頁個數

pgscand/s:每秒直接被掃描的頁個數

pgsteal/s:每秒鐘從cache中被清除來滿足內存需要的頁個數

%vmeff:每秒清除的頁(pgsteal)占總掃描頁(pgscank+pgscand)的百分比

?

這表示 內存和 swap 或者硬盤 有頻繁的數據交換

2 哪個進程使用swap 呢

?

for i in $(ls /proc | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head

?

在經過 幾個小時后 ,mysql 使用 swap 由 88M 變成了104M , 說明一直在使用和增加的。

?

問題基本定位

  • 首先是磁盤性能不高,順序寫才30M ,離散寫會降低10倍
  • 其次是mysql又使用了swap 空間,這就使得性能更差
  • Mysql 開啟了雙1 驗證,就會等待數據刷磁盤,
  • ?

    磁盤使用頻率不穩定,導致了mysql的插入時間會時快時慢

    ?

    如何解決

  • 減少mysql使用swap 方式
  • ?    把swapness 降為1

        sysctl vm.swappiness=1???? 并且 /etc/sysctl.conf? 中設置為1

      2? 降低內存 innodb_buffer_pool_size =4G? 原來6G ,節約一部分內存空

      3 開啟innodb_numa_interleave = ON??? 來操作numa

    ? ? ? ?4?更換SSD 或者不用開啟雙1,改成 2? 100

    ?

    ?

    只調整操作系統參數,不更換硬件,依然開啟雙一,重啟mysql之后呢

    ?

    ?

    ?

    可以看到mysql已經不再使用 swap 空間了

    但是因為雙一參數的使用,每次事物都會刷磁盤,而這個機械磁盤的性能在隨機讀寫的情況下不穩定。會依然存在時快時慢的問題。

    ?

    ?

    轉載于:https://www.cnblogs.com/fangxuanlang/p/10439524.html

    總結

    以上是生活随笔為你收集整理的同一条sql insert 有时快有时慢 引发的血案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。