当前位置:首页 > 内存 > 正文

查看mysql内存占用

  • 内存
  • 2024-05-15 16:39:52
  • 3946

一、linux查看mysql占用多大空间

Linux进程从系统中进行内存分配是通过标准C库中的内存分配函数malloc来应用的,但在与内核的实际交互之间还存在另一层,即内存分配管理器(memoryallocator)。常见的内存分配器有:ptmalloc(Glibc)、tcmalloc(Google)、jemalloc(FreeBSD)。MySQL默认使用glibc的ptmalloc作为内存分配器。

内存分配器采用内存池管理方式,位于用户系统的用户程序层和内核层之间。

为了保持高效的分配,分配器通常会提前从操作系统中使用一块内存。当用户程序使用和释放内存时,分配器会管理内存并使用某种算法来确定是否将其返回给操作系统。这样做的主要好处是可以避免用户程序重复调用系统内存进行分配,使得用户程序使用内存的效率更高、速度更快。

我对ptmalloc的内存分配原理了解不多,这里就不详细说了。

然而,如何选择这三个内存分配器,网上大多数信息都建议保留glibcm的原生ptmalloc,并使用jemalloc或tcmalloc作为默认分配器。因为ptmalloc的主要问题实际上是内存浪费、内存碎片以及因为拥塞而导致的性能问题,而jemalloc和tcmalloc针对内存碎片和多线程处理做了更好的优化。

目前jemalloc在Firefox、FaceBook等使用,MariaDB、Redis、Tengine推荐使用默认内存分配器,WebKit、Chrome则使用tcmalloc。,ETC。