虚拟内存

Hadoop YARN参数介绍(四)[推荐]

匿名 (未验证) 提交于 2019-12-02 23:56:01
Container Container就是一个yarn的java进程,在Mapreduce中的AM,MapTask,ReduceTask都作为Container在Yarn的框架上执行,你可以在RM的网页上[8088端口]看到Container的状态。 基础 Yarn的ResourceManger(简称RM)通过逻辑上的队列分配内存,CPU等资源给application,默认情况下RM允许最大AM申请Container资源为8192MB("yarn.scheduler.maximum-allocation-mb"),默认情况下的最小分配资源为1024M("yarn.scheduler.minimum-allocation-mb"),AM只能以增量("yarn.scheduler.minimum-allocation-mb")和不会超过("yarn.scheduler.maximum-allocation-mb")的值去向RM申请资源,AM负责将("mapreduce.map.memory.mb")和("mapreduce.reduce.memory.mb")的值规整到能被("yarn.scheduler.minimum-allocation-mb")整除,RM会拒绝申请内存超过8192MB和不能被1024MB整除的资源请求[内存增量]。 1 yarn-site.xml设置

.NET 程序内存占用问题

匿名 (未验证) 提交于 2019-12-02 23:49:02
原文链接: http://www.cnblogs.com/fromchaos/archive/2012/08/27/2658033.html 1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多 2、强制垃圾回收 3、多dispose,close 4、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);具体见附录。 5、发布的时候选择Release 6、注意代码编写时少产生垃圾,比如String + String就会产生大量的垃圾,可以用StringBuffer.Append 8、注意变量的作用域,具体说某个变量如果只是临时使用就不要定义成成员变量。GC是根据关系网去回收资源的。 9、检测是否存在内存泄漏的情况,详情可参见:内存泄漏百度百科 定期清理执行垃圾回收代码: //在程序中用一个计时器,每隔几秒钟调用一次该函数,打开任务管理器,你会有惊奇的发现 #region 内存回收 [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")] public static extern int SetProcessWorkingSetSize(IntPtr

IPC――概述

匿名 (未验证) 提交于 2019-12-02 22:56:40
  现在的OS都引入了虚拟内存机制。我们说的内存空间,实际上虚拟内存空间,CPU执行PC指向的命令,PC指向的就是虚拟内存空间地址。虚拟内存机制只不过是OS为我们做了一层虚拟内存地址到物理内存地址的映射,我们不需要管具体是怎么映射的,直接用就完了。每个进程的虚拟地址空间都是一样的,所以A进程的0x300不会和B进程的0x300冲突,就好比1楼A002号房,和2楼A002号房,虽然都是A002号房,但是他们是不一样的,不会地址冲突。   引入虚拟内存最大的好处就是使应用进程变得安全了,对于OS上的应用进程,他的空间都是OS划分的,只能在自己的小天地里面折腾。他不能去别人的空间搞破坏,别人也不可能过来骚扰自己。如果木马以应用进程身份运行的话,他就不能做破坏,除非是OS级木马,直接黑掉OS,否则根本不可能进入到别人的虚拟内存空间搞破坏。但是事务太绝对就会引入另一个问题――进程间通信 进程间通信的本质――数据共享   在OS虚拟内存机制作用下,每个进程拥有独立的进程空间。尽管进程空间是各自独立的,相互之间没有任何可以共享的空间,但是至少还有一样东西是所有进程所共享的,那就是OS,因为甭管运行有多少个进程,但是它们共用OS只有一个。既然大家共用的是同一个OS,那么显然,所有的进程可以通过大家都共享第三方OS来实现数据共享。因此进程间通信的原理就是,OS作为所有进程共享的第三方

Java NIO 学习笔记一

