故障分析 | 數(shù)據(jù)庫服務(wù)器內(nèi)存不足一例分析
瀏覽量: 次 發(fā)布日期:2023-09-14 20:03:51
故障分析 | 數(shù)據(jù)庫服務(wù)器內(nèi)存不足一例分析
作者:付祥
現(xiàn)居珠海,主要負(fù)責(zé) Oracle、MySQL、mongoDB 和 Redis 維護(hù)工作。
本文來源:原創(chuàng)投稿
* 愛可生開源社區(qū)出品,原創(chuàng)內(nèi)容未經(jīng)授權(quán)不得隨意使用,轉(zhuǎn)載請聯(lián)系小編并注明來源。
監(jiān)控告警某臺機(jī)器空閑內(nèi)存低于10%,執(zhí)行top命令,按內(nèi)存降序排序,部分輸出如下:
total=32G,used=19G,buff/cache=11G,available=3G,最耗內(nèi)存進(jìn)程為 MySQL、Redis,總計(jì)約18.2G,其他進(jìn)程占用內(nèi)存都比較低,buff/cache 內(nèi)存中只有3G是有效的,剩余8G內(nèi)存去哪里?
執(zhí)行 free 命令進(jìn)一步查看:
其中shared占用竟然占用了8G內(nèi)存,通過man查看幫助:
shared Memory來源于/proc/meminfo中Shmem,被tmpfs使用,df -h查看:
目錄/run使用了8.6G內(nèi)存,和shared占用內(nèi)存一致,內(nèi)存都消耗到哪些子目錄了?
內(nèi)存主要消耗在/run/systemd/users和/run/log/journal目錄,占用內(nèi)存分別為7126M、1624M,較為異常的是/run/systemd/users占用內(nèi)存過高,繼續(xù)分析這個目錄下有哪些文件
乍一看,只有一個文件占用約40k,這和du統(tǒng)計(jì)的差異也太大了吧,是不是有隱藏文件:
不看不知道,一看嚇一跳,隱藏文件數(shù)高達(dá)30w+,最早的文件有2018年的,最新的文件今天產(chǎn)生的,隨便打開一個文件看看:
保存的是root用戶session信息,loginctl查看session信息:
root用戶session數(shù)竟然高達(dá)2131個,隨便拿一個session看看:
crond產(chǎn)生的session,這些session都沒有分配相關(guān)進(jìn)程,當(dāng)前狀態(tài)為active,按session排序后,挑選最近的session查看,都是2018年產(chǎn)生的:
做了一個定時(shí)任務(wù)測試,session能正常分配進(jìn)程,任務(wù)完成后session關(guān)閉:
個人覺得可選解決方案如下:1、服務(wù)器上主要服務(wù)為MySQL和Redis,MySQL作為從庫使用,未承載業(yè)務(wù)讀流量,Redis近期將會遷移,/run/systemd/users目錄占用內(nèi)存雖然在增長,5年了也只占用8G,增量很緩慢,故可以在線收縮MySQL innodb_buffer_pool_size使用內(nèi)存,釋放一部分內(nèi)存給操作系統(tǒng),等Redis遷移了再做機(jī)器重啟處理。2、假設(shè)主機(jī)不可以重啟,通過lsof可知這些隱藏文件當(dāng)前未被使用,故可以遷移到其他磁盤目錄,看看是否能達(dá)到釋放內(nèi)存目的,且這些session都是crond 2018年產(chǎn)生的,并未分配相關(guān)進(jìn)程,故通過loginctl kill-session ID干掉。目前采取方案1處理。
本文關(guān)鍵字:#memory# #tmpfs# #crond#
文章推薦:
MySQL 相同 SQL 不同環(huán)境執(zhí)行時(shí)間不一樣案例分析
MySQL 從機(jī)故障重啟后主從同步報(bào)錯案例分析mysql 5.6 升級到 8.0 失敗一例處理
關(guān)于SQLE愛可生開源社區(qū)的 SQLE 是一款面向數(shù)據(jù)庫使用者和管理者,支持多場景審核,支持標(biāo)準(zhǔn)化上線流程,原生支持 MySQL 審核且數(shù)據(jù)庫類型可擴(kuò)展的 SQL 審核工具。
SQLE 獲取類型地址版本庫https://github.com/actiontech/sqle文檔https://actiontech.github.io/sqle-docs-cn/發(fā)布信息https://github.com/actiontech/sqle/releases數(shù)據(jù)審核插件開發(fā)文檔https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/auditplugin_development.html更多關(guān)于 SQLE 的信息和交流,請加入官方QQ交流群:637150065...
. 達(dá)夢數(shù)據(jù)庫重啟,達(dá)夢數(shù)據(jù)庫重啟操作指南與注意事項(xiàng)
. 數(shù)據(jù)庫論文參考文獻(xiàn),數(shù)據(jù)庫論文參考文獻(xiàn)綜述
. 控制器壞了如何修復(fù)視頻,控制器故障排查與視頻修復(fù)技巧解析
. 希捷硬盤數(shù)據(jù)恢復(fù) 華軍,專業(yè)方法與案例分析
. 聯(lián)想筆記本硬盤損壞,聯(lián)想筆記本硬盤故障排查與維修指南
. 內(nèi)存數(shù)據(jù)庫排行,揭秘行業(yè)領(lǐng)先者
. 達(dá)夢數(shù)據(jù)庫comment報(bào)錯,達(dá)夢數(shù)據(jù)庫comment錯誤解析與應(yīng)對策略
. 磁盤陣列壞了怎么修復(fù)啊,RAID磁盤陣列故障診斷與修復(fù)全攻略
. 戴爾筆記本硬盤損壞怎么辦,戴爾筆記本硬盤故障排查與修復(fù)指南
. 移動硬盤維修價(jià)目表,價(jià)格影響因素與故障類型
. 達(dá)夢數(shù)據(jù)庫啟動過程中會加載哪些文件,達(dá)夢數(shù)據(jù)庫啟動文件加載解析
. 數(shù)據(jù)恢復(fù)中心有哪些,揭秘硬盤故障與數(shù)據(jù)丟失的解決方案n2. 硬盤數(shù)據(jù)恢復(fù)攻略:數(shù)據(jù)恢
. 磁盤陣列常見故障,RAID磁盤陣列故障解析與應(yīng)對策略
. 硬盤數(shù)據(jù)恢復(fù)re,技術(shù)原理、方法與案例分析
. 戴爾筆記本硬盤損壞修復(fù),戴爾筆記本硬盤故障排查與修復(fù)指南
. oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù),Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)策略與實(shí)戰(zhàn)指南
. 硬盤數(shù)據(jù)恢復(fù)一般多久,不同故障類型及恢復(fù)時(shí)長分析
. hp zhan 恢復(fù)系統(tǒng),輕松應(yīng)對故障與重置問題
. 壞道硬盤數(shù)據(jù)恢復(fù),從原因分析到成功案例解析