物理内存

MyEclipse内存不足配置

醉酒当歌 提交于 2019-12-18 05:47:55
在使用MyEclipse的过程中经常出现内存不足的提示: 提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。 我们打开Eclipse目录。找到Eclipse.ini配置文件。 打开可以看到如下配置信息 -vmargs -Xms64m -Xmx256m 我们修改如下: -vmargs -Xms256m //配置堆内存的最小值 -Xmx256m //配置堆内存的最大值 -XX:PermSize=128M //配置非堆内存的最小值 -XX:MaxPermSize=128M //配置非堆内存的最大值 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了。 先了解jvm的内存管理机制: · 堆 (Heap) 和非堆 (Non-heap) 内存 按照官方的说法: “Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。 ”“ 在 JVM 中堆之外的内存称为非堆内存 (Non-heap memory)” 。可以看出 JVM 主要管理两种类型的内存:堆和非堆

YARN架构设计详解

我怕爱的太早我们不能终老 提交于 2019-12-18 04:26:30
一、 YARN基本服务组件 YARN是Hadoop 2.0中的资源管理 系统 ,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个 系统 的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。 YARN总体上仍然是master/slave结构,在整个资源管理框架中,resourcemanager为master,nodemanager是slave。Resourcemanager负责对各个nademanger上资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。 YARN的基本组成结构,YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个 组件 构成。 ResourceManager是Master上一个独立运行的进程,负责集群统一的资源管理、调度、分配等等

Hadoop YARN中内存的设置

巧了我就是萌 提交于 2019-12-18 04:26:07
在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。 基于以上考虑,YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会被若干个服务共享,比如一部分给YARN,一部分给HDFS,一部分给HBase等,YARN配置的只是自己可以使用的,配置参数如下: (1)yarn.nodemanager.resource.memory-mb 表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。 (2)yarn.nodemanager.vmem-pmem-ratio 任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。 (3) yarn.nodemanager.pmem-check-enabled 是否启动一个线程检查每个任务正使用的物理内存量

linux 运维面试题

大兔子大兔子 提交于 2019-12-18 02:16:38
tomcat 的内存溢出是由什么导致? 解: 1.OutOfMemoryError : Java heap space    2.OutOfMemoryError : PermGen space    3.OutOfMemoryError : unable to create new native thread.   Tomcat 内存溢出解决方案   对于前两种情况,在应用本身没有内存泄露的情况下可以用设置 tomcat jvm 参数来解决。( -Xms -Xmx -XX : PermSize -XX : MaxPermSize )   最后一种可能需要调整操作系统和 tomcat jvm 参数同时调整才能达到目的。  第一种:是堆溢出。 但堆的大小受下面三方面影响:    1. 相关操作系统的数据模型( 32-bt 还是 64-bit )限制;( 32 位系统下,一般限制在 1.5G~2G ;我在 2003 server 系统下(物理内存: 4G 和 6G , jdk : 1.6 )测试 1612M , 64 位操作系统对内存无限制。)    2. 系统的可用虚拟内存限制;    3. 系统的可用物理内存限制。 其初始空间 ( 即 -Xms) 是物理内存的 1/64 ,最大空间 (-Xmx) 是物理内存的 1/4 。可以利用 JVM 提供的 -Xmn -Xms -Xmx

如何修改myeclipse 内存,eclipse.ini中各个参数的作用。

时光怂恿深爱的人放手 提交于 2019-12-17 07:38:46
修改MyEclipse/eclipse文件夹中配置文件eclipse.ini中的内存分配就哦了 =================================== 一般的ini文件设置主要包括以下几项: -vmargs -Xms40m -Xmx256m -XX:PermSize=64M -XX:MaxPermSize=128M 以下解释其意思。 -vmargs:说明后面是VM的参数 -Xms40m:虚拟机占用系统的最小内存 -Xmx256m:虚拟机占用系统的最大内存 -XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小, 堆空间剩余小于5%就会警告,建议把这个稍微设 大一点,不过要视自己机器内存大小来设置 -XX:MaxPermSize:最大堆大小。这个也适当大些 所以若出现问题,首先请调整 -Xms40m:将其设置的小一些,就ok了,1g内存推荐设置为: -vmargs -Xms128M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M 其中-XX:PermSize=64M可以设置大一些,但不能超过MaxPermSize -Xmx512M的5%为25.6M,理论上要求-Xmx的数值与-XX:MaxPermSize必须大于25.6M ===================================

转载: QEMU深入浅出: guest物理内存管理

