Spark2.0.0内存管理
来源:http://spark.apache.org/docs/2.0.0/configuration.html
spark中的内存使用主要分为两类:执行和存储。执行内存指的是用于shuffles、join、sorts 和aggregations中的计算的内存,而存储内存指的是用于在集群中cache和广播变量数据的内存。
在Spark中,执行和存储共享一个统一的区域(M)。当不使用执行内存时,存储可以获取所有可用内存,反之亦然。执行可以在必要时清理存储内存,但只能在总存储内存使用量低于某个阈值(R)之前执行。换句话说,R描述了M中的一个子区域,其中缓存的块永远不会被移出。由于实现的复杂性,存储可能无法收回执行。
这种设计确保了几种理想的特性。首先,不使用缓存的应用程序可以使用整个空间来执行,从而避免不必要的磁盘溢写。第二,确实使用缓存的应用程序可以保留一个最小的存储空间(R),使其数据块不会被逐出。最后,这种方法为各种工作负载提供了合理的开箱即用的性能,而不需要用户了解内存如何在内部划分。
名称 | 默认值 |
说明 |
spark.memory.fraction | 0.6 |
实际大小:(heap space - 300MB)* 0.6,用于存储和执行。(剩下的0.4用于Task计算) 这个值越小,发生溢写和缓存清理的频率就越高。 此配置的目的是为内部元数据、用户数据结构和不精确的大小估计预留内存,以防出现稀疏、异常大的记录。 建议保留默认配置。 |
spark.memory.storageFraction | 0.5 |
不受缓存清理影响存储内存。 是spark.memory.fraction的一部分。 这个值越大,工作内存就越小,越容易发生溢写磁盘。 建议保留默认配置 |
spark.memory.offHeap.enabled | false |
设为true,将使用堆外内存,同时spark.memory.offHeap.size必须要设置值 |
spark.memory.offHeap.size | 0 |
可用于堆外分配的绝对内存量。 此设置对堆内存使用没有影响,因此,如果executor的总内存消耗必须在某个固定的限制内,那么一定要相应地减少JVM堆大小。 |
spark.memory.useLegacyMode | false |
是否启用Spark 1.5及之前使用的内存管理模式。 静态内存管理模式将堆空间严格划分为固定大小的区域,如果不调整应用程序,可能会导致溢出。 |
spark.shuffle.memoryFraction | 0.2 |
spark.memory.useLegacyMode为true时才生效。用于shuffle的聚合。 |
spark.storage.memoryFraction | 0.6 |
spark.memory.useLegacyMode为true时才生效。用于内存缓存。不应大于JVM中“老年代”对象。 |
spark.storage.unrollFraction | 0.2 |
spark.memory.useLegacyMode为true时才生效。用于在内存中展开块。 |
Spark2.0.0内存管理的更多相关文章
- Kernel 3.0.8 内存管理函数【转】
转自:http://blog.csdn.net/myarrow/article/details/7208777 1. 内存分配函数 相关代码如下: #define alloc_pages(gfp_ma ...
- 结合源码看nginx-1.4.0之nginx内存管理详解
目录 0. 摘要 1. nginx内存结构设计 2. nginx内存数据结构 3. nginx内存管理原理 4. 一个简单的内存模型 5. 小结 6. 参考资料 0. 摘要 内存管理,是指软件运行时对 ...
- Linux 0.11源码阅读笔记-内存管理
内存管理 Linux内核使用段页式内存管理方式. 内存池 物理页:物理空闲内存被划分为固定大小(4k)的页 内存池:所有空闲物理页组成内存池,以页为单位进行分配回收.并通过位图记录了每个物理页是否空闲 ...
- iOS MRC ARC 内存管理
转自:http://www.jianshu.com/p/48665652e4e4 1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用 创建一个OC对象 定义一个变量 调用 ...
- 7内存管理-MRC
@0简介 内存管理,即内存里各个对象的管理,即内存里各个对象的生命周期的管理,(从面向对象的角度看) @1引用计数器 默认为1,即有一滴的生命血液,若为0就会死去 @2单个对象的管理 自己管理自己,自 ...
- lua内存管理
本文内容基于版本:Lua 5.3.0 Lua内存管理器规则 Lua允许用户自定义内存管理器,并在创建Lua虚拟机(lua_State实例)时传入.当然自定义内存管理器必须遵循Lua已定义的一些行为规则 ...
- effective OC2.0 52阅读笔记(五 内存管理)
第五章:内存管理 29 理解引用计数 30 以ARC简化引用计数 总结:ARC通过命名约定将内存管理规则标准化.其他编程语言很少像OC这样强调命名.ARC通过设置全局数据结构(此数据结构的具体内容因处 ...
- 【0 - 1】OC内存管理
一.内存管理概述 垃圾回收机制(GC):由系统管理内存,程序员不需要管理. OC中的垃圾回收:在OC2.0版加入垃圾回收. OC与iOS:OC有垃圾回收机制,但是iOS屏蔽了这个功能.原因:iOS运行 ...
- OC基础:内存(内存管理) 分类: ios学习 OC 2015-06-25 16:50 73人阅读 评论(0) 收藏
自动释放池: @autoreleasepool { } 内存管理机制 谁污染,谁治理 垃圾回收机制:gc(Garbage collection),由系统管理内存,开发人员不需要管理. OC ...
随机推荐
- Mac 使用 OpenMP/Clang
新建 hello.cpp 文件: #include <omp.h> #include <stdio.h> int main() { #pragma omp parallel p ...
- C语言博客05--指针
C语言博客05--指针 1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 在本周的学习过程中,我们学习了指针的用法.说实话,指针的用法有点绕,之前一直没搞 ...
- 贝叶斯A/B测试 - 一种计算两种概率分布差异性的方法过程
1. 控制变量 0x1:控制变量主要思想 科学中对于多因素(多变量)的问题,常常采用控制因素(变量)的方法,吧多因素的问题变成多个单因素的问题.每一次只改变其中的某一个因素,而控制其余几个因素不变,从 ...
- Kubernetes基本功能
说明 目前kubernetes的资料介绍很多也很深刻,本文只是做一个针对自己学习k8s过程的介绍,仅仅是学习笔记的记录. 一.基本使用 1. 命令行 集群信息 Namespace 信息 Control ...
- centos7通过nginx搭建SSL
今天给大家带来的是一篇关于通过nginx搭建HTTPS访问转跳后端HTTP的教程,部署方式如下: 安装基础组件yum -y isntall firewalldyum -y install gcc gc ...
- HTML 重定向 页面跳转
通过响应头重定向 响应状态 301 和 302 可以指定重定向URL, 推荐使用302 FOUND HttpServletResponse. static final int SC_MOVED_TEM ...
- IE7下使用兼容Icon-Font CSS类
Iconfont在IE7下需要使用unicode方式,但是这种方式不太方便,使用以下代码可使IE7像普通用法使用. @font-face {font-family: "anticon&quo ...
- Linux动态链接库的生成和使用
目录 1. 编写C程序 2. 编译动态链接库 3. 使用共享库 4. 执行程序 5. 参考资料 1. 编写C程序 比如编写myfunc.c文件,里面包含两个函数,一个是say_hello,另一个是ca ...
- C# NPOI 操作Excel 案例
1.加入NPOI 程序集,使用nuget添加程序集 2.引用NPOI程序集 private IWorkbook ExportExcel(PrintQuotationOrderViewModel mod ...
- Java SE API —— 【Math 】之【BigInteger】类
目录 概述 构造方法 BigInteger(byte[] val) 概述 不可变的任意精度的整数.提供了模算术.GCD 计算.质数测试.素数生成.位操作以及一些其他操作. 算术运算的语义完全模仿 Ja ...