apache-spark - Databricks 内存的最大容量是多少?
问题描述
首先让我们看看我的集群配置。
Worker 类型:Standard_D3_V2(14GB 内存,4Cores,0.75 DBU)
我有 35 名工人,所以总数是
35 名工人:490.0 GB 内存、140 核、26.25 DBU
1 个驱动程序:14.0 GB 内存,4 核,0.75 DBU
所以我的总内存是14*36=504GB 但是当我在这个集群和 Spark UI 中运行作业、代码等时,我的总内存似乎是320GB而不是504GB
我的问题是为什么它没有显示总内存?我不是说它为什么不使用总内存,我是说我的总内存是504GB但它显示 Total= 320GB,其他184GB去哪儿了?
解决方案
总内存分为物理内存和虚拟内存。
您选择了总内存 ( 14 x 36 = 504 G ),分为320 个物理内存和184 个虚拟内存。
要获取有关总内存的更多详细信息,请转到Live Metrics => Ganglia UI => 单击物理视图并选择一个节点,然后在设置 VM 后检查每个节点的可用内存。
笔记: Available memory = (Available memory from physical view) x (Number of Nodes)
要了解物理存储和虚拟地址空间之间的区别,您可以查看以下详细信息:
每个进程的虚拟地址空间可以小于或大于 VM 上可用的总物理内存。驻留在物理内存中的进程的虚拟地址空间子集称为工作集。如果进程的线程试图使用比当前可用的更多的物理内存,系统会将一些内存内容分页到磁盘。进程可用的虚拟地址空间总量受限于物理内存和磁盘上可用于页面文件的可用空间。
每个进程的物理存储和虚拟地址空间被组织成页面,内存单元,其大小取决于所选的 VM。
为了最大限度地提高管理内存的灵活性,系统可以将物理内存页面移入和移出磁盘上的页面文件。当页面在物理内存中移动时,系统会更新受影响进程的页面映射。当系统需要物理内存空间时,它会将最近最少使用的物理内存页面移动到页面文件中。系统对物理内存的操作对应用程序是完全透明的,应用程序只在其虚拟地址空间中运行。
希望这可以帮助。
推荐阅读
- javascript - 在 contenteditable div 中创建一个具有随机名称的新段落
- corda - corda 中的密钥管理
- python - lxml.etree iterparse 不接受 HDFS 文件路径
- matlab - Matlab:以编程方式重置(所有)字体大小
- android - Google ML Kit:找不到“libbarhopper_v2.so”
- python - 如何访问嵌套字典中的列表
- java - EWS API - 如果与 FolderPermissionLevel.FreeBusyTimeAndSubjectAndLocation 共享日历,则无法在商店中找到指定的文件夹
- nginx - nginx 没有使用 Secure 和 SameSite 设置 cookie
- nginx - 我应该使用 Nginx 还是 Route53 进行重定向?
- python - Gekko 中的 ARX 模型