2014-02-17 91 views
0

我们正在运行我们的J2EE应用这是一个m1.large例如 其配置获取有关Amazon EC2实例的服务器内存用法

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 

现在,当我检查存储器使用量的Amazon EC2实例服务器上我的服务器我发现可用内存为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和生产

Apatche

的Tomcat版本7(用于)

Memcached的:有更好的表现

在此先感谢..

回答

1

作为free命令的输出的详细信息显示以上,5 GB的数据被高速缓存。这是在RAM中缓存的硬盘的一部分。 Linux会根据应用程序的需要释放内存。更多信息请见answer。信任Linux,他知道内存管理并释放缓存的空间,因为应用程序需要RAM。

+0

谢谢你提到的答案,这给我更清晰的画面.. –

+0

这意味着我有5GB的可用内存在我的服务器上吗?因此我不需要额外的内存...... –

+0

是的。这意味着现在你有5GB的磁盘缓存,它将在应用程序需要时立即释放。所以你现在不需要购买额外的RAM。 – ahmad

2

通常内核保留所有的内存和根据请求和需求开始分配给应用程序。因此,所有剩余的内存被分配缓冲器和高速缓冲存储器,它是由内核要求权利在任何给定时间,以获取有关内存利用率cat /proc/meminfo

+0

感谢您的回复......您的意思是剩余内存被内核使用吗? –

+0

它是由内核作为缓冲区和可回收高速缓存分配 –

+0

好所以它认为是使用的内存,实际上不使用正确..? –