Mysql server(ubuntu) ram 使用率在重新啟動後變高。2 天后重新啟動後進行交換
我在VM上有一個Mysql伺服器
16核CPU
59 GB 記憶體
Ubuntu 13.10
mysql版本是5.5.37
這是一個僅用於報告目的的從數據庫。
因為原來的Mysql innodb_buffer_pool_size(49G) 太大了,伺服器使用SWAP。所以我將 innodb_buffer_pool_size 設置為 35G,然後重新啟動伺服器(10/12)。但是,RAM 使用量逐漸變高,兩天后幾乎達到物理 RAM 的 90%。我認為這是不合理的,因為 innodb_buffer_pool_size 是 35G 並且其他 Mysql 操作不會使用這麼多 RAM。
如果伺服器有交換,我擔心數據庫性能。但我不知道如何停止 Mysql ram 的使用。我不明白為什麼它逐漸使用這麼多記憶體。
伺服器在幾天后第二次重新啟動(11/28)後開始交換
有人可以給我一些提示以確保 mysql 伺服器不會逐漸使用高 RAM 嗎?或者有什麼我需要考慮的。ubuntu 是否有一些會導致 RAM 消耗的設置?
非常感謝。
mysql配置:
https://gist.github.com/crokobit/7c329e48dc5ab234c0b1812248ff77cf
從您的 my.cnf 中註釋掉這些行:
sort-buffer-size = 4M read-buffer-size = 2M read-rnd-buffer-size = 2M join-buffer-size = 4M
如果是專用的 mysql 伺服器,請將緩衝池設置為 50G,檢查 NUMA 設置並進行相應配置。
將系統 swappiness 更改為 1(如果您使用的是較新的核心)
升級到最新的 mysql 版本,你的可能會受到一些記憶體洩漏錯誤的影響。
沒有神奇的“使用更少的 RAM 開關”,因此通常的系統管理員應用了解正在發生的事情並採取適當的措施。科學方法是你的朋友
- 安裝監控
- 收集數據(來自監控和其他工具)
- 分析數據
- 根據分析進行更改
- 監控更改的效果
- 根據需要沖洗並重複
- 記錄最終奏效的方法。
如果您自己無法管理,那麼請聘請專業人士(DBA/系統管理員),他可能最終會比您自己嘗試做的更便宜\