匿名 (未验证) 提交于 2019-12-02 21:52:03
进程执行I/O操作,归结起来就是向操作系统发出请求,它要么把缓存区例的数据排干(写),要么用数据把数据区填满(读)。进程使用这一机制处理所有数据进出操作。 进程使用read()系统调用,要求其缓存区被填满。内核随即向磁盘控制器发出命令,要求其从磁盘读取数据。通过DMA技术直接将磁盘中的数据写入内核内存缓存区,一旦磁盘控制器把缓存区填满,内存立即把数据从内核空间的里你是缓冲区拷贝到进程执行read()调用时指定的缓冲区。 根据发散/汇聚的概念,进程只需要一个系统调用,就能把一连串的缓冲区地址传递给操作系统。然后,内核就能顺序填充或排干多个缓冲区,读的时候将数据发散到多个用户空间缓冲区,写的时候再从多个缓冲区把数据汇聚起来。 前面提到设备控制器不能使用DMA直接存储到用户空间,需要从内核空间拷贝到用户空间。但在使用内存多重映射技术可以避免这种拷贝。 现代操作系统都使用虚拟内存,它有极大优点: 多个虚拟地址可以映射到同一个物理地址。 虚拟内存空间可能大于实际可用的硬件内存。 借助虚拟内存的特点,将内核空间中的缓冲区的虚拟地址和用户空间的缓冲区虚拟地址映射到一个物理地址(即内存多重映射技术)。 但这也是有前提的,内核与用户缓冲区必须使用相同的页对齐,缓冲区的大小还必须是磁盘控制块大小的倍数。 确定请求的数据分布在文件系统的哪些页,这些页不一定都是连续的 在内核空间种分配足够的页

VMWare 禁用虚拟内存文件(*.vmem)

半腔热情 提交于 2019-12-02 14:31:35
1、使用 VMWare 虚拟机,虚拟机启动后,会在虚拟机目录下建立一个与虚拟内存大小相同的 .vmem文件,例如:564db13c-c92d-3d3a-41a0-f62af7536fda.vmem。 2、这个文件主要是将虚拟机内存的内容映射到磁盘,以支持在虚拟机的暂停等功能。如果你不用或不经常需要暂停、快速启动的话,可以禁用该功能,以提高性能并增加硬盘寿命。 该当是找到*.vmx文件,在文件最后加入一行 mainMem.useNamedFile=FALSE, 重新启动虚拟机,虚拟内存文件就没有了。 来源: https://www.cnblogs.com/360minitao/p/11750409.html

32位和64位系统的区别

