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

2019-03-23 09:23|来源: 网络

租的VPS是256M的内存,所以要经常查看一下内存的使用情况,查看内存使用的命令是free -m,m是以MB的单位显示内存的使用情况,下面是我服务器上的内存使用情况:

root@656463:/home/huangyineng# free -m

            total       used       free     shared    buffers     cached

Mem:           248        226         22          0         21         74

-/+ buffers/cache:        130        118

Swap:          484          3        481


从上看出这个Linux系统一共有内存248M,但当前Linux 系统已经占用的内存有多少呢?大多数用户的答案是226M,其实不然。

当前VPS占用的内存应该是130M,也就是226下面那个数字:130,代表已经占用的内存。后面的那个118,代表当前Linux系统的可用内存。

"-/+ buffers/cache:"开头的这行才是实际的占用内存和可用内存。

为什么会这样?这是由Linux Kernel的内存管理方式决定的,buffers,cached可以看作是被程序或者内核用过的内存,这些内存曾经被使用过,但现在已经被释放了,释放之后Linux Kernel把他们当作buffers或cached ,这样下次有程序申请内存的时候,内核可以快速响应。所以buffers和cached部分的内存应该看成是可用内存。

所以,看内存使用情况,应该看"-/+ buffers/cache:"开头的这一行,如果这一行最后的数字接近0,那么说明Linux系统的内存快用完了,这时候Linux系统反应就比较慢。如果这个数字还比较大,那么Linux系统还有较多内存可用,系统不应该慢。


本文链接:怎样正确查看Linux的内存占用情况

相关问答

更多
  • top命令查看 这里还可以通过top命令观察mongodb的内存使用情况,如下图,可看到其中的VIRT和RES与上述命令的结果一样 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12603 mongod 20 0 318g 45g 44g S 28.0 72.1 27230:21 mongod free命令查看 而再通过free命令可查看到内存占用中有多少是因为数据缓存和cache,关于如何查看free命令, [jiangjianjian@f1- ...
  • Mongodb自带命令查看其内存使用情况 其中resident代表物理内存使用情况,单位为M;而virtual为虚拟内存使用情况,mapped是映射到内存的数据大小。这里虚拟内存是mapped的两倍,是因为我们开启了Journal日志,需要在内存中多映射一次,大概就是它的两倍了。如果关闭Journal日志,虚拟内存大小将和mapped大小相当。 bj1-farm1:PRIMARY> db.serverStatus().mem { "bits" : 64, "resident" : 46662, "virtu ...
  • RSS(resident set size)也就是每个进程用了具体的多少页的内存。由于Linux系统采用的是虚拟内存,进程的代码、库、堆和栈使用的内存都会消耗内存,但是申请出来的内存,只要没真正touch过,是不算的,因为没有真正为之分配物理页面。 我们实际进程使用的物理页面应该用resident set size来算的,遍历所有的进程,就可以知道所有的所有的进程使用的内存。
  • 语  法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称>][-g <群组名称>][-G <群组识别码>][-p <程序识别码>][p <程序识别码>][-s <阶段作业>][-t <终端机编号>][t <终端机编号>][-u <用户识别码>][-U <用户识别码>][U <用户名称>][-<程序识别码>][--cols <每列字符数>][--columns <每列字符数>][--cumulative][--deselect][--forest][--head ...
  • Mongodb自带命令查看其内存使用情况 其中resident代表物理内存使用情况,单位为M;而virtual为虚拟内存使用情况,mapped是映射到内存的数据大小。这里虚拟内存是mapped的两倍,是因为我们开启了Journal日志,需要在内存中多映射一次,大概就是它的两倍了。如果关闭Journal日志,虚拟内存大小将和mapped大小相当。 bj1-farm1:PRIMARY> db.serverStatus().mem { "bits" : 64, "resident" : 46662, "virtu ...
  • 做了个24小时的稳定性测试,探讨了Linux的Mem使用情况: 看内存最方便的命令是free -m,如: [root@host ~]# free -m total used free shared buffers cached Mem: 1024 1005 19 0 9 782 -/+ buffers/cache: 212 811 Swap: 996 0 995 [root@host ~]# 从上看出这个Linux系统一共有内存1024M,但当前Linux 系统已经占用的内存有多少呢?大多数用户的答案是10 ...
  • linux下怎么查看程序的内存使用情况,解决办法   1、top   top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器   可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:   $ top -u oracle   内容解释:   PID:进程的ID   USER:进程所有者   PR:进程的优先级别,越小越优先被执行   NInice:值   ...
  • df -Th 命令可以查看的, mount也可以查看的哦 看样子是linux系统的新手吧?这个没有关系,能否看一下my网名呢?这个问题可以帮助搞定一下的, 如果以后要是有linux系统的问题, 都能帮助指教一下啊,
  • 在LINUX系统环境下,我们可以使用系统命令来查看端口的使用情况。 1、查看端口是否已经打开: netstat -an 2、查看端口是被哪个应用程序使用: netstat -apn ps -ef 3、查看端口是被哪个应用程序使用2: lsof 4、top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令 top
  • netstat -anplut命令可以看到所有处于监听和连接状态的端口信息 不过看不到没有启用的端口, 没有启用的端口从来就没有说有办法看到。 应该是一个linux的新手吧?这个问题都很新鲜的。 linux系统管理的问题, apache, tomcat等linux下的应用,...