♀尐吖头ヾ 提交于 2019-12-17 06:48:27
作 者:Stefan Hajnoczi 领 域:Open source and virtualization 适宜读者:对虚拟化有一定了解 背景知识:KVM,Qemu 前言: 众所周知,内存是计算机系统的一个关键组成部分。使用Qemu-kvm方式创建虚拟机时,guest物理内存是由几个不同层面共同管理的。本篇基于Qemu2.5的代码对管理guest物理内存的这几个重要层面进行概括性的解释,为读者深究Qemu源代码奠定了理论基础。 需要注意的是本篇并未涉及guest虚拟内存方面的内容,后续会对其介绍。毕竟使用KVM虚拟化技术的一个重要前提是支持guest与host之间物理内存的转换,并未涉及Qemu中软件模拟的内存管理(即guest虚拟地址与guest物理地址之间的转换)。 一、Guest RAM的配置参数 Qemu命令行选项“-m [size=]megs[,slots=n,maxmem=size]”分别定义了guest物理内存的初始化值,内存条(如DIMM)的可用插槽数以及可支持的guest物理内存最大值。 有了slot与maxmem这两个参数的定义,在Qemu模拟DIMM热插拔的过程中,guest操作系统像host一样,能够监测到内存块的添加或移除。比如向guest中热插拔一块DIMM内存条,就像是在真实物理机上进行的。再者,guest内存热插拔的操作单位并不是字节

【计算机笔记】操作系统概述

核能气质少年 提交于 2019-12-16 22:06:31
基本特征 1. 并发 2. 共享 3. 虚拟 4. 异步 基本功能 1. 进程管理 2. 内存管理 3. 文件管理 4. 设备管理 系统调用 大内核和微内核 1. 大内核 2. 微内核 中断分类 1. 外中断 2. 异常 3. 陷入 基本特征 1. 并发 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。 并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。 操作系统通过引入进程和线程,使得程序能够并发运行。 2. 共享 共享是指系统中的资源可以被多个并发进程共同使用。 有两种共享方式:互斥共享和同时共享。 互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。 3. 虚拟 虚拟技术把一个物理实体转换为多个逻辑实体。 主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。 多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。 虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。 4. 异步 异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

全面认识Eclipse中JVM内存设置

一笑奈何 提交于 2019-12-16 20:48:04
这里向大家描述一下Eclipse中如何进行 JVM 内存设置,JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。 Eclipse中JVM内存设置 eclipse.ini内存设置 -vmargs-Xms128M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=128M 这里有几个问题: 1.各个参数的含义什么? 2.为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3.为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 下面我们一一进行回答 1.各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”

16.内存管理系统

送分小仙女□ 提交于 2019-12-16 14:08:37
利用上一节的位图,来实现内存管理系统。 内存管理本质上就是修改页表项。 位图的作用是用来申请和释放内存时用的。 1. 内存池的规划 无论是内核还是用户进程,最终都要运行在物理内存上,所以物理内存分成两个内存池:用户物理内存池和内核物理内存池。 在分页机制下程序的地址都是虚拟地址,虚拟地址的范围取决于地址总线的长度,咱们32位环境下,虚拟地址的空间是 4GB。 每个任务都有自己的 4GB虚拟地址空间,所以为每个任务(包括内核、用户进程)都维护一个虚拟内存池。 内核需要申请内存空间时,先从内核自己的虚拟地址池中分配虚拟地址,再从内核物理内存池(内核专用)中分配物理内存,然后再内核自己的页表中将这两种地址建立好映射关系。 用户程序申请内存空间时,操作系统先从用户进程自己的虚拟内存池中分配空闲虚拟地址,然后从用户物理内存池(所有用户进程共享)中分配空闲的物理内存,然后在该用户进程自己的页表将这两种地址建立好映射关系。 为简化,无论虚拟内存还是物理内存,分配的最小单位都是 4KB。 接下来先把物理内存池规划好。 /* 用于虚拟地址管理 */ struct virtual_addr { /* 虚拟地址用到的位图结构,用于记录哪些虚拟地址被占用了。以页为单位。*/ struct bitmap vaddr_bitmap ; /* 管理的虚拟地址 */ uint32_t vaddr_start ;

Linux查看CPU和内存使用情况

筅森魡賤 提交于 2019-12-16 10:03:12
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。   运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。 内容解释: 第一行(top):   15:24:36 系统当前时刻   14 days 系统启动后到现在的运作时间   3 users 当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目   load average 当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程 第二行(Tasks):   288 total 当前系统进程总数   1 running 当前运行中的进程数   287 sleeping 当前处于等待状态中的进程数   0 stoped 被停止的系统进程数   0 zombie 僵尸进程数 第三行(Cpus):   7.3% us 用户空间占用CPU百分比   2.0% sy 内核空间占用CPU百分比   0.0%