mysql記憶體釋放 MySQL記憶體不釋放

2021-10-17 11:55:49 字數 1177 閱讀 4261

歡迎進入linux社群論壇,與200萬技術人員互動交流 >>進入 連線了一下,並進行了一次查詢操作 (root:nj-245:thu apr 24 16:38:38 2014)[information_schema] select count(*) from client_statistics; +----+ | count(*) | +----+ | 5 | +----+ 1 row i

歡迎進入linux社群論壇,與200萬技術人員互動交流 >>進入

連線了一下,並進行了一次查詢操作

(root:nj-245:thu apr 24 16:38:38 2014)[information_schema]> select count(*) from client_statistics;

| count(*) |

| 5 |

1 row in set (0.01 sec)

發現資料有增長,再次進行幾次查詢,發現每次查詢都會有增長,這個正常現象麼?我修改了下主機名進行了再次查詢,發現表資料不再增長。

修改方法:主機名需要小於16位元組。

目前在5.5和5.6版本上進行了測試,發現這個表資料為空,因此這個問題可能是在5.0版本上面的乙個bug.

總結:本次問題現象主要是:記憶體異常被mysql占用不釋放並持續**,更換過程式和資料庫伺服器仍沒有效果,伺服器資料量很小,innodb buffer空閒很大。

問題原因:由於資料庫自身的統計資料表information_schema.client_statistics 資料量過大導致記憶體占用,client_statistics是一張記憶體表。

問題處理方法:由於client_statistics表裡面的host列是16個位元組的,因此如果主機名過長,會導致客戶端每一次的操作都會在表裡面新增一條資料,無論操作是否成功。因此只需要修改連線的主機名不要超過16位就不會導致記憶體占用不釋放的問題。

思考:修改了預設的東西,需要在小部分伺服器上進行測試,並詳細記錄修改後的異常,用於對比不同伺服器之間的差別。

延伸:client_statistics 用於統計客戶端連線,目前5.5、5.6以及maria已經將client欄位公升級為64個位元組,且該統計功能預設關閉,所以如果大家有統計需要,一定要記得主機名不能大於64個位元組!

MySQL記憶體不釋放

前幾天業務線發現一例mysql資料庫記憶體增長異常案例,現象如下 資料庫版本 percona mysql 5.0.67 資料量 670m 記憶體大小 16g innodb buffer pool size 4g 其它回話記憶體分配並不大,基本在100m以內,並且連線數非常少 伺服器負載不高,開啟bi...

linux如何手動釋放記憶體?為什麼要釋放記憶體?

前言 當在linux下頻繁訪問檔案後,物理記憶體會很快被用光,當程式結束後,記憶體不會被正常釋放,而是一直作為caching。這個問題,貌似有不少人在問,不過都沒有看到有什麼很好解決的辦法。那麼我來談談這個問題怎麼解決?proc是乙個虛擬檔案系統,可通過對它的讀寫操作做為與kernel實體間進行通訊...

mysql儲存過程釋放 mysql儲存過程筆記

日期型別 addtime date2 time interval 將time interval加到date2 convert tz datetime2 fromtz totz 轉換時區 current date 當前日期 current time 當前時間 current timestamp 當前時...