系统主存存储应用程序和内核指令,包括它们的工作数据,以及文件系统缓存。其他需要考察的影响系统性能的因素包括分配和释放内存,复制内存,以及管理
内存地址空间映射的cpu开销。7.1 术语1.主存,物理内存2.虚拟内存,一个抽象的主存概念,它几乎是无限和非竞争的。虚拟内存不是真实的内存。3.常驻内存,当前处于主存中的内存4.匿名内存,无文件系统位置或者路径名的内存。它包括进程地址空间的工作数据,称作堆。5.地址空间,内存上下文。每个进程和内核都有对应的虚拟地址空间。6.段,标记为特殊用途的一块内存区域,例如用来存储可执行或者可写的页。7.OOM,内存耗尽,内核检测到可用内存低。8.页,称作系统和cpu使用的内存单位。它一直以来是4kb或者8kb。9.缺页,无效的内存访问。使用按需虚拟内存时,这是正常事件。10.换页,在主存与存储设备间交换页11.交换,源自unix,指将整个进程从主存转移到交换设备。Linux中交换指页面转移到交换设备。12.交换空间,存放换页的匿名数据和交换进程的磁盘空间。它可以是存储设备的一块空间,也称为物理交换设备,或者是文件系统文件,称作交换文件。部分工具用交换这个术语特指虚拟内存。7.2 概念7.2.1 虚拟内存虚拟内存是一个抽象概念,它向每个进程和内核提供巨大的,线性的并且私有的地址空间。它简化了软件开发,把物理内存的分配交给操作系统管理。进程的地址空间由虚拟内存子系统映射到主内存和物理内存交换设备。内核会按需在它们之间移动内存页,这个过程称作交换。7.2.2 换页换页是将页面换入和调出主存,它们分别称为页面换入和页面换出。他允许:1.运行部分载入的程序2.运行大于主存的程序3.高效的在主存和设备间迁移两种类型的换页:1.文件系统换页文件系统换页由读写位于内存中的映射文件印发。对于使用文件内存映射(mmap())的应用程序和使用了页缓存的文件系统,这是正常行为,也是好的换页。2.匿名换页匿名换页牵涉进程的私有数据:进程堆和栈。被称为匿名换页是由于它在操作系统中缺乏有名字的地址(例如,没有文件系统路径)。匿名换页换出要求迁移数据到物理交换设备或者交换文件。linux 用交换(swapping)来命名这种类型的换页。匿名换页拖累性能,因此被称为是坏的换页。当应用程序访问被调出的页时,会被读页的磁盘IO阻塞。这就是匿名换页,它给应用程序带来同步延时。7.2.3 按需换页支持按需换页的系统(必须支持)将虚拟内存按需映射到物理内存。当访问一个尚未从虚拟映射到物理内存的页时,会发生缺页。如果整个映射可以由内存中的其他的页满足,这就被称作轻微缺页。虚拟内存和按需换页的结果是任何虚拟内存可能出入如下的一个状态:    A.未分配B.已分配,未映射(未填充并且未缺页)C.已分配,已映射到主存(RAM)D.已分配,已映射到物理交换空间(磁盘)如果因为系统内存压力而换出页就会达到D状态。状态B到C的转换就是缺页。如果需要磁盘读写,就是严重缺页,否则就是轻微缺页。从这几种状态出发,可以定义另外两种内存使用术语:1.常驻集合大小(RSS):已分配的主存页(C)大小2.虚拟内存大小:所有已分配的区域(B+C+D)7.2.4 过度提交linux支持过度提交这个概念,允许分配超过系统可以存储的内存---超过物理内存与交换的设备的总和。有了过度提交,应用程序提交的内存请求(如 malloc())会成功,否则就失败。7.2.5 交换交换是主存与物理交换设备或交换文件之间移动整个进程。交换严重影响性能,因为已经换出的进程需要许多磁盘IO才能重新运行。7.2.6 文件系统缓存占用系统启动后内存的占用增加是正常的,因为操作系统会将可用内存用于文件系统缓存以提高性能。7.2.7 使用率和饱和度 主内存的使用率可由已占用的内存除以总内存得出。7.2.8 分配器 当虚拟内存处理多任务物理内存时,在虚拟地址空间中实际分配和内存对方通常由分配器来处理。用户态或者内核程序向程序员提高简单的内存使用接口(如 malloc(),free())。7.2.9 字长7.3 架构7.3.1 硬件内存硬件包括主存,总线,cpu缓存和MMU(内存管理单元)。1.主存目前常见的主存类型是动态随机存取内存(DRAM)。2.延时主内存的访问时间可以用CAS(列地址控制器)计量。MMU:负责虚拟到物理地址的转换。7.3.2 软件内测管理软件包括虚拟内存系统,地址转换,交换,换页和分配。7.3.3 进程地址空间内核级分配器---slab和 SLUB, 用户级分配器----libmalloc,libumem,mtmalloc。7.4 方法7.4.1 工具法 对于内存而言,应用工具可以检查如下指标:1.页扫描2.换页3.vmstat4.OOM终结者5.交换6.top/prstat7.dtrace/stap/perf7.4.2 USE 方法1.使用率2.饱和度3.错误7.4.3 使用特征归纳7.4.4 周期分析7.4.5 性能监测关键的内存指标:1.使用率,使用百分比,由可用内存推断2.饱和度,换页,交换,oom终结者7.4.6 泄漏检测源自于:1.内存泄露2.内存增长7.4.7 静态性能调优7.4.8 资源控制7.4.9 微基准测试 7.5 分析7.5.1 vmstat7.5.2 sar 7.5.3 slabtop 7.5.4 ::kmstat7.5.5 ps7.5.6 top 7.5.7 prstat7.5.8 pmap7.5.9 DTrace7.5.10 SystemT7.5.11 其他工具 7.6 调优7.6.1 可调参数7.6.2 多个页面大小7.6.3 分配器 7.6.4 资源控制

