我们正在 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 进行 QA 和生产
补丁 : 2
雄猫版本:7(两者)
Memcached : 为了更好的性能
提前感谢..
通常,内核会保留所有内存,并根据请求和需求开始分配给应用程序。 因此,所有剩余的内存都被分配了缓冲区和缓存,内核可以在任何给定时间声明这些缓冲区和缓存,以获取有关内存利用率的更多信息 cat /proc/meminfo
如上所示free
命令的输出,缓存了 5 GB 的数据。这是缓存在RAM中的硬盘的一部分。Linux 将在应用程序需要时释放内存。本答案中提供了更多信息。相信linux,他知道内存管理,并且会释放缓存的空间,因为应用程序需要RAM。