几个月来,我的物理共享托管服务器出现问题。我的专用服务器上有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?
答案 0 :(得分:4)
Linux积极地将空闲内存用于缓存和缓冲区。如果你的应用程序需要那个内存,那么内核很乐意将其交给你。
查看来自free -m
的第3个输出行,标记为-/+ buffers/cache:
的那一行 - 这是最准确的内存占多少&# 34;自由"