- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Running 32 bit programs on 64 bit HP UNIX
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 03:26 AM
06-20-2009 03:26 AM
Running 32 bit programs on 64 bit HP UNIX
I am using HP UNIX 11.23 on Itanium 64bit. My OS is 64 bit and my server has 24 GB
Memory, most of the memory is free when I see in glance.
If I run 32 bit application like java, does each java process can address maximum of 4GB (may be less)
Or all java processes combined can only 4GB, so rest of the memory is unused.
i.e.
Java (process 1 can access 4GB memory)
Java (process 2 can access another 4GB memory)
Total memory taken to be 8GB instead of 4GB.
My server has several java processes running; glance shows 15GB free memory. When I start a new
Jvm by typing:
Java
Java immediately gives error:
“Error occurred during initialization of VM
Could not reserve enough space for object heap”
Unfortunately I am stuck using 32 bit java, but I will be really surprised that on a 64 bit OS 4GB limit will apply to all the 32 bit processes combined instead of each 32 bit process.
…
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 03:38 AM
06-20-2009 03:38 AM
Re: Running 32 bit programs on 64 bit HP UNIX
>>Could not reserve enough space for object heapâ
How much swap space you have ?
#swapinfo -tam
Regards,
Aneesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 03:56 AM
06-20-2009 03:56 AM
Re: Running 32 bit programs on 64 bit HP UNIX
The maximum memory limit for 32 bit process data is 3.8 Gb if fourth quadrant is enabled .
You can verify by using
# chatr file|grep -e disable -e enable
But this 3.8 GB is shared among all 32 bit programs ,so the total data space of all 32bit process will be the maximum of only 3.8 GB.
For more information ,
#man chatr
Regards,
Aneesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 07:08 AM
06-20-2009 07:08 AM
Re: Running 32 bit programs on 64 bit HP UNIX
By the way what is the file in
chatr file
command you provided.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 07:12 AM
06-20-2009 07:12 AM
Re: Running 32 bit programs on 64 bit HP UNIX
Mb Mb Mb PCT START/ Mb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 8192 0 8192 0% 0 - 1 /dev/vg00/lvol2
reserve - 5184 -5184
memory 24443 4304 20139 18%
total 32635 9488 23147 29% - 0 -
psgtwp1.twpora=>
2. Will 4th quardent be enabled by default? If its not enabled, is 2GB is the limit for all 32 processes.
I want to check with my UNIX administrator but still not clear what to run to get this verification:
chatr fiel...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 11:06 AM
06-20-2009 11:06 AM
Re: Running 32 bit programs on 64 bit HP UNIX
It depends on how it was linked. By default it can only get 1 Gb, and much less if maxdsiz is smaller or if maxssiz is large.
Using chatr(1) on your "real" java executable will tell you. See Aneesh's reply.
Except +q3p and +q4p do not apply to Integrity executables. You are looking for MPAS.
>Or all java processes combined can only 4GB, so rest of the memory is unused.
This is a 64 bit machine. So every region that is private, is separate.
>"Error occurred during initialization of VM
Could not reserve enough space for object heap"
What options did you give to java? This seems to indicate your maxdsiz is too small.
>I am stuck using 32 bit java
Why? You use 32 bit JNI?
>4GB limit will apply to all the 32 bit processes combined instead of each 32 bit process.
Right, even on a 32 bit OS (PA-RISC), multiple processes combined, can address more than 4 GB.
>By the way what is the file in "chatr file" command you provided.
The real java executable. Not the one you invoke.
>2. Will 4th quadrant be enabled by default?
I assume MPAS is enabled for java but you'll need to check.
>is 2GB is the limit for all 32 processes.
It depends on how it was linked, then maxdsiz.
>I want to check with my UNIX administrator but still not clear what to run to get this verification:
You first need to check the kernel parms maxdsiz and maxdsiz_64bit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 03:04 PM
06-20-2009 03:04 PM
Re: Running 32 bit programs on 64 bit HP UNIX
When I run chatr on /opt/java1.5/bin/java
file is not a valid elf file.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 06:14 PM
06-20-2009 06:14 PM
Re: Running 32 bit programs on 64 bit HP UNIX
I was able to start a jvm with 3600M of hepa memory even thousg maxdssize parameter is 1G. How is that possible?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 06:25 PM
06-20-2009 06:25 PM
Re: Running 32 bit programs on 64 bit HP UNIX
Yes, only 1 Gb. Yes.
>When I run chatr on /opt/java1.5/bin/java: file is not a valid elf file.
This isn't the "real" java executable. This driver execs the real one.
>Can I change any kernel parameters to increase this
maxdsiz, increase it to 4 Gb.
>I was able to start a jvm with 3600M of heap memory even though maxdsiz parameter is 1G. How is that possible?
You might get the error later?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2009 08:39 PM
06-20-2009 08:39 PM
Re: Running 32 bit programs on 64 bit HP UNIX
Are you sure that your jvm is 32 bits? The kernel will not & cannot allow such a heap memory for a 32bit process. Because, not that 250MB is allocated for I/O space in every 32 bit process.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2009 01:54 AM
06-21-2009 01:54 AM
Re: Running 32 bit programs on 64 bit HP UNIX
This is an application problem not an OS problem. The OS is fully capable of running 32 bit applications.
The reason we have 64 bit OS and 64 bit applications is to get around these issues.
The problem is 32 bit Java and there is nothing that can be done, save for getting or writing applications that can use 64 bit Java.
SEP
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2009 04:27 AM
06-21-2009 04:27 AM
Re: Running 32 bit programs on 64 bit HP UNIX
For some reaosn HP UNIX is posing this limit even though it is 64bit OS. Majority of applications are still 32 bit, only db vendors such as Oracle have 64 bit. Even in Oracle, some command such rman etc still use 32 bit executables.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2009 12:10 PM
06-21-2009 12:10 PM
Re: Running 32 bit programs on 64 bit HP UNIX
You are confused. This is a sysadmin problem, you must first set maxdsiz to 4 Gb.
>For some reason HP-UX is posing this limit even though it is 64bit OS.
Only because you ordered it to do so.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-21-2009 05:27 PM
06-21-2009 05:27 PM
Re: Running 32 bit programs on 64 bit HP UNIX
There is nothing magic in a 64 bit OS. It can't make the program use more memory than it can address. You are using Java 32 bit and even with the MPAS model, you'll be limited to 32 bit addresses even with 256 GB of RAM -- which is not a limitation of the OS. You would have to recompile all the Java code to expand the address range. That is called 64 bit Java.
Note that Java is supplied in several executable models depending on how much memory you give thye Java engine at startup. There are EXEC_MAGIC, +q3p and +q4p versions which are selected by the startup command line. You must change maxdsiz to 4GB in order to use more than 1 GB. Also make sure that maxdsiz_64 is much larger. HP-UX will use the smaller of the two parameters for 32 bit programs. Use Glance to examine Java process for the actual heap memory being used.
Bill Hassell, sysadmin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-22-2009 02:20 AM
06-22-2009 02:20 AM
Re: Running 32 bit programs on 64 bit HP UNIX
That's not true in all cases. On PA-RISC, you can address 64 bits with space registers, long pointers, even in 32 bit mode. Of course you need OS support, MPE/iX.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2009 05:09 AM
06-25-2009 05:09 AM
Re: Running 32 bit programs on 64 bit HP UNIX
My question was not limited to a single 32 bit JVM which may be limited to around 4GB, but to all the JVMS's running on that system. When we have 64 bit address space, why can't each JVM can have its own 32 bit address space.
My UNIX Admin's have not yet changed maxdsiz parameter but most of the people seem to say 4GB limitation is for all the 32 bit programs combined on that server. I hope they are wrong.
The place where I work it is impossible to move from 32 bit java to 64 bit. We have 64 bit Oracle on the server, Oracle installs java in its own directories and chatr shows them to be 32 bit executables. I cannot alter that,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2009 06:22 AM
06-25-2009 06:22 AM
Re: Running 32 bit programs on 64 bit HP UNIX
The limitations on 32-bit processes stem solely from:
1) maxdsiz, maxtsiz, maxssiz hard resource limits imposed via system administration
applied to the running process (and on v2 and beyond, the limit is what it was at the time of process execution since the limits can be altered dynamically).
2) Address space layout limits. [This is where the default of 2Gb private, 2Gb shared usually arises (with 1Gb of the 2Gb private being Text and the other Data, hence 1Gb - stack size for Heap). chatr or compilation flags allow for changing address space layout and I believe 32-bit IPF Java uses a wrapper to provide the appropriate one based on the heap argument supplied, but I'm not in user space often.
3) Reservable swap space. (If you can't make a virtual object, you won't get physical memory).
Now, you can get into interesting states with JVMs forked from other JVMs in that there's a certain amount of resource sharing via Copy-On-Access or Copy-On-Write algorithms, but the address spaces are still distinct.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-01-2009 06:02 PM
07-01-2009 06:02 PM
Re: Running 32 bit programs on 64 bit HP UNIX
#-> kctune -q maxdsiz
Tunable Value Expression Changes
maxdsiz 4294963200 4294963200 Immed
[root@psgtwq1:/stand]#
#-> kctune -q maxdsiz 64bit
Tunable Value Expression Changes
maxdsiz_64bit 4294967296 4294967296 Immed
My server has 9.5GB free memory, still when I eneter command java, I get message:
java
Exception java.lang.OutOfMemoryError: requested 524288 bytes for card table expansion. Out of swap space?
Possible causes:
- not enough swap space left, or
- kernel parameter MAXDSIZ is very small.
Java out of memory messages are marked with pid: 12817 in /var/adm/syslog/syslog.log.
Abort
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-01-2009 07:57 PM
07-01-2009 07:57 PM
Re: Running 32 bit programs on 64 bit HP UNIX
There is a concept called memory windows which permit more than 4 gb of memory to be accessed by a program. Perhaps Java is not configured to use them, however even with memory windows no single memory segment can be allocated to exceed 4 gb. Might be less, I'm not an expert in this area of programming.
I don't however know why you are surprised at the 4 gb limit. The reason systems and software went to 64 bit was created over the past 10 years to get around these limitations.
You will have to adjust your application or port to 64 bit to get around this. Free memory on the system could be 100 or 200 GB and this limitation would not change.
SEP
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2009 06:08 AM
07-02-2009 06:08 AM
Re: Running 32 bit programs on 64 bit HP UNIX
In case it isn't obvious, if you want a 64 bit java, you need to use the -d64 option.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2009 06:17 AM
07-02-2009 06:17 AM
Re: Running 32 bit programs on 64 bit HP UNIX
(Oops, you said you didn't want that.)
How big was your java process before it aborted?
What are the options you are passing to java?
In order to get more than 2 Gb, the java driver would have to invoke the MPAS version:
/opt/java1.5/bin/IA64N/java_q4p