物理内存

Eclipse.ini参数简介

淺唱寂寞╮ 提交于 2019-12-04 22:04:09
本篇文章讲述eclipse.ini参数的含义和设置。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 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据

eclipse.ini配置文件

北城余情 提交于 2019-12-04 18:38:49
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 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。 堆内存分配 JVM初始分配的内存由-Xms指定

java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 的区别

寵の児 提交于 2019-12-04 18:38:33
Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommended that you exit and restart MyEclipse with new virtual machine memory paramters to increase this memory. Failure to do so can result in data loss. The recommended Eclipse memory parameters are: eclipse.exe -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 1.参数的含义 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M JVM初始分配的非堆内存 -XX

常见的性能测试指标和常用的性能测试方法

本小妞迷上赌 提交于 2019-12-04 16:16:13
一、性能测试概念 性能:事务、物品的某些特性的评价值 性能测试:通过测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试 二、性能测试指标 性能指标分为两个方面: 系统指标(与用户场景和需求相关指标) 资源指标(与硬件资源消耗相关指标) 1.响应时间 从发起请求到收到请求响应的时间 响应时间=网络响应时间+应用程序响应时间=(N1+N2+N3+N4)+(A1+A2+A3) 2.并发数 单位时间内发起请求的用户数 并发用户数C,计算公式C=nL/T n:每天访问系统的用户数 L:在线用户从登陆到退出的时间 T:用户每天使用系统大概多长时间 峰值C1,即最大并发数,计算公式C1=C+³√C 最佳并发用户数:当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待 最大并发用户数:系统的负载一直持续,有些用户在处理而有的用户在自己最大的等待时间内等待的时候 3.吞吐量、吞吐率 衡量网络性能的重要指标 吞吐量:网络传输的数据量(处理客户的请求数) 吞吐率:单位时间(可以是秒/分/时/天)内网络成功传输的数据量,如请求数/秒、页面数/秒 4.事务、TPS 事务:一个动作或是一系列动作的集合,比如用户从登录到退出的一个场景就为一个事务 TPS:Transaction per second——最主要的性能指标,衡量服务器处理事务数的能力

1.树莓派3安装archlinux通用配置部分

二次信任 提交于 2019-12-04 09:23:41
本文永久地址:https://my.oschina.net/bysu/blog/1560594 安装过程请参考:https://my.oschina.net/bysu/blog/1557801 树莓派3安装archlinux配置web、samba和aria2请参考 买了个树莓派3主要是想用来当家用NAS和学习编程。由于树莓派性能有限,故此分两种环境配置。现在先配置通用环境部分。 强插入: 虚拟内存 分区 (该节点未验证,网上看到,记录为日后不时之需) 创建交换文件 交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。 之前我们通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。 分配一块空间用于交换文件,执行: fallocate -l 512M /swapfile (请将512M换成需要的大小,只能以M或G为单位) 更改权限,执行:交换文件的大小可以自己决定,推荐4G以下的物理内存,交换文件与物理内存一致,4G以上的物理内存,交换文件4-8G。 chmod 600 /swapfile mkswap /swapfile 设置交换文件,执行: 启用交换文件,执行: swapon /swapfile vim /etc/fstab 最后我们需要编辑 /etc/fstab 为交换文件设置一个入口,使用 vim

linux vmstat命令

时光毁灭记忆、已成空白 提交于 2019-12-04 08:45:08
mstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。 物理内存和虚拟内存区别 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间( Swap Space )。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。 linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。 要深入了解linux内存运行机制,需要知道下面提到的几个方面: 首先,Linux系统会不时的进行页面交换操作

JAVA虚拟机起步-虚拟机调优

喜夏-厌秋 提交于 2019-12-04 07:31:19
JAVA虚拟机起步OutOfMemory问题解决记录。 问题: JAVA虚拟机报错 # java.lang.OutOfMemoryError: requested 32756 bytes for ChunkPool::allocate. Out of swap space? # # Internal Error (allocation.cpp:117), pid=26666, tid=2409851824 # Error: ChunkPool::allocate 解决办法: 平衡每个线程需要的内存存储器的堆栈大小,在程序内部控制线程总数量。 理论: JVM线程堆栈 应用程序中的每个线程都需要内存来存储器堆栈(用于在调用函数时持有局部变量并维护状态的内存区域)。每个 Java 线程都需要堆栈空间来运行。 根据实现的不同,Java 线程可以分为本机线程和 Java 堆栈。除了堆栈空间,每个线程还需要为线程本地存储(thread-local storage)和内部数据结构提供一些本机内存。 JVM堆栈大小 -Xss 128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆 栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。 在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一 个进程内的线程数还是有限制的,不能无限生成,经验值在3000

