linux内存的使用详情?

  1. 云栖社区>
  2. 博客>
  3. 正文

linux内存的使用详情?

club111 2013-11-28 15:58:09 浏览470
展开阅读全文

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

详解:

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

used:64077   分配给buffercache的总大小。

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

Shared0多个进程共享的内存总数

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

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

 

-/+buffers/cache行:

Used6256 实际使用的cachebuffer的总大小,即内存使用的总大小。

Free58121 未被使用的bufferscache和未分配的内存之和,系统当前实际可用内存。

对应关系如下:

实际可用的内存大小=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倍的swap4G 以上配置1倍。

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

   


网友评论

登录后评论
0/500
评论
club111
+ 关注