AIX下运行一个java进程,发现使用内存不断增加,但通过verbose:gc分析,发现其分配的堆内存一直都是70% 空余。即非堆内存一直增加,不知怎么回事,java进程逻辑比较简单,涉及定时读文件操作(一个文本文件大约6Mb),对读出的内容进行分析,插入数据库中,这之中,还有一些反射操作。
我在Windows Xp环境下进行测试,发现一切正常,内存会自动减少。
但我把程序放到AIX5.3 中,jdk使用1.4.2,运行时就发现如上所描述的现象,在ps avg查看时,发现rss项一直在增加,尽管增加的不多,但却一直增加(我运行了两天,利用crontab,发现java进程的rss没有减少过,即使没有文件,定时器空跑,内存也不降低)。
有哪位大侠遇到过此现象或有一些建议,能否给出解决方法,小弟在此拜谢了。
另外,java启动脚本如下:java -Xmx256m -Xms200m -Xloratio0.3 -verbose:gc myjar.jar
目前基本上清楚了,程序本身没有问题,ibm的jre的gc策略比较特殊,当内存增长到一定程度(好像是堆内存分配线到达Xmx,即堆内存到达了Xmx,但其中还有很多不连续的空余内存)时,则开始降低。
就像oracle的高水位线。
分享到:
相关推荐
查看Aix进程占用内存大小 内存从大到小排序 CPU占用率从大到小排序 内存从大到小排序(详细执行命令)
本文将深入探讨AIX的内存分配机制,特别是针对32位进程的限制以及如何为JVM堆大小进行优化。 首先,32位AIX进程的最大可寻址内存为4GB。然而,这4GB的地址空间并非全部供程序使用,而是被划分为多个部分,包括内核...
在IBM AIX操作系统中,Java应用程序的运行可能会遇到各种问题,这时分析javacore文件就显得尤为重要。javacore文件是IBM Java虚拟机(JVM)在遇到特定情况(如异常、系统崩溃或用户请求)时生成的一种核心转储文件,...
在需要超过2GB堆内存的情况下,64位Java是必需的。IBM的官方网站提供了AIX上的Java软件和补丁下载。 3. Java性能准则 - **字符串操作**:优先使用字符串缓冲区,而非频繁的字符串连接。 - **减少I/O操作**:避免...
如果一个进程的内存使用量在一段时间内持续增加,而没有明显的释放,那么可能存在内存泄漏。此外,可以使用gdb等调试工具进行更深入的分析,检查代码中的内存分配和释放行为。 总结来说,检查AIX系统中的内存泄漏...
这是因为虽然释放了16MB的内存,但系统将其保留在进程自身的空间块树中,因此下一次8MB的分配实际上是直接从进程已有的16MB空闲块中获取的。 - **继续递减**:接下来释放8MB内存,分配4MB内存,并初始化后,地址...
在AIX系统中,`ps v`和`svmon`都可以用来查看进程的内存使用情况,但它们显示的单位和信息有所不同。`ps v`显示的是进程的基本信息,而`svmon`可以提供更详细的内存使用情况。 例如,对于PID为23288的进程,我们...
AIX系统java包,Java8_64.jre.8.0.0.705,Java8_64.sdk.8.0.0.705
### IBM AIX 6.1 环境下 Java JRE、SDK 的安装与卸载 #### 一、概述 本文旨在详细介绍如何在 IBM AIX 6.1 操作系统环境中进行 Java JRE 和 SDK 的安装及卸载,并对相关的环境变量配置方法进行了详尽的说明,帮助...
本文将深入解析在AIX系统环境下,如何通过设置特定环境变量来有效收集Heapdump和JavaCore,以及相关的重要操作步骤,以供WebSphere应用服务器(WAS)的管理员或开发者参考。 ### AIX系统下收集Heapdump和JavaCore的...
从IBM 站点 一个perl 的脚本转过来的。打印内存利用情况。 python 3.0
3. **交换空间**:当物理内存不足时,AIX会将不活跃的进程或数据页移动到硬盘上的交换空间,以释放物理内存供其他进程使用。 二、AIX内存类型 1. **用户空间**:这是应用程序可以访问的内存区域,通常不超过2GB。 ...
在AIX 5.3操作系统环境下,开发人员可以利用Java和PHP这两种强大的技术来构建复杂的Web应用程序。本文主要探讨了如何在AIX中整合这两种语言,以实现更高效的开发流程。作者 Doug Monroe 和 Martin Brown 提供了一个...
解压后,开发者可以找到编译器`javac`、反编译器`javap`、打包工具`jar`、性能分析工具`jmap`、内存堆转储工具`jhat`等一系列用于开发和优化Java应用程序的工具。 安装AIX JDK1.8 64位通常包括以下步骤: 1. 下载...
AIX操作系统下的进程管理是一个综合性的课题,涉及进程的状态管理、调度策略、通信机制、控制方式、资源限制、监控工具以及安全权限等多个方面。掌握这些知识点不仅能够帮助系统管理员更高效地管理服务器,还能够为...
调整堆大小、新生代和老年代比例,以及垃圾回收策略等,可以改善Java应用的内存性能。 6. **数据库调优**:对于运行数据库服务的AIX系统,数据库内存配置(如Oracle的SGA、PGA)也需优化,以确保高效的数据处理和...
在AIX操作系统上,使用C++调用Java类(包)是一种常见的跨语言交互技术,主要依赖于Java Native Interface (JNI)。JNI允许Java代码调用本地(非Java)代码,反之亦然,使得C++和Java可以无缝协作。下面我们将深入...