RocketMQ 主从同步若干问题答疑

我的未来我决定 提交于 2019-12-04 06:57:39
目录 1、初识主从同步 2、提出问题 3、原理探究 3.1 RocketMQ主从读写分离机制 3.2 消息消费进度同步机制 4、总结 温馨提示:建议参考代码RocketMQ4.4版本,4.5版本引入了多副本机制,实现了主从自动切换,本文并不关心主从切换功能。 @(本节目录) 1、初识主从同步 主从同步基本实现过程如下图所示: RocketMQ 的主从同步机制如下: A. 首先启动Master并在指定端口监听; B. 客户端启动,主动连接Master,建立TCP连接; C. 客户端以每隔5s的间隔时间向服务端拉取消息,如果是第一次拉取的话,先获取本地commitlog文件中最大的偏移量,以该偏移量向服务端拉取消息; D. 服务端解析请求,并返回一批数据给客户端; E. 客户端收到一批消息后,将消息写入本地commitlog文件中,然后向Master汇报拉取进度,并更新下一次待拉取偏移量; F. 然后重复第3步; RocketMQ主从同步一个重要的特征:主从同步不具备主从切换功能,即当主节点宕机后,从不会接管消息发送,但可以提供消息读取。 温馨提示:本文并不会详细分析RocketMQ主从同步的实现细节,如大家对其感兴趣,可以查阅笔者所著的《RocketMQ技术内幕》或查看笔者博文:https://blog.csdn.net/prestigeding/article/details

虚拟地址到物理地址的地址变换过程【转】

拜拜、爱过 提交于 2019-12-04 06:06:26
转自: https://blog.csdn.net/yunfenglw/article/details/45603823 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/yunfenglw/article/details/45603823 虚拟地址到物理地址的地址变换过程 2015-05-09 青岛 张俊浩 内容部分来自《Unix内核源码剖析》 软件环境:UNIX V6 硬件环境:PDP-11/40(16位计算机) 第二章《进程》一节阐述了PDP-11/40的虚拟地址到物理地址的地址变换过程。 MMU通过APR(Active Page Register)寄存器将虚拟地址变换为物理地址。 APR寄存器由一个PAR(Page Address Register)寄存器和一个PDR(Page Description Register)寄存器构成。 内核通过向与执行进程相对应的、供用户进程用使用的APR设定适当的值,保证各用户拥有独立的虚拟地址空间。 APR共有8组,APR[0]-APR[7]。进程的虚拟地址空间以页或者段为单位进行管理,一组APR对应一页。APR{PAR,PDR},PAR用来保存与各页物理地址的基地址有关信息,PDR用来保存各页的块(以64字节为单位

分页内存管理——虚拟地址到物理地址的转换【转】

大城市里の小女人 提交于 2019-12-04 06:05:27
转自: https://blog.csdn.net/qq_39755395/article/details/78380942 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_39755395/article/details/78380942 引子: 这是逻辑地址(虚拟地址),包括程序中打印的变量地址显示的都是逻辑地址,并不是内存空间上的物理地址。 每条指令在被执行时,读取操作数时需要给出操作数所在的内存地址,这个地址不能是物理主存地址,因为该程序在哪种硬件设置的机器上运行并不能事前确定,那操作系统就不能在此给出对应于某台机器的物理地址。 一、物理内存和虚拟内存 我们先来了解一下,什么是物理内存,什么又是虚拟内存? 1.物理内存:指通过物理内存条而获得的内存空间,主要作用是在计算机运行时为操作系统和各种程序提供临时储存。 2.虚拟内存:对内存架构(内存、缓存、硬盘)进行管理(内存管理系统)的一种手段。简单理解就是在硬盘上划分出一块区域作为内存使用。 2.1 对于用户: 计算机主要面向的是对操作系统等计算机知识几乎没有了解的普通大众,他们大多是不了解什么主存外存的,所以为了方便用户的使用,就有必要使得程序不管是位于内存架构的哪个层次,对于用户来说都是一样的