`
koreyoshi
  • 浏览: 241905 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

set 服务器虚拟内存

    博客分类:
  • Java
 
阅读更多

使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.

1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m

2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat  中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined  这行的下面加合适.

3.如果是linux系统
Linux  在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS='-Xms64 -Xmx512'

分享到:
评论

相关推荐

    Redis入门(环境搭建、数据类型、排序、事务、持久化、虚拟内存)

    Redis 是一个开源的 key-value 数据库,提供了丰富的数据类型、事务、持久化、虚拟内存等功能。下面是 Redis 入门相关的知识点总结: 环境搭建 * Redis 是一个开源的 key-value 数据库 * Redis 提供了丰富的数据...

    .NET Core监控系统CPU内存等信息的工具.zip

    `VirtualMemorySize64`则包括了进程的虚拟地址空间大小,这不仅包括已分配的内存,还包括预留但尚未使用的内存。 为了提高性能,可以考虑使用缓存策略。例如,可以定期获取系统资源信息并存储在内存中,然后在需要...

    MySQL内存及虚拟内存优化设置参数

    MySQL内存及虚拟内存优化是数据库性能调优的重要环节,尤其是在处理大量数据或高并发查询时,合理的内存设置能显著提升数据库的响应速度和整体效率。以下是对MySQL内存及虚拟内存优化设置参数的详细解释: 1. **...

    Windows平台服务器常用指标分析.docx

    虚拟内存(Virtual Memory)是 Windows 平台服务器中的一种技术,用于解决内存不足的问题。虚拟内存是指硬盘空间的一部分,用于充当内存使用。虚拟内存也被称为“页面文件”,存在于硬盘上的 PAGEFILE.SYS 文件中。 ...

    Web服务器nginx虚拟主机与反向代理.docx

    2. **资源占用**: 相比Apache等其他Web服务器,Nginx占用更少的内存和其他系统资源。 3. **模块化设计**: Nginx采用了静态编译的模块化架构,使得其配置更加简洁且易于维护。 4. **热部署能力**: 在不中断服务的情况...

    redis内存模型介绍

    通过以上介绍,我们可以了解到Redis内存模型的核心概念,包括数据类型的定义、持久化机制的选择以及如何利用虚拟内存机制和主从复制机制来优化Redis的应用性能。这些知识点对于深入理解Redis的工作原理和高效使用...

    减少Oracle内存占用

    - 在Windows XP系统中,还需要注意虚拟内存的配置,避免因物理内存不足而导致频繁的页面交换。 通过上述措施,可以在保证Oracle 10g正常运行的同时,显著降低其在Windows XP环境下的内存占用,确保系统整体性能...

    修改Windows系统单进程使用的内存上限

    请注意,这并不意味着实际物理内存会增加,而是允许进程使用更多的虚拟内存。 3. 输入命令后,你需要重新启动计算机以使更改生效。重启后,系统将按照新的设置分配内存。 如果之后需要恢复原来的设置,可以执行...

    服务器与数据存储复习资料

    IBM服务器内存技术包括DIMM、RDIMM、LRDIMM等,HP服务器内存技术有SmartMemory,chicpkill是一种内存保护技术,Hpecc是硬件错误校验和控制。 四、系统总线技术 计算机系统总线经历了ISA、VESA、PCI、PCI-X、PCI-E等...

    内存管理内存管理内存管理

    如您所见,brk() 或者 mmap() 都可以用来向我们的进程添加额外的虚拟内存。在我们的例子中将使用 brk(),因为它更简单,更通用。 实现一个简单的分配程序 如果您曾经编写过很多 C 程序,那么您可能曾多次使用过 ...

    TOMCAT内存溢出之解决方法

    Tomcat内存溢出是由于JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致出现HTTP500的错误。当用户执行一个大数据的应用时,系统会提示出错,前台错误为:HTTP Status 500-Dispatch[EAITool] ...

    RISC服务器

    RISC(Reduced Instruction Set Computing,精简指令集计算)服务器是高性能计算领域的重要组成部分,尤其是在Unix操作系统下,它们展现了卓越的稳定性和处理能力。在Unix服务器市场,尽管近年来市场份额有所下滑,...

    监控内存使用状态.rar

    比如,了解驻留集(Resident Set Size, RSS)、虚拟内存(Virtual Memory)、分页(Paging)和交换(Swapping)等概念,可以帮助我们更好地分析内存使用情况。例如,当系统频繁进行页面交换,可能导致性能下降,这时...

    c#获取系统和指定进程的CPU和内存占用率

    - 再创建一个实例,类别为"Memory",计数器为"Commit Total",这表示已分配给进程的虚拟内存总和。 - 内存占用率可以通过(Commit Total - Available MBytes) / Commit Total * 100来计算。 接下来,我们转向获取...

    服务器基础知识培训.ppt

    按照功能应用,服务器可以分为多种类型,包括域控制服务器、文件服务器、打印服务器、数据库服务器、邮件服务器、Web服务器、多媒体服务器、通讯服务器、终端服务器、基础设施服务器和虚拟化服务器。这些服务器各有...

    服务器基础与日常运维..ppt

    服务器虚拟化技术是现代数据中心的重要组成部分,它允许在单个物理服务器上运行多个独立的虚拟机(VM),每个虚拟机可以运行不同的操作系统和应用程序。这有助于节省硬件成本,简化管理,并提高资源灵活性。例如,...

    操作系统(内存管理)

    如您所见, brk() 或者 mmap() 都可以用来向我们的进程添加额外的虚拟内存。在我们的例子中将使用 brk(),因为它更简单,更通用。 实现一个简单的分配程序 如果您曾经编写过很多 C 程序,那么您可能曾多次使用过 ...

    服务器硬件基础知识.docx

    - **虚拟化服务器**:通过虚拟化技术在同一物理服务器上运行多个独立的虚拟环境。 服务器与个人计算机(PC)和工作站的主要区别在于服务器通常设计为长时间稳定运行,具备更高的可扩展性、冗余组件和性能优化,而PC...

Global site tag (gtag.js) - Google Analytics