一、啥是内存呢

回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
想全面了解内存的请到威武的百科去看内存吧,真全啊!
 

二、怎么查看系统内存的信息

回答:可以使用cat /proc/meminfo,如:

 
 

三、如何查看整个系统的内存使用情况

回答:命令有很多,工具使用等都可以,我们可以free一下看看:
 
 

四、怎么查看某个进程的内存使用情况

回答:cat /proc/{PID}/status 
 
  • VmSize?(KB) 任务虚拟地址空间的大小
  • VmRSS?(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值
  • VmData?(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据
  • VmLck?(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘
  • VmStk?(KB) 任务在用户态的栈的大小
  • VmExe?(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库
  • VmLib?(KB) 被映像到任务的虚拟内存空间的库的大小

VmRSS?表示当前进程使用的物理内存。当进程开始使用已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。

一般在性能测试过程中,关注程序内存占用情况,只关注 VmRSS 一项

五、内存性能指标及解释

  1. Free memory - 空闲内存
    Linux中的Free memory与大多数操作系统一样不用关心。Linux内核将大量未使用的内存作为文件系统缓存,故总内存扣除已用内存和用于缓冲的内存得到的是实际的Free memory。
  2. Swap usage - 交换空间使用
    Swap usage描述交换空间内存占用量,从Swap usage中我们只能知道Linux在管理内存上是多么有效。要想确定内存是否存在性能瓶颈,Swap In/Out才是真正的指标。如果Swap In/Out长时间处于每秒超过200到300 pages的情况,那意味着内存可能存在性能瓶颈。
  3. Buffer and cache - 缓冲与缓存
    Buffer and cache描述用于文件系统和块设备的缓存。
  4. Slabs
    Slabs描述内核所使用的内存,注意内核的pages是不能被交换到硬盘上的。
  5. Active versus inactive memory - 活动与非活动内存
    Active versus inactive memory描述活动内存的相关信息。非活动内存往往会作为候选被kswapd daemon (核心交换守护进程)交换到硬盘。

六、其他资料

linux性能系列--内存的更多相关文章

  1. linux性能系列--块设备

    一.啥是块设备呢? 回答:I/O设备大致分为两类:块设备和字符设备.块设备将信息存储在固定大小的块中,每个块都有自己的地址.数据块的大小通常在512字节到32768字节之间.块设备的基本特征是每个块都 ...

  2. linux性能系列--网络

    一.为啥网络监控不好做?   回答:网络是所有子系统中最难监控的了.首先是由于网络是抽象的,更重要的是许多影响网络的因素并不在我们的控制范围之内.这些因素包括,延迟.冲突.阻塞等 等.由于网络监控中, ...

  3. linux性能系列--cpu

    一.先看看什么是CPU? 回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和 ...

  4. Linux 性能优化之 IO 子系统 系列 图

    http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...

  5. 【转】一文掌握 Linux 性能分析之内存篇

    [转]一文掌握 Linux 性能分析之内存篇 前面我们已经学习了 CPU 篇,这篇来看下内存篇. 01 内存信息 同样在分析内存之前,我们得知到怎么查看系统内存信息,有以下几种方法. 1.1 /pro ...

  6. c/c++ linux 进程间通信系列4,使用共享内存

    linux 进程间通信系列4,使用共享内存 1,创建共享内存,用到的函数shmget, shmat, shmdt 函数名 功能描述 shmget 创建共享内存,返回pic key shmat 第一次创 ...

  7. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  8. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

  9. Linux性能监测:内存篇

    在操作系统里,虚拟内存被分成页,在 x86 系统上每个页大小是 4KB.Linux 内核读写虚拟内存是以 “页” 为单位操作的,把内存转移到硬盘交换空间(SWAP)和从交换空间读取到内存的时候都是按页 ...

随机推荐

  1. 把AspDotNetCoreMvc程序运行在Docker上-part1

    接<基于ASP.Net Core学习Docker技术第一步:在CentOS7安装Docker平台>这个博文,在搭建完成Docker平台之后,可以开始让aspdotnetcore程序运行在d ...

  2. C#、OC递归锁

    做ios也有1年了,C#的东西有些都忘记了,最近几天也打算重温一下,不能学了ios把C#给抛弃了,两者都要抓,一精多专.目前C#只是重温,重点是web这块.今天主要是想起了之前做过的面试题,虽然题比较 ...

  3. 联想G480安装固态硬盘过程

    联想G480安装固态硬盘过程  百度上面图文并茂: https://jingyan.baidu.com/article/e2284b2b68eaf6e2e6118de1.html

  4. C#获取Url不同路径的方法大全

    在 C# 中,用 Request 对象来获取 Url  的各种路径,包括上一页 Url.域名.绝对路径.相对路径和物理路径.虽然在某些情况下,无法获取到 Url,但可以获取到大部分情况下的 Url,下 ...

  5. 局域网内配置虚拟机的hostname

    一般上我们在局域网内访问,比如宿主机访问虚拟机的时候可以直接使用IP去访问,大多数情况下也都适用.但是对于有的情况,比如像新版的hbase的配置,它默认将localhost作为hbase.master ...

  6. docker 安装ElasticSearch 6.x

    首先是拉去镜像(或者直接创建容器自然会拉去) docker pull elasticsearch:6.5.4 创建容器 docker run --name elasticsearch --net ho ...

  7. ChannelSftp.chmod方法赋权文件夹

    最近对接分账工作需要上传分账文件到指定sftp服务器,在给sftp上文件夹赋权是遇到一个问题: 具体是ChannelSftp的chmod(int permissions, String path)方法 ...

  8. input输入框限制(座机,手机号码)

    记录一下 座机input输入框: <input style="width:100px;" id="tel" type="text" o ...

  9. 使用装饰器减少try ...finally的重复使用

    @util.try_except_bskgk def added_user_handle(cur, search_time): added_user_sql = """ ...

  10. SpringBoot整合Slf4j+logback日志框架

    一.Slf4j简单介绍与优势 1.介绍 Slf4j的全称是Simple Loging Facade For Java(Java简单日志门面),它仅仅是一个为Java程序提供日志输出的统一接口,并不是一 ...