linux内存使用详解

时间 : 14-06-14 栏目 : linux运维 作者 : 老薛 评论 : 0 点击 : 851 次

中午吃饭回来,hadoop组的同事让帮忙看看线上集群的监控情况,其中的rrd图有cpu的和内存的,当时就内存的使用监控情况讨论了一番。大多数的监控:nagios,ganglia,cacti等监控软件它们的监控数据跟用系统命令看到的是一样的,也就是说,你对系统命令取道的数值弄清楚后,监控图像里面的各项指标,也就明白了。下面以内存查看命令为例:

009

详解:

total: 64377   服务器物理内存大小为64377M

used:64077   分配给buffer和cache的总大小。

Free:300未被分配的内存大小。

Shared:0多个进程共享的内存总数

buffers:4034系统分配的但未用的buffer大小

cache::53786 系统分配的但未用的cache大小

 

-/+buffers/cache行:

Used:6256 实际使用的cache和buffer的总大小,即内存使用的总大小。

Free:58121 未被使用的buffers与cache和未分配的内存之和,系统当前实际可用内存。

对应关系如下:

实际可用的内存大小=58121= Free(Mem)+[buffers(Mem)+Cached(Mem)]

=300+4034+53786

已分配的内存大小=64077= Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)

=6256+4034+53786

物理内存总大小=64377= used(-/+ buffers/cache) + free(-/+ buffers/cache)

=6256+58121

关于Swap的说明:

分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,一般来说对于4G 以下的物理内存,配置2倍的swap,4G 以上配置1倍。

另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw002/113.html

linux内存使用详解:等您坐沙发呢!

发表评论

0 + 6 = ?


博主微信号,很高兴为您提供帮助

随便看看

0