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

mysql5.7大量sleep進(jìn)程常規(guī)處理方式及配置示例

 更新時間:2023年08月19日 09:34:03   作者:森森淼淼丶  
這篇文章主要給大家介紹了關(guān)于mysql5.7大量sleep進(jìn)程常規(guī)處理方式及配置的相關(guān)資料,sleep連接過多會嚴(yán)重消耗mysql服務(wù)器資源(主要是cpu,內(nèi)存),并可能導(dǎo)致mysql崩潰,需要的朋友可以參考下

1. 現(xiàn)象      

在日常的mysql運(yùn)維中我們在巡檢的時候經(jīng)常會發(fā)現(xiàn)大量的sleep進(jìn)程,如下圖:

2. 原因

這種現(xiàn)象一般由三種情況導(dǎo)致的:

1.程序中對mysql_close的調(diào)用不佳

2.數(shù)據(jù)庫中sql的查詢時間過長

3.wait_timeout、interactive_timeout兩個參數(shù)的值過大

3.解決方案

常見的問題是第三種,我們先來理解一下wait_timeout、interactive_timeout這兩個參數(shù)的含義:

根據(jù)mysql5.7官方文檔的說明:

wait_timeout可設(shè)置為全局、會話級別,嗎,默認(rèn)值28800,最小值1,最大值3153600 ,單位是秒 。

他是指服務(wù)器在關(guān)閉非交互式連接之前等待該連接活動的秒數(shù)。

在線程啟動時,會話wait_timeout值從全局wait_timeout值或從全局interactive_timeout值初始化,這取決于客戶端的類型(由mysql_real_connect()的CLIENT_INTERACTIVE connect選項(xiàng)定義)。另請參見interactive_timeout。

interactive_timeout可設(shè)置為全局、會話級別,嗎,默認(rèn)值28800,最小值1,最大值3153600 ,單位是秒 。

服務(wù)器在關(guān)閉交互式連接之前等待其活動的秒數(shù)。交互式客戶端定義為使用mysql_real_connect()的CLIENT_INTERACTIVE選項(xiàng)的客戶端。另請參見wait_timeout。

在配置這兩個參數(shù)的時候要同時配置保持一致。

下面我們理解一下這兩個參數(shù)真正的作用:

wait_timeout 用來控制jdbc等應(yīng)用程序連接數(shù)據(jù)庫長時間不活躍MySQL主動斷開連接的時間

interactive_timeout 用來控制mysql客戶端ide工具連接數(shù)據(jù)庫長時間不活躍MySQL主動斷開連接的時間

在MySQL中,Sleep是一個狀態(tài),表示連接已建立,但當(dāng)前沒有任何活動。Sleep進(jìn)程是指MySQL中當(dāng)前處于Sleep狀態(tài)的進(jìn)程,這些進(jìn)程占用了MySQL資源,但卻沒有實(shí)際運(yùn)作。當(dāng)連接建立之后,如果沒有任何操作,連接將一直保持在Sleep狀態(tài),直到連接超時或被關(guān)閉。

Mysql通過wait_timeout 、interactive_timeout 這兩個參數(shù)完成對Sleep進(jìn)程的釋放,當(dāng)sleep的時間達(dá)到wait_timeout 、interactive_timeout的閾值時會被mysql自動清理。

注意:這里引申一個概念:一般數(shù)據(jù)庫與中間件連接的時候都會通過連接池去管理客戶端對數(shù)據(jù)庫發(fā)起的連接,在代碼里conn.close()方法,在實(shí)際意義上只是把這個連接交還給了連接池,和數(shù)據(jù)庫的連接并沒有真正斷開。wait_timeout時間到了以后,服務(wù)端MySQL斷掉連接后,并不會通知(也沒法通知)連接池,所以連接池里的連接如果被拿去使用時,就會產(chǎn)生Communications link failure 報錯。

處理方式:

1.查看sleep默認(rèn)的超時時間SHOW GLOBAL VARIABLES LIKE 'wait_timeout'; SHOW GLOBAL VARIABLES LIKE 'interactive_timeout';

