Linux 高内存使用率(最高总不匹配)

3 top process memory-usage

我有一个可怜的人 vps - 256MB 专用内存。我已经安装了 LAMP。服务器上目前还没有网站处于 UP 状态。

内存使用量仍然是 225MB(只有 31MB 可用)。

我已经使用 top 和另一种方法进行了测量。Top 说使用了大约 225mb,但如果我总结这些过程,它只有 20%。

我用来测量内存的另一个脚本:

#!/bin/bash
bean=`cat /proc/user_beancounters`
guar=`echo "$bean" | grep vmguar | awk '{ print $4;}'`
priv=`echo "$bean" | grep privvm | awk '{ print $2;}'`
let totl=guar/256
let used=priv/256
let free=$totl-$used
echo "VPS Memory:"
echo "  total: $totl mb   used: $used mb   free: $free mb"
Run Code Online (Sandbox Code Playgroud)

给出相同的结果(使用 225MB)。

我已经重新启动了服务器,但仍然使用了 225MB 内存。我怎样才能找到罪魁祸首的过程。请帮忙!

============

ps efax -o command,vsize,rss,%mem,size 的输出表明只有 20% (aournd 50MB) 被进程实际使用。

(由于内存不足,apt-get install imagemagick 失败。我想我需要使用更高的内存,如 512 MB。我认为失败可能是由于这种“虚假”内存使用)。

有什么方法可以知道内存是否确实可用作缓存(顶部显示缓冲区/缓存为 0 - 我听说如果 RAM 可用作缓存,它会显示为“缓冲区或缓存)。

free -m 的输出:

free -m
             total       used       free     shared    buffers     cached
Mem:           256        226         29          0          0          0
-/+ buffers/cache:        226         29
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

它显示的空闲缓冲区/缓存也为 29 MB :(

use*_*517 5

Linux 将使用尽可能多的 ram 作为缓存,如果其他进程需要更多内存,则该缓存将被放弃。看看这里了解更多信息。