7.性能之巅 洞悉系统、企业与云计算 --- 内存相关推荐

  1. 《性能之巅—洞悉系统、企业与云计算》读书笔记---第二章

    目录 第二章  方法 2.1术语 2.2模型 2.3概念 2.4视角 2.5方法 2.6建模 2.7容量规划 2.8统计 2.9监视 2.10可视化 第二章  方法 面对一个性能不佳且复杂的系统环境时 ...

  2. 性能之巅:洞悉系统、企业与云计算——文件系统

    性能之巅:洞悉系统.企业与云计算--文件系统 术语 模型 文件系统接口 文件系统缓存 二级缓存 概念 文件系统延时 缓存 随机与顺序 I/O 预取 预读 写回缓存 同步写 单次同步写 同步提交已写内容 ...

  3. 性能之巅 洞悉系统、企业与云计算(完整版)

    性能之巅  洞悉系统.企业与云计算书籍,主要讲解大型网络.云计算.大数据和虚拟计算机系统的快速部署已经为性能优化带来了新的挑战.本书为此提供了解决方案.国际知名的性能优化专家Brendan Gregg ...

  4. 《性能之巅—洞悉系统、企业与云计算》读书笔记---第一章

    目录 第一章  绪论 1.1系统性能 1.2人员 1.3事情 1.4视角 1.5性能是充满挑战的 1.6延时 1.7动态跟踪 1.8云计算 1.9案例研究 第一章  绪论 1.1系统性能 1.2人员 ...

  5. 性能之巅——洞悉系统、企业与云计算 Brendan Gregg

    1.绪论 系统性能是对整个系统的研究,包括所有的硬件组件和整个软件栈.所有数据路径上和软硬件上所发生的的事情都包括在内,都可能影响性能 性能领域包含以下方面 设置性能目标和建立性能模型 基于软件或硬件 ...

  6. BPF之巅--洞悉Linux系统和应用性能 Brendan Gregg

    目录标题 软件安装 第一章 引言 第二章 扩展版BPF 第三章 性能分析 第四章 BCC 第五章 bpftrace 第六章 CPU 第七章 内存 第八章 文件系统 第九章 磁盘I/O 第十章 网络 第 ...

  7. 性能之巅:Linux网络性能分析工具-netstat,ifconfig,nicstat,traceroute,tcpdump

    原文地址:http://www.infoq.com/cn/articles/linux-networking-performance-analytics 本文介绍基于Linux操作系统的网络性能分析工 ...

  8. 性能之巅:Linux网络性能分析工具

    编者按:InfoQ开设新栏目"品味书香",精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自格雷格著<性能之巅:洞悉系统.企业与云计算>中 ...

  9. 性能之巅:定位和优化程序CPU、内存、IO瓶颈

    摘要:性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力. #一.思维导图 #二.什么是性能优化? 性能优化指在不影响系统运行正确性的前提下, ...

  10. 性能之巅:《高性能网站建设指南》读书笔记

    性能之巅:<高性能网站建设指南>读书笔记 前言 去年笔者(Chainn)读完了几本前端性能优化以及HTTP等网络方面的书,并在生产环境做了部分应用.这些书包括<高性能网站建设指南&g ...

最新文章

  1. H5开发开发利器——flex
  2. c# 联合halcon 基于相关性 模板匹配_机器视觉之halcon入门(5)-字符识别exe生成...
  3. 再见了SAS9.2,SAS9.2完美卸载方法
  4. V5Shop网店系统更新 版本V8.30.0606 RC1
  5. android手机导入iphone,安卓手机文件怎么传到苹果手机
  6. w7计算机虚拟内存设置,win7虚拟内存怎么设置最好
  7. 第三代CAN-XL通信技术CiA 610有什么特点
  8. 《腾讯之道》读书笔记
  9. 第十三届蓝桥杯大赛软件组省赛 Python大学A组 个人题解
  10. 从两万亿医疗市场中寻找IT商机
  11. java文件实现文件的上传和下载
  12. 各大日语学习网站整理
  13. 一带一红网红基地推出O2O网红直播过年模式
  14. 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程
  15. 学习mysql_day3_高级查询1(聚合查询,聚合统计)
  16. 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢
  17. GK888t打印机设置
  18. 三星c7扩存储加双卡android8,三星C7 Pro官方安卓8.0国行版固件刷机包:CHC-C7010ZCS3CSC1...
  19. Linux在线安装python3
  20. 基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库

热门文章

  1. oracle第三天笔记
  2. 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
  3. java音频播放(转)
  4. MSSQL备份及数据迁移
  5. 使用类型注解让 Python 代码更易读
  6. 内推 |阿里大文娱-数据分析(广州/北京)
  7. 2017中国“互联网+”数字经济指数 | 腾讯研究院
  8. mysql checkpoint_MySQL checkpoint深入分析
  9. 2019牛客暑期多校训练营(第二场)A(随机化)
  10. Luogu P1455 搭配购买 题解