2.設(shè)置超時時間編程30秒,注意:必須兩個參數(shù)同時設(shè)置才會生效。set global wait_timeout=30;set global interactive_timeout=30;

具體的參數(shù)值要結(jié)合連接池的超時時間,最大sql執(zhí)行時間,業(yè)務(wù)的最大持續(xù)時間來設(shè)定。比如阿里的默認(rèn)配置時間是120s。對于高并發(fā)業(yè)務(wù)對于這兩個值的配置建議在1~3分鐘之內(nèi)。

建議寫到mysql配置文件中否則下次重啟mysql參數(shù)失效。

手動處理sleep進(jìn)程的方法:

1.查詢需要kill掉的無效連接進(jìn)程SELECT GROUP_CONCAT(CONCAT('kill ',Id) SEPARATOR';') AS cmd FROM information_schema.processlist WHERE command='Sleep'USER='root'AND command='Sleep'and db = 'test';

具體條件根據(jù)實(shí)際情況修改

2.執(zhí)行查詢結(jié)果

注意:查詢結(jié)果會顯示大量的kill語句,受到字符長度限制在執(zhí)行后驗(yàn)證并繼續(xù)執(zhí)行.

3.重新執(zhí)行查詢驗(yàn)證sleep是否消失SELECT*FROMinformation_schema.processlist WHERE USER='root'AND command='Sleep'and db = 'test'order by time desc;

具體條件根據(jù)實(shí)際情況修改

配置示例

3.最佳實(shí)踐:

3.1 MySQL參數(shù)設(shè)置

wait_timeout :900秒 #通常設(shè)置為900秒超時,各業(yè)務(wù)線可以根據(jù)實(shí)際情況調(diào)整
interactive_timeout :900秒 #建議和wait_timeout保持一致

3.2 jdbc端設(shè)置:

jdbc.connection-pool.max-idle-time  <  wait_timeout
jdbc.connection-pool.idle-test-interval  <  interactive_timeout

3.3 apache連接池配置

validationQuery = "SELECT 1"  驗(yàn)證連接是否可用,使用的SQL語句
testWhileIdle = "true"      指明連接是否被空閑連接回收器(如果有)進(jìn)行檢驗(yàn).如果檢測失敗,則連接將被從池中去除.
timeBetweenEvictionRunsMillis = "30000"  每30秒運(yùn)行一次空閑連接回收器
minEvictableIdleTimeMillis = "1800000"  
//1000 * 60 * 30  連接在池中保持空閑而不被空閑連接回收器線程,(如果有)回收的最小時間值,單位毫秒
池中的連接空閑30分鐘后被回收,默認(rèn)值就是30分鐘。
numTestsPerEvictionRun="5" 在每次空閑連接回收器線程(如果有)運(yùn)行時檢查的連接數(shù)量,默認(rèn)值就是5.

總結(jié)

