嵌入式 linux 查看内存

在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux下查看内存使用情况的free命令:

  [root@scs-2 tmp]# free

  total used free shared buffers cached

  Mem: 3266180 3250004 16176 0 110652 2668236

  -/+ buffers/cache: 471116 2795064

  Swap: 2048276 80160 1968116

  下面是对这些数值的解释:

  total:总计物理内存的大小。

  used:已使用多大。

  free:可用有多少。

  Shared:多个进程共享的内存总额。

  Buffers/cached:磁盘缓存的大小。

  第三行(-/+ buffers/cached):

  used:已使用多大。

  free:可用有多少。

  第四行就不多解释了。

  区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.

  第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

  所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

  如上例:

  2795064=16176+110652+2668236

  接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。

  如何看额定值:

  cat /proc/meminfo

  [root@scs-2 tmp]# cat /proc/meminfo

  MemTotal: 3266180 kB

  MemFree: 17456 kB

  Buffers: 111328 kB

  Cached: 2664024 kB

  SwapCached: 0 kB

  Active: 467236 kB

  Inactive: 2644928 kB

  HighTotal: 0 kB

  HighFree: 0 kB

  LowTotal: 3266180 kB

  LowFree: 17456 kB

  SwapTotal: 2048276 kB

  SwapFree: 1968116 kB

  Dirty: 8 kB

  Writeback: 0 kB

  Mapped: 345360 kB

  Slab: 112344 kB

  Committed_AS: 535292 kB

  PageTables: 2340 kB

  VmallocTotal: 536870911 kB

  VmallocUsed: 272696 kB

  VmallocChunk: 536598175 kB

  HugePages_Total: 0

  HugePages_Free: 0

  Hugepagesize: 2048 kB

  用free -m查看的结果:

  [root@scs-2 tmp]# free -m

  total used free shared buffers cached

  Mem: 3189 3173 16 0 107 2605

  -/+ buffers/cache: 460 2729

  Swap: 2000 78 1921

  查看/proc/kcore文件的大小(内存镜像):

  [root@scs-2 tmp]# ll -h /proc/kcore

  -r——– 1 root root 4.1G Jun 12 12:04 /proc/kcore

  备注:

  占用内存的测量

  测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。

  /proc/meminfo 机器的内存使用信息

  /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。

  /proc/pid/statm 进程所占用的内存

  [root@localhost ~]# cat /proc/self/statm

  654 57 44 0 0 334 0

  输出解释

  CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:

  参数 解释 /proc//status

  Size (pages) 任务虚拟地址空间的大小 VmSize/4

  Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4

  Shared(pages) 共享页数 0

  Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4

  Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4

  Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4

  dt(pages) 04

  查看机器可用内存

  /proc/28248/>free

  total used free shared buffers cached

  Mem: 1023788 926400 97388 0 134668 503688

  -/+ buffers/cache: 288044 735744

  Swap: 1959920 89608 1870312

  我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。

  所以 空闲内存=free+buffers+cached=total-used

$ free -m
             total       used       free     shared    buffers     cached
Mem:         1002        769        232          0         62        421
-/+ buffers/cache:        286        715
Swap:         1153          0       1153

第一部分Mem行:
total 内存总数: 1002M
used 已经使用的内存数: 769M
free 空闲的内存数: 232M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 62M
cached Page 缓存内存数:421M

关系:total(1002M) = used(769M) + free(232M)

第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。(从这里我们可以看出,实际上 :可用内存=第一部分Mem行中的free + buffers + cached,并不是只有free部分)

第三部分是指交换分区, 我想不讲大家都明白.

我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.
其实我们可以从二个方面来解释.
对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

记住内存是拿来用的,不是拿来看的.不象windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常 常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要 不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.

补充:cat /proc/meminfo

可以查看内存的详细使用情况,free的结果由此文件生成。

时间: 2024-09-29 03:29:17

嵌入式 linux 查看内存的相关文章

linux查看内存的大小

  用free -m查看的结果: # free -m total used free shared buffers cached Mem: 504 471 32 0 19 269 -/+ buffers/cache: 183 321 Swap: 996 0 996 查看/proc/kcore文件的大小: # ll -h /proc/kcore -r-------- 1 root root 512M 10月 26 20:40 /proc/kcore total显示的只有504M,而我系统的实际内存

linux下查看内存

前言:在Linux上不像在Windows上看内存那样方便,而且还有Swap这个新的概念,所以知道如何来看Linux内存还是有一定意义的. 在Linux下查看内存我们一般用command free [root@nonamelinux ~]# free total used free shared buffers cached Mem: 386024 377116 8908 0 21280 155468 -/+ buffers/cache: 200368 185656 Swap: 393552 0

Linux 查看CPU,内存,硬盘

1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重复行:wc –l命令:统计行数** 1.2 查看CPU核数 # cat /proc/cpuinfo | grep "cpu cores" | uniq cpu cores       : 4 1.3 查看CPU型号 # cat /proc/cpuinfo | grep 'model nam

Linux下查看内存使用情况方法总结

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢? 在做Linux系统优化的时候,物理内存是其中最重要的一方面.自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况.下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法. 1. /proc/meminfo 查看RAM使用情况最简单的方法是通过 /proc/meminfo.这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等

LINUX进程内存占用查看命令

(1)top使命  代码如下 复制代码 $ top -u oracle 1.top命令  代码如下 复制代码 top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s 如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage) (2)pmap 可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:  代码如下 复制代码 $ pmap -d 14596 (3)ps 如下例所示:  代码如

Linux查看当前CPU与内存使用情况命令

一,Linux下内存查看命令free详解: Linux中可以使用free -m 来查看当前内存使用情况,m参数表示以MB的形式来显示,示例: $ free -m              total       used       free     shared    buffers     cached Mem:         1002        769        232          0         62        421 -/+ buffers/cache:    

linux查看文件系统块大小与内存页大小的简单方法_Linux

一:查看文件系统块大小 sudo /sbin/tune2fs -l /dev/sda1|grep "Block size" 需要注意到系统可能有多个盘多个文件系统,可通过df命令查看 数值单位是字节,如图示: 二:查看内存页大小 getconf PAGESIZE 数值单位是字节,如图示: 以上就是小编为大家带来的linux查看文件系统块大小与内存页大小的简单方法全部内容了,希望大家多多支持~ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继

linux查看主板内存槽与内存信息的命令dmidecode方法_Linux

1.查看内存槽数.那个槽位插了内存,大小是多少 dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 2.查看最大支持内存数 dmidecode|grep -P 'Maximum\s+Capacity' 3.查看槽位上内存的速率,没插就是unknown. dmidecode|grep -A16 "Memory Device"|grep 'Speed' 其实以上数值就是通过dmidecode命令

Linux系统查看内存使用率

Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如: Mem:   4086496k total, 4034428k used,    52068k free,   112620k buffers Swap: 4192956k total,   799952k used, 3393004k free, 1831700k cached top –M看更直观,以M为单位 接近98.7%,而实际上的应用程序占用的内存往往并没这么多, PID