CentOS内存使用情况。大约22GB的RAM使用22GB可用

时间:2014-03-13 22:50:21

标签: mysql apache memory-management shared

几个月来,我的物理共享托管服务器出现问题。我的专用服务器上有24Gb的RAM,内核为8核。我有内存泄漏问题。设置可能有问题,或者使用硬件配置。我需要找到原因。重新启动我的服务器后,我有大约22Gb的可用内存,然后在白天它的所有时间都在增加。我正在通过top,sar,ps等其他任务经理观看,但我找不到完全占用记忆的任务。现在我从24Gb只有大约40 Mb的可用内存。交换仅512 MB,但sar显示我0.2%的使用量。

root@srv [~]# free -m
             total       used       free     shared    buffers     cached
Mem:         24149      23689        459          0       2958      17862
-/+ buffers/cache:       2868      21280
Swap:          513          0        512

顶部结果:

Mem:  24728844k total, 24463380k used,   265464k free,  3029508k buffers
Swap:   525916k total,      816k used,   525100k free, 18316304k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6307 someuser  20   0  151m  55m 6068 S 18.0  0.2   0:00.54 php
 6313 someuser  20   0  144m  50m 5908 R 12.3  0.2   0:00.37 php
 6316 someuser  20   0  141m  46m 5700 R  9.3  0.2   0:00.28 php
 6991 mysql     20   0  545m 249m 5740 S  9.0  1.0  24:41.08 mysqld
 6310 someuser  20   0  713m  62m  30m S  7.6  0.3   0:00.23 php
   25 root      20   0     0    0    0 S  0.3  0.0   0:07.15 ksoftirqd/6
 5012 nobody    20   0 71220 5580 1868 S  0.3  0.0   0:00.04 httpd
 6036 nobody    20   0 71372 5640 1768 S  0.3  0.0   0:00.01 httpd
 6056 root      20   0 12804 1228  840 R  0.3  0.0   0:00.05 top

我知道,有些应用程序可以使用大量内存,但它们在哪里?停止Apache或MySQL也没有帮助。我有另一台64Gb RAM的服务器。经过大约一周的可中断运行和艰苦使用后,64Gb可提供约30Gb。为什么这样?如何计算物理内存\使用缓冲区之间的比例等?它如何减少?如何确定每个应用程序使用多少资源?如果我安装一个需要例如需要的应用程序,该怎么办? 6GB的RAM?

1 个答案:

答案 0 :(得分:4)

Linux积极地将空闲内存用于缓存和缓冲区。如果你的应用程序需要那个内存,那么内核很乐意将其交给你。

查看来自free -m第3个输出行,标记为-/+ buffers/cache:的那一行 - 这是最准确的内存占多少&# 34;自由"

请参阅:http://www.linuxatemyram.com/