
我們在 CentOS 上運行 Maria DB 10.6.9,我們觀察到它持續增加記憶體使用量。伺服器規格:RAM - 128 GB vCPU - 48 個交換 - 100 GB
我們已將 innodb_buffer_pool 配置為 65 GB
我們繼續看到掉期繼續增加。
該伺服器專用於 Mariadb,除了 Mariadb 之外,沒有其他應用程式在該伺服器上運行。
我們的負載在晚上減弱,但我們似乎沒有看到 MariaDB 恢復並釋放任何記憶體。
我們有一個運行 MySQL 5.7.38 的類似資料庫伺服器,沒有看到類似的問題。
任何可以幫助我們理解以下內容的見解將不勝感激:
- mariadb 中的內存在使用什麼?
- 哪些表加載到記憶體中可能會導致更高的記憶體使用率?
- 如何進一步分析任何可以讓我們深入了解 mariadb 記憶體使用情況的工具?
您可能需要任何其他資訊來幫助您更好地了解我們的情況嗎?
目前 Innodb 狀態如下: Innodb狀態
[要求提供更多資訊]
答:https://justpaste.it/cs5vw
乙:https://justpaste.it/9868l
C:https://justpaste.it/8q99c
d:https://justpaste.it/byhv5
乙:https://justpaste.it/cgnum
G:https://justpaste.it/ba5if
最高:https://justpaste.it/dd57f
附加資訊第 2 部分
1)https://jpst.it/30ItC- 頂部 -b -n 1
2)https://jpst.it/30OBo- 頂部 -b -n 1 -H
3)https://jpst.it/30OGm- ulimit -a
4)https://jpst.it/30OKb- iostat -xm 5 3
5)https://jpst.it/30OME-df -h
6)https://jpst.it/30OPx- 自由 -h
7)https://jpst.it/30OQF- 貓/proc/meminfo
8)https://jpst.it/30OTB-df-i
答案1
記憶體利用率的可能原因,
我們通常會看到 com_perpare_sql、com_execute_sql 和 com_dealloc_sql 上的平衡計數。在您顯示的全域狀態 com_dealloc_sql(關閉)中,錯過了 151,033 次,這表示資源在 36 天內未釋放。
我們通常會看到 com_stmt_prepare、com_stmt_execute 和 com_stmt_close 的計數平衡。在您的顯示全域狀態中,com_stmt_close 被錯過了 373.474 次,這表示資源在 36 天內沒有釋放。
每小時有 68,677 個 aborted_clients 事件計數 78 個,這可能有助於觀察。
有時可以防止平均每 27 秒回滾一次的 com_rollback 計數為 117,323。回滾處理是資源密集的。搜尋「如何避免 mysql 回滾」。
請查看個人資料以獲取聯絡資訊。可以調整許多全域變數以提高效能。