為{幸葍}努か 提交于 2019-12-02 08:09:27
前言 64位系统和32位系统首先涉及到提取数据的能力,64位系统肯定比32位系统提取数据的能力强一倍 但是这只是建立在64位操作系统的64位软件上。 进程的64位和32位和程序的地址空间是32位还是64位有关,而不是和操作系统有绝对关系 64位系统和32位的寻址能力的比较 1.64位CPU拥有更大的寻址能力,最大支持到16GB内存(了解64位系统支持多少内存,看下面介绍),而32bit只支持4G内存 64位系统和32位的提取数据能力比较 2.64位cpu一次性可以提取64位数据,比32位提高了一倍,理论上性能会提升一倍。 但这是建立在64位操作系统和64位软件的基础上的。 什么是64位处理器? 64位处理器实际上一次处理数据的能力是64位,和8,16,32位比较,都是一次处理数据的能力更加打,之所以很少听过128位,是因为目前的计数暂时无法制造这么复杂的芯片 64位系统和32位的进程中指针一个是4字节一个是8字节 指针其实就是地址,为了区分2的64次方个字节,必须要一个大的计数单位,所以需要8个字节,同理,2的32次方个字节需要4个字节的变量大小来计数。 (1)在一个运行在64位的进程和32位的进程比较,它们的指针一个是4字节,一个是8字节 32位的机器的寻址能力2的32次方,也就是是4个G,64位的机器的寻址能力理论是2的64次方,肯定大于8个G。 (2

linux vmstat命令详解

北城以北 提交于 2019-12-02 03:41:47
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat 工具提供了一种低开销的系统性能观察方式。因为 vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat 输出结果。在学习vmstat命令前,我们先了解一下Linux系统中关于物理内存和虚拟内存相关信息。 物理内存和虚拟内存区别: 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在 linux 下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间( Swap Space )。 作为物理内存的扩展, linux 会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时

某网络监视器完整逆向

自作多情 提交于 2019-12-01 19:26:48
✎引子:   早些时候想去研究 Windows Filter Platform (WFP) ,参考资料少且不齐全。贴吧、论坛搜集一些关于网络过滤、网络监听的工具。开始琢磨别人是怎样写,怎样实现的。然而没有去研究驱动层(很多原理性的东西需要时间),自己写用户层前一直琢磨,三环如何去实现这些网络监听?用什么API可以实现对数据包的捕获呢?怎样把这些数据进行处理?   当我看到其中的项目的时候,单纯的.exe文件,运行后也没有释放dll之类的动态资源, 脑海中出现一个念头shellCode (这里就先叫shellCode了,其实准确说是机器码)。这个程序是好多年前的,比较单一,注入任意进程,捕获网络响应数据,兼容性也还不错,用360浏览器做测试,windows7~windwos10网络响应捕获正常。  这是给大家提供 一些逆向的思路 ,并不是教程系列,有一定逆向基础才可以(对汇编、网络编程、OD等工具了解)。当遇到类似的程序或者问题,对他们的实现原理做到心中有度。 如下图所示:                    图片一:网络监控exe ✎逆向分析目录: 1、注入代码分析 2、shellCode调试方法 3、shellCode动态分析 --------★ ★ ★------- -----------------★ ★ ★------------------- -----------★

内存管理

本小妞迷上赌 提交于 2019-12-01 13:20:26
内存 内存使用: 将程序放到内存中,PC指向开始地址,然后取指执行。 物理内存: 实际内存。 虚拟内存: 1. 每一个运行的进程,都会获得一个内存地址空间,这就是所谓的虚拟内存。 2. 这里面的所有地址都是虚拟的,和物理内存并不直接挂钩。 3. 这些虚拟地址所映射到的实际地址,可以是物理内存地址,也可以是页面文件的地址。 4. 如果物理内存小于这个虚拟地址的范围, 使用的时候可以将内存数据写入页面文件,通过清空内存数据,以提高物理内存的利用效率。 页面文件: 硬盘上的一块空间,在Windows下表现为一个文件。 这个页面文件存在的意义就是在物理内存被占用满以后, 将物理内存中的东西移动到硬盘上,腾出物理内存给需要的应用程序来使用。 内存管理 内存管理和虚拟内存管理: 内存管理包括: 程序装入等概念、 交换技术、 连续分配管理方式、 非连续分配管理方式(分页、分段、段页式)。 虚拟内存管理包括: 虚拟内存概念、 请求分页管理方式、 页面置换算法、页 面分配策略、 工作集、 抖动。 程序装入和链接 编译: 由编译程序将用户源代码编译成若干个目标模块。 链接: 由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块。 装入: 由装入程序将装入模块装入内存运行。 重定向(修改程序中的相对地址): 1. 编译时重定位的程序只能放在内存固定位置 2.

mina 之 java.lang.OutOfMemoryError

怎甘沉沦 提交于 2019-12-01 06:57:41
前段时间在测试过程中发现了mina框架的问题:当mina一次传输的文件超过一定值(如55m)或者连续传输文件的次数过于频繁,就会内存溢出: org.apache.mina.filter.codec.ProtocolEncoderException:java.lang.OutOfMemoryError: Java heap space atorg.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:217) atorg.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361) atorg.apache.mina.common.support.AbstractIoFilterChain.access$1300(AbstractIoFilterChain.java:53) atorg.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:659) atorg.apache.mina