最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分享MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程

 更新時間:2022年04月10日 20:10:35   作者:那海藍藍  
這篇文章主要介紹了分享MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程,基于MySQL實例的內(nèi)存使用率高的報警的問題展開對主題的問題,具有一定的參考價值,需要的小伙伴可以參考一下

    近期頻繁收到一個MySQL實例的內(nèi)存使用率高的報警,今天我們花時間排查一下問題出在哪里。

修改performance_schema

因為公司生產(chǎn)環(huán)境使用的阿里云RDS,修改參數(shù)相對方便,performance_schema默認為0,此次修改為1。修改之后提交參數(shù),數(shù)據(jù)庫會進行重啟,建議在業(yè)務(wù)低峰進行。

打開內(nèi)存監(jiān)控

登錄MySQL數(shù)據(jù)庫,執(zhí)行如下SQL,打開內(nèi)存監(jiān)控。

update performance_schema.setup_instruments set enabled = 'yes' where name like 'memory%';

打開之后驗證一下。

select * from performance_schema.setup_instruments where name like 'memory%innodb%' limit 5;

**注意:**該命令是在線打開內(nèi)存統(tǒng)計,所以只會統(tǒng)計打開后新增的內(nèi)存對象,打開前的內(nèi)存對象不會統(tǒng)計,建議您打開后等待一段時間再執(zhí)行后續(xù)步驟,便于找出內(nèi)存使用高的線程。

查找內(nèi)存消耗

統(tǒng)計事件消耗內(nèi)存

select event_name,
       SUM_NUMBER_OF_BYTES_ALLOC
from performance_schema.memory_summary_global_by_event_name
order by SUM_NUMBER_OF_BYTES_ALLOC desc
LIMIT 10;
+---------------------------------------+-------------------------------------+
| event_name                            | SUM_NUMBER_OF_BYTES_ALLOC           |
+---------------------------------------+-------------------------------------+
| memory/sql/Filesort_buffer::sort_keys | 763523904056                        |
| memory/memory/HP_PTRS                 | 118017336096                        |
| memory/sql/thd::main_mem_root         | 114026214600                        |
| memory/mysys/IO_CACHE                 | 59723548888                         |
| memory/sql/QUICK_RANGE_SELECT::alloc  | 14381459680                         |
| memory/sql/test_quick_select          | 12859304736                         |
| memory/innodb/mem0mem                 | 7607681148                          |
| memory/sql/String::value              | 1405409537                          |
| memory/sql/TABLE                      | 1117918354                          |
| memory/innodb/btr0sea                 | 984013872                           |
+---------------------------------------+-------------------------------------+

可以看到內(nèi)存消耗最高的event是Filesort_buffer,根據(jù)經(jīng)驗,這個應(yīng)該是排序有關(guān)。

統(tǒng)計線程消耗內(nèi)存

select thread_id,
       event_name,
       SUM_NUMBER_OF_BYTES_ALLOC
from performance_schema.memory_summary_by_thread_by_event_name
order by SUM_NUMBER_OF_BYTES_ALLOC desc
limit 10;
+---------------------+---------------------------------------+-------------------------------------+
| thread_id           | event_name                            | SUM_NUMBER_OF_BYTES_ALLOC           |
+---------------------+---------------------------------------+-------------------------------------+
| 105                 | memory/memory/HP_PTRS                 | 69680198792                         |
| 183                 | memory/sql/Filesort_buffer::sort_keys | 49210098808                         |
| 154                 | memory/sql/Filesort_buffer::sort_keys | 43304339072                         |
| 217                 | memory/sql/Filesort_buffer::sort_keys | 37752275360                         |
| 2773                | memory/sql/Filesort_buffer::sort_keys | 31460644712                         |
| 218                 | memory/sql/Filesort_buffer::sort_keys | 31128994280                         |
| 2331                | memory/sql/Filesort_buffer::sort_keys | 28763981248                         |
| 106                 | memory/memory/HP_PTRS                 | 27938197584                         |
| 191                 | memory/sql/Filesort_buffer::sort_keys | 27701610224                         |
| 179                 | memory/sql/Filesort_buffer::sort_keys | 25624723968                         |
+---------------------+---------------------------------------+-------------------------------------+

