Linux的内存管理,实际上跟windows的内存管理有很相像的地方,都是用虚拟内存这个的概念,
说到这里不得不骂MS,为什么在很多时候还有很大的物理内存的时候,却还是用到了pagefile.
所以才经常要跟一帮人吵着说Pagefile的大小,以及如何分配这个问题,
在Linux大家就不用再吵什么swap大小的问题,我个人认为,swap设个512M已经足够了,如果你问说512M的SWAP不够用怎么办?
只能说大哥你还是加内存吧,要不就检查你的应用,是不是真的出现了memory
leak.
夜也深了,就不再说废话了。
在Linux下查看内存我们一般用free
[root@nonamelinux ~]#
free
total used free shared buffers
cached
Mem: 386024 377116 8908 0 21280
155468
-/+ buffers/cache: 200368 185656
Swap: 393552 0
393552
下面是对这些数值的解释:
第二行(mem):
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+
buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解释了。
区别:
第二行(mem)的used/free与第三行(-/+
buffers/cache)
used/free的区别。
这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached
都是属于被使用,所以他的可用内存是8908KB,已用内存是377116KB,其中包括,内核(OS)使用+Application(X,oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached
是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free
memory+buffers+cached.
如上例:
185656=8908+21280+155468
接下来解释什么时候内存会被交换,以及按什么方交换。
当可用内存少于额定值的时候,就会开会进行交换.
如何看额定值(RHEL4.0):
#cat
/proc/meminfo
交换将通过三个途径来减少系统中使用的物理页面的个数:
1.减少缓冲与页面cache的大小,
2.将系统V类型的内存页面交换出去,
3.换出或者丢弃页面。(Application
占用的内存页,也就是物理内存不足)。
事实上,少量地使用swap是不会影响到系统性能的。
分享到:
相关推荐
Linux “free”命令可以给出类Linux/Unix操作系统中物理内存和交换内存的总使用量、可用量及内核使用的缓冲区情况。 这篇文章提供一些各种参数选项的“free”命令,这些命令对于你更好地利用你的内存会有...
free命令是检查一个 Linux 系统中内存使用率最常用的命令。它显示关于内存总量,已经使用的内存以及空闲内存的相关信息。 通常, free 运行时加上-h选项,意味着以人类可读的格式打印输出: free -h total used ...
Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如: Mem: 4086496k total, 4034428k used, 52068k free, 112620k buffers Swap: 4192956k total,...
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用...
linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...
而当我们使用free命令查看Linux系统内存使用情况时,会发现内存使用一直处于较高的水平,即使此时系统并没有运行多少软件。这正是Windows和Linux在内存管理上的区别,乍一看,Linux系统吃掉我们的内存(Linux ate my...
free:该函数获得指向由 malloc 分配的内存片段的指针,并将其释放,以便以后的程序或操作系统使用(实际上,一些 malloc 实现只能将内存归还给程序,而无法将内存归还给操作系统)。 物理内存和虚拟内存 要...
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 ...
# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内...
这会因为系统为了加速文件读写速度,减少磁盘使用次数尽量多的使用内存cache硬盘上的数据。虽然free比较少了,但是有新的内存请求的时候可以立即从cache里面回收物理内存,所以系统显示的可用内存变化不大(461M-465...
我们有一个应用,在上线之后,监控到内存可用率随着运行时间逐步下降,从上线之初的50%,运行一段时间后下降到20%左右。机器上有其他进程也占内存,我想确定下是否是内存泄漏导致的,查清楚后也能对线上的应用运行...
3)、最近最久未使用算法(LRU) 4)、最不经常使用算法(LFU) 5)、最近未使用算法(NUR) 命中率=1-页面失效次数/页地址流长度 2、在Linux环境下利用下列系统调用malloc(), free()编写一段程序实现内存分配...
最近,发现个人博客的Linux服务器,数据库服务经常挂掉,...然后再看指令输出结果中详细列出的进程情况,重点关注第10列内存使用占比: 发现CPU使用率不算高,也排除了CPU的问题,另外可以看到数据库服务占用15.2%的内
free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free),这个比较清楚,不说太多。 free输出地第二行和第三行是比较让人迷惑的。这两行都是...
在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能。 而当我们使用...
Linux服务器在发现内存不足时,会自动清理cached区域,释放内存,然后继续增大cache,free继续减少。其实手动降低内存使用率的方法也就是图一时之快而已
文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...
第四部分 有效率地使用Linux操作系统 第14学时 文字处理程序 228 14.1 Linux操作系统环境中的字处理器 程序 228 14.1.1 XEmacs环境的特点 229 14.1.2 VIsual iMproved编辑器 程序—vim 232 14.1.3 pine软件的pico...
该脚本需在Linux环境下允许,采用shell脚本编写,设计Iperf3 ,wrk等...执行脚本后,在被测设备的命令行通过串口查看 free,top等命令查看内存使用极限;以及CPU使用率;观察被测设备是否容易出现自动重启或挂起现象
scull的内存使用 64 read和write 67 试试新设备 74 快速参考 74 第四章 调试技术 76 内核中的调试支持 76 通过打印调试 78 通过查询调试 85 通过监视调试 94 调试系统故障 96 调试器和相关工具 102 第五...