Linux系统内存占用90%以上 ?

问题:
[[email protected] zx_epp_db]# free -m
             total       used       free     shared    buffers     cached
Mem:         15953      14706       1246          0         39      12687
-/+ buffers/cache:       1979      13973
Swap:         8015         27       7988
--------------------------------------------------------------------------------------------------------------------------------------------

首先要明确一个问题:Linux系统内存占用90%以上,是否属于正常范围?网上有详细的解释,这属于正常现象~~~ 

Linux/Unix系统管理内存的方式和windows是不一样的,即便是一个负载很小的linux,跑几天后,内存占用量也将达到90%以上,即便无人访问,这个数字是完全正常的。但是,这个内存占用量不会达到100%的,每天夜里系统都会执行/etc/cron.daily进行内存优化。 

Linux/Unix系统是非常稳健的,虽然内存占用显示90%以上,但依然可保证365天以上无须重启。对于Linux系统,评估其压力的主要指标是最近5分钟的负载指数:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”这样的数字,分别表示5分钟内的、10分钟内的、15分钟内排队的进程数,只要第一个数字即5分钟内的负载不大于5,系统就是健康的,不用做任何维护;如果这个数字大于了5,那么通常系统速度就会变慢,一般有如下几种可能: 

1) 有程序占用大量CPU,使用top命令来检查(看看是否有java程序锁死之类的故障) 

2) 有程序占用大量内存,使得内存真正不够用了(这个才是真正需要加内存的时候),比如由于MySQL在较大负载下运行容量为GB级别的数据库导致内存不够用,需要给服务器插入更多物理内存 

3) 磁盘系统读写故障,IO吞吐错误造成CPU负载上升,需要光盘引导进入单用户模式扫描修复磁盘,修不好就只能更换新硬盘了 

因此,对于Linux/Unix系统内存占用的百分比,无须过于关心,一般检查系统负载参数即可 

但也可以手动进行内存释放,具体操作如下: 

1

2

[[email protected] mysql]# cat /proc/sys/vm/drop_caches

0

首先,/proc/sys/vm/drop_caches的值,默认为0

[[email protected] mysql]#  sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

[[email protected] mysql]# echo 3 > /proc/sys/vm/drop_caches
[[email protected] mysql]# cat /proc/sys/vm/drop_caches
3

将/proc/sys/vm/drop_caches值设为3


1

2

3

4

5

[[email protected] mysql]# free -m

             total       used       free     shared    buffers     cached

Mem:         15953       2914      13038          0          4         51

-/+ buffers/cache:       2858      13094

Swap:         8015         23       7992

再来运行free命令,发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.

时间: 2024-07-30 10:25:26

Linux系统内存占用90%以上 ?的相关文章

怎样正确查看Linux的内存占用情况

昨天下午客户那边反馈,说服务器里面32G的内存通过TOP查看,已经用了31G多的,让我处理解决.我当时过程过去一看,刚开始也认为是内存快满了,晚上回去做了个24小时的稳定性测试,探讨了Linux的Mem使用情况: 查看内存最方便的命令是free -m,如:[[email protected] ~]# free -m           total  used  free shared buffers cached       Mem: 1024  1005  19   0    9    782

C# WinForm应用程序降低系统内存占用方法总结

这篇文章主要介绍了C# WinForm应用程序降低系统内存占用方法总结,本文总结了9个方法,同时给出了一个定期清理执行垃圾回收代码,需要的朋友可以参考下 背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资

Linux 系统内存分析

1. 内存基本介绍 1.计算机基本结构: 电脑之父--冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器 如图: 输入设备:键盘鼠标等 CPU:是计算机的运算核心和控制核心,让电脑的各个部件顺利工作,起到协调和控制作用. 存储器:一系列的存储设备,硬盘,内存等 输出设备:如打印机,扬声器等 2.存储器: 我们看一下系统中存储器的层次结构: 图中L0-L5分别表示系统中所有存储器的层次结构,其中包括高速缓存,主存,磁盘等. 越上层的存储器造价越高,速度也越快,也更加靠近c

C# WinForm应用程序降低系统内存占用方法总结【转】

WinForm程序点用一直是个大问题,时间运行长了,越来越大,最近在网上发现个贴,试了上面方法,从进程来看,内存确实降下去了,效果还不错. 这里整理了一些网上关于Winform如何降低系统内存占用的资料,供参考: 1.使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多2.强制垃圾回收3.多dispose,close4.用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,

<linux>查看系统内存占用

1.查看内存情况 free -h 解释下基本概念 Mem 内存的使用信息Swap 交换空间的使用信息total 系统总的可用物理内存大小used 已被使用的物理内存大小free 还有多少物理内存可用shared 被共享使用的物理内存大小buff/cache 被 buffer 和 cache 使用的物理内存大小available 还可以被使用的物理内存大小(即系统可用内存约等于free+shared+buff/cache) 2.top查看内存占用,shift+m按MEN占用降序 top详解请参考:

正确计算linux系统内存使用率

参考:https://blog.gesha.net/archives/406/ 图中的例子很典型,就是:多数的linux系统在free命令后会发现free(剩余)的内存很少,而自己又没有开过多的程序或服务.对于上述的情况,正确的解释是:linux的内存管理机制与windows的有所不同.具体的机制我们无需知道,我们需要知道的是,linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化.内核会把剩余的内存申请为cached,而cached不属于free范畴.当系统运行时间较久,会发现cac

从Linux系统内存逐步认识Android应用内存

总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在Android开发时,管理好内存的分配及使用十分重要,而首先要做的应是认识内存. 这篇文章便是从Linux的系统内存划分开始,逐步介绍至Android应用的内存划分. 一 硬件上看内存划分   从硬件上看,内存分为两个部分:物理内存和SWAP区. SWAP区就是Linux下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(

Linux查看内存占用命令解析

$cat /proc/meminfoMemTotal:        2052440 kB //总内存MemFree:           50004 kB //空闲内存Buffers:           19976 kB //给文件的缓冲大小Cached:           436412 kB //高速缓冲存储器(http://baike.baidu.com/view/496990.htm)使用的大小SwapCached:        19864 kB //被高速缓冲存储用的交换空间大小

Android内存解析(一)—从Linux系统内存逐步认识Android应用内存

总述 Android应用程序被限制了内存使用上限,一般为16M或24M(具体看系统设置),当应用的使用内存超过这个上限时,就会被系统认为内存泄漏,被kill掉.所以在android开发时,管理好内存的分配及使用十分重要,而首先要做的应是认识内存. 这篇文章便是从Linux的系统内存划分开始,逐步介绍至Android应用的内存划分. 一 硬件上看内存划分 从硬件上看,内存分为两个部分:物理内存和SWAP区. SWAP区就是Linux下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就