可以看到內(nèi)存消耗多的線程都跟Filesort_buffer相關(guān)。

定位具體SQL

根據(jù)前邊我們查到的thread_id去日志里查找對應(yīng)的SQL,阿里云RDS審計日志相對還是比較強大的。我們直接根據(jù)thread_id直接檢索。

記一次MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程_MySQL

    我們在日志里看到大量這樣的SQL,掃描行數(shù)在幾千到幾萬不等。雖然每次查詢時間并不長,大概在幾十到幾百毫秒,但是并發(fā)量很大。
    跟開發(fā)同學(xué)核實之后,這個查詢沒有做分頁,取到的數(shù)據(jù)有很多行,而且最后要做排序,并且排序字段并沒有合適的索引。到此,這次內(nèi)存使用率出現(xiàn)異常的罪魁禍首已經(jīng)找到。

到此這篇關(guān)于分享MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程的文章就介紹到這了,更多相關(guān)MySQL生產(chǎn)庫內(nèi)存異常增高內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MYSQL的存儲過程和函數(shù)簡單寫法

    MYSQL的存儲過程和函數(shù)簡單寫法

    簡單的說,就是一組SQL語句集,功能強大,可以實現(xiàn)一些比較復(fù)雜的邏輯功能,類似于JAVA語言中的方法,這里就為大家簡單介紹一下,需要的朋友可以參考下
    2018-05-05
  • MySQL使用UUID_SHORT()的問題解決

    MySQL使用UUID_SHORT()的問題解決

    MySQL的UUID_SHORT()函數(shù)是一個用于生成短UUID的函數(shù),該函數(shù)返回一個64位的整數(shù),可以用于唯一標識一條數(shù)據(jù)記錄,本文介紹了MySQL使用UUID_SHORT()的問題解決,感興趣的可以了解一下
    2023-08-08
  • MySQL sysdate()函數(shù)的具體使用

    MySQL sysdate()函數(shù)的具體使用

    本文主要介紹了MySQL sysdate()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • MySQL出現(xiàn)this?is?incompatible?with?sql_mode=only_full_group_by錯誤的解決辦法

    MySQL出現(xiàn)this?is?incompatible?with?sql_mode=only_full_grou

    mysql是高版本,當(dāng)執(zhí)行g(shù)roup?by時,select的字段不屬于group?by的字段的話,sql語句就會報錯,下面這篇文章主要給大家介紹了關(guān)于MySQL出現(xiàn)this?is?incompatible?with?sql_mode=only_full_group_by錯誤的解決辦法,需要的朋友可以參考下
    2023-02-02
  • 優(yōu)化MySQL Join算法的性能的操作方法

    優(yōu)化MySQL Join算法的性能的操作方法

    本文介紹了優(yōu)化MySQL JOIN算法性能的多種方法,包括索引優(yōu)化、表結(jié)構(gòu)設(shè)計、查詢語句優(yōu)化和系統(tǒng)配置調(diào)整,通過合理創(chuàng)建索引、優(yōu)化表結(jié)構(gòu)、選擇合適的驅(qū)動表以及調(diào)整相關(guān)系統(tǒng)參數(shù),可以有效提高JOIN操作的性能,感興趣的朋友一起看看吧
    2025-02-02
  • mysql limit 分頁的用法及注意要點

    mysql limit 分頁的用法及注意要點

    limit在mysql語句中使用的頻率非常高,一般分頁查詢都會使用到limit語句,本文章向碼農(nóng)們介紹mysql limit 分頁的用法與注意事項,需要的朋友可以參考下
    2016-12-12
  • 最新評論

    涞源县| 弋阳县| 雷山县| 千阳县| 南安市| 龙海市| 平原县| 县级市| 德清县| 金寨县| 清河县| 怀安县| 阿尔山市| 汤阴县| 宿迁市| 平谷区| 吴旗县| 谢通门县| 六盘水市| 山丹县| 汝城县| 太原市| 陆川县| 涟水县| 延川县| 西安市| 徐汇区| 益阳市| 曲麻莱县| 聊城市| 眉山市| 古交市| 厦门市| 兴仁县| 余江县| 公安县| 涞源县| 含山县| 平湖市| 鹰潭市| 武义县|