首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL使用的内存比它多?

问MySQL使用的内存比它多?
EN

Server Fault用户
提问于 2015-10-19 20:05:19
回答 1查看 972关注 0票数 0
代码语言:javascript
复制
FROM: -- MYSQL PERFORMANCE TUNING PRIMER --
MySQL Version 5.6.24-72.2-log x86_64
...
MEMORY USAGE
Max Memory Ever Allocated : 70.35 G
Configured Max Per-thread Buffers : 972 M
Configured Max Global Buffers : 70.04 G
Configured Max Memory Limit : 70.99 G
Physical Memory : 125.88 G
Max memory limit seem to be within acceptable norms
...

最高报告如下:

代码语言:javascript
复制
3642 mysql     20   0  146g 120g 6300 R 48.1 95.8 125131:57 mysqld

如果根据调谐器,MySQL永远不能使用超过70.99G。我还能检查MySQL进程正在做什么来使用内存的两倍以上吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-10-19 20:43:10

你混淆了三种完全不同的测量方法:

  1. MySQL需要多少分配的内存。这就是您要配置为71 to的内容。
  2. MySQL使用了多少虚拟内存。这是146 is。没有理由要关心这个,虚拟内存实际上是自由的。(例如,内存映射文件将增加虚拟内存消耗。)
  3. 操作系统决定给MySQL多少物理内存。这是120 is。如果程序不承受内存压力,操作系统通常会给程序提供比它们要求的更多的物理RAM,并且认为它可以减少分页量。在不受内存压力的情况下,物理内存的使用率上升到接近虚拟内存的水平并不少见。

操作系统可以完成回收物理内存的工作,但它没有做到这一点,原因有三:

  1. 这样做是徒劳无功的,因为没有必要这样做。
  2. 这样做会增加MySQL将经历的页面错误,因为如果它访问了任何这些虚拟页面,并且没有映射到物理内存,就会导致页面错误。
  3. 这样做不会使以后将该内存用于其他事情变得更加容易,因为操作系统将不得不努力将其从免费转换为使用。

如果您将系统置于内存压力之下,这将迫使操作系统回收物理内存。您应该看到物理RAM的使用下降到了您配置的级别,但是页面错误的数量可能会有所增加。

所以你所观察到的一切都不表明有什么不对。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/730047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档