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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql hugepage_因未配置Hugepage会话数添增悲剧案例

發布時間:2025/3/15 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql hugepage_因未配置Hugepage会话数添增悲剧案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天一朋友反饋他們的一個數據庫hang住了,通過ssh也不能登錄系統,他們沒有辦法重啟系統解決問題,現在想讓我幫忙找出問題原因

分析awr得出

詢問朋友,他們的庫一般session保持在200個左右,這次突然飆升到750以上,屬于異常情況

分析監聽日志

看到在截圖的時間內,整體訪問較頻繁,某個ip訪問異常頻繁,通過這些信息,初步懷疑是用戶的數據庫內存使用完,導致系統數據庫hang住.

查看系統日志

Jun 26 14:35:55 result01 kernel: [5613531.566617] Free swap = 0kB

Jun 26 14:35:55 result01 kernel: [5613531.566618] Total swap = 2104504kB

Jun 26 14:35:55 result01 kernel: [5613531.566620] Free swap: 0kB

Jun 26 14:35:55 result01 kernel: [5613531.591073] 2359296 pages of RAM

Jun 26 14:35:55 result01 kernel: [5613531.591074] 318236 reserved pages

Jun 26 14:35:55 result01 kernel: [5613531.591075] 73353 pages shared

Jun 26 14:35:56 result01 kernel: [5613531.591076] 529 pages swap cached

Jun 26 14:35:56 result01 kernel: [5613531.591079] Out of Memory: Kill process 8904 (oracle) score 891 and children.

Jun 26 14:35:56 result01 kernel: [5613531.591201] Out of memory: Killed process 8904 (oracle).

Jun 26 14:35:56 result01 kernel: [5613531.592280] oracle invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0

通過這個日志看出系統內存和交換分區都使用完,因為內存不夠,系統開始kill掉部分oracle進程.通過這些確定是系統內存使用完導致hang住可以理解.

分析hang住原因

為什么session意外的從200添增到750的時候,系統內存被使用完

cat /proc/meminfo

MemTotal: 8164240 kB

SwapTotal: 2104504 kB

PageTables: 69732 kB

HugePages_Total: 0

HugePages_Free: 0

HugePages_Rsvd: 0

Hugepagesize: 2048 kB

sga_target=3674210304

pga_aggregate_target=1732247552

從這里得出幾個信息:

1.數據庫總內存8g,swap配置2g

2.數據庫未使用Hugepage

3.數據庫設置sga和pga信息

內存參數估算

數據庫總計占用內存為:(3674210304+1732247552)/1024/1024=5156M(pga可能未使用完,也可能超過)

結合實際sga_target=3674210304,會話數.

保守估計下Oracle進程占用的系統內存3674210304/(4*1024)*1.5*750/1024/1024=960M

估算如果使用Hugepage Oracle進程占用系統內存為:3674210304/(2*1024*1024)*1.5*750/1024/1024=1.9M

通過這里分析Oracle總占用內存為:5156+960=6116M

通過保守計算留給系統的內存大概為:1.8G左右

因為系統的其他操作,最終導致該系統內存耗完,系統和數據庫hang住

總結說明

這是一個實實在在因為linux中因為未配置Hugepage,因為用戶突增,導致系統內存消耗光,從而使得系統和數據庫hang住的例子.

這個庫因為sga不是非常大,所以Oracle占用系統內存不是高到離譜,如果sga配置為32g,1000個session,那就會占用12g的系統內存

通過這些可以看出在linux中配置Hugepage的優點:Hugepage不光是為了減輕cpu的負擔,還可以減少系統內存的消耗;在沒有極端的情況下,建議linux的數據庫系統配置Hugepage.

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql hugepage_因未配置Hugepage会话数添增悲剧案例的全部內容,希望文章能夠幫你解決所遇到的問題。

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