我们在 Amazon EC2 实例服务器上运行我们的J2EE应用程序,该服务器是 m1.large 实例 配置为
Instance Family
Instance Type Processor Arch vCPU ECU Memory (GiB) Instance Storage (GB) EBS-optimized Available Network Performance
General purpose m1.large 64-bit 2 4 7.5 2 x 420 Yes Moderate
现在,当我查看服务器的内存使用情况时,我发现可用内存为0,如下所示
total used free shared buffers cached
Mem: 7 6 0 0 0 5
-/+ buffers/cache: 1 5
Swap: 0 0 0
在调查服务器上的位后,我得到了以下详细信息......
Process Name Number of processes Memory usage per process Total memory usage
java 2 523.379 MB 1046.76 MB
httpd 24 3.47965 MB 83.5117 MB
memcached 1 13.7227 MB 13.7227 MB
sshd 3 2.91016 MB 8.73047 MB
rsyslogd 1 5.51953 MB 5.51953 MB
pickup 1 3.25781 MB 3.25781 MB
udevd 2 1.24805 MB 2.49609 MB
master 1 2.84375 MB 2.84375 MB
qmgr 1 2.77734 MB 2.77734 MB
crond 1 1.30078 MB 1.30078 MB
auditd 1 0.789062 MB 0.789062 MB
1.5 GB 的总用法现在我无法理解 5.33 GB 的位置打算用 我怎样才能找到有关它的详细信息,有人可以帮我解决这个问题
注意: 我们在同一台服务器上运行两个tomcat用于质量检查和生产
Apatche : 2
Tomcat版本: 7(两者兼备)
Memcached :为了获得更好的效果
先谢谢..
答案 0 :(得分:2)
美国内核保留所有内存并根据请求和需求开始分配给应用程序。所以剩下的所有内存都被分配了缓冲区和缓存,内核可以在任何给定的时间使用它来获取有关内存利用率的更多信息cat /proc/meminfo
答案 1 :(得分:1)
由于free
命令的输出如上所示,缓存了5 GB的数据。这是硬盘的一部分,它被缓存在RAM中。 Linux将在应用程序需要时释放内存。有关详细信息,请参阅此answer。信任linux,他知道内存管理并将释放缓存空间,因为应用程序需要RAM。