到此這篇關(guān)于mysql5.7大量sleep進(jìn)程常規(guī)處理方式及配置的文章就介紹到這了,更多相關(guān)mysql5.7大量sleep進(jìn)程處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • MySQL MHA 高可用集群搭建過程詳解

    MySQL MHA 高可用集群搭建過程詳解

    MHA 是一套優(yōu)秀的、開源的 MySQL 高可用性解決方案,它的核心目標(biāo)是在 MySQL 主從復(fù)制環(huán)境中,實(shí)現(xiàn)主庫故障時的自動故障轉(zhuǎn)移和快速切換,盡可能保證數(shù)據(jù)庫服務(wù)的連續(xù)性,這篇文章主要介紹了MySQL MHA 高可用集群搭建指南,需要的朋友可以參考下
    2025-10-10
  • 教你3個步驟為Mysql添加只讀賬號

    教你3個步驟為Mysql添加只讀賬號

    只要公司有數(shù)據(jù)團(tuán)隊(duì)的那免不了讓這幫家伙把全公司的數(shù)據(jù)庫數(shù)據(jù)都摸一遍,但是要是直接把root用戶給了他們有點(diǎn)危險,于是只能給設(shè)權(quán)限,這篇文章主要給大家介紹了關(guān)于如何通過3個步驟為Mysql添加只讀賬號的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • 查詢MySQL中的樹型表兩種方法

    查詢MySQL中的樹型表兩種方法

    在 MySQL中查詢樹型表(即具有層級結(jié)構(gòu)的表)可以使用遞歸查詢或者使用嵌套集模型,下面介紹兩種方法查詢MySQL中的樹型表,感興趣的朋友一起看看吧
    2024-01-01
  • 詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法

    詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法

    MySQL默認(rèn)是不區(qū)分大小寫的,這個涉及到collate字符集與校驗(yàn)規(guī)則方面的知識,下面會講到,這里我們就來詳解MySQL查詢時區(qū)分字符串中字母大小寫的方法.
    2016-05-05
  • 使用MySQL實(shí)現(xiàn)高效的用戶昵稱模糊搜索

    使用MySQL實(shí)現(xiàn)高效的用戶昵稱模糊搜索

    在大型系統(tǒng)中,用戶表中的昵稱字段需要支持高效的模糊搜索,并且必須處理包含特殊字符的查詢,本文將介紹一種在MySQL中實(shí)現(xiàn)高效模糊搜索的解決方案,能夠支持特殊字符,并且利用MySQL自身的全文索引機(jī)制來優(yōu)化搜索性能,需要的朋友可以參考下
    2024-05-05
  • 詳談mysql order by in 的字符順序(推薦)

    詳談mysql order by in 的字符順序(推薦)

    下面小編就為大家?guī)硪黄斦刴ysql order by in 的字符順序(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • MySQL sql_mode從入門到精通

    MySQL sql_mode從入門到精通

    sql_mode是MySQL中語法校驗(yàn)、數(shù)據(jù)校驗(yàn)、行為兼容的核心配置,本文就來詳細(xì)的介紹一下MySQL sql_mode的使用,感興趣的可以了解一下
    2026-03-03
  • MySQL壓縮表創(chuàng)建方法示例詳解

    MySQL壓縮表創(chuàng)建方法示例詳解

    本文給大家介紹MySQL壓縮表創(chuàng)建方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-09-09
  • MySQL 中只統(tǒng)計(jì)周一到周五的到訪數(shù)據(jù)(案例演示)

    MySQL 中只統(tǒng)計(jì)周一到周五的到訪數(shù)據(jù)(案例演示)

    文章介紹了如何在醫(yī)院信息系統(tǒng)中高效統(tǒng)計(jì)工作日到訪人數(shù),避免全表掃描和索引失效的問題,通過生成列和使用日期維表,可以實(shí)現(xiàn)快速查詢和報表分析,適用于大型醫(yī)院的復(fù)雜數(shù)據(jù)量,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • mysql+shardingSphere的分庫分表實(shí)現(xiàn)示例

    mysql+shardingSphere的分庫分表實(shí)現(xiàn)示例

    分庫分表是一種場景解決方案,它的出現(xiàn)是為了解決一些場景問題的,本文主要介紹了mysql+shardingSphere的分庫分表實(shí)現(xiàn)示例,具有一定的參考價值,感興趣的可以
    2024-04-04

最新評論

尚志市| 清流县| 鄯善县| 专栏| 金山区| 册亨县| 闵行区| 万盛区| 徐州市| 寻甸| 泽库县| 曲周县| 玉屏| 兰西县| 竹山县| 洛阳市| 亚东县| 楚雄市| 普洱| 南川市| 巴楚县| 新宁县| 左云县| 陵川县| 竹山县| 陆良县| 周至县| 库车县| 黄石市| 南陵县| 合山市| 泰和县| 南陵县| 浮山县| 凤山县| 盐池县| 扎囊县| 湘乡市| 永宁县| 苏州市| 赤城县|