esi*_*ver 14 mysql memory-leaks memory-management amazon-web-services amazon-rds
伙计们,
有人可以在运行Mysql的Amazon RDS上解释这种内存消耗模式吗?在此图中,我在03:30升级到具有34GB可用内存的db.m2.2xlarge.您可以非常清楚地看到切换.当客户端开始连接并命中该实例时,Freeable内存急剧下降到5GB,现在它正在徘徊.在我之前的数据库实例大小之间的升级中,我看到了相同的模式,直到可释放的内存降到1GB以下并无限期地在那里盘旋.
这个实例在03:30和07:30之间做什么?为什么不释放未使用的内存,因为它可用?我想我希望这个图形是波形,对应于使用和流量模式,vs和指数衰减形状,这表明它是一个超级懒惰和/或破碎的垃圾收集算法.
另请注意,大约有2/3的DB操作是写入,1/3是读取,并且DB前面有大约2GB的内存缓存.

Jos*_*hua 13
MySQL在内存中维护最近使用的表,查询和结果的缓存,以便返回更快的结果.例如,如果您从客户端查询"select*from id = 1的公司"100万次,则只有第一个查询需要转到磁盘,下一个999,999将直接来自RAM缓存.MySQL没有理由在知道它需要更多内存之前使这个缓存失效,因此它会保存所有内容,直到它需要释放RAM用于其他工作或更频繁使用的结果.
我并不认为自己是专家 - 我理解数据库查询缓存优化是一项非常复杂和深入的科学.Oracle,Microsoft和其他公司的程序员花了数年时间研究管理缓存空间的最佳方法,因此很难从外部预测.
| 归档时间: |
|
| 查看次数: |
5134 次 |
| 最近记录: |