- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: JAVA 1.5-2 consumes a lot of CPU duiring wait
Operating System - OpenVMS
1753944
Members
8186
Online
108811
Solutions
Forums
Categories
Company
Local Language
back
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
back
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
Blogs
Information
Community
Resources
Community Language
Language
Forums
Blogs
Topic Options
- 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
05-20-2008 01:32 PM
05-20-2008 01:32 PM
JAVA 1.5-2 consumes a lot of CPU duiring wait
Detached java processes running on I64 VMS 8.3 and java 1.5-2 are consuming CPU minutes when it shouldn't.
This program behaves normal under java 1.4-2 but under java 1.5 it is using CPU the whole day when it shouldn't.
Should I start up these applications with different java flags ?
public class Waiter
{
public static void main( String[] args )
{
synchronized ( Waiter.class )
{
try
{
System.out.println( "Before waiting" );
Waiter.class.wait();
}
catch ( InterruptedException e )
{
e.printStackTrace();
}
}
}
}
Situation after two days:
OpenVMS V8.3 on node TESTI64 20-MAY-2008 23:27:14.28 Uptime 30 15:04:07
HP BL860c (1.59GHz/9.0MB)
Pid Process Name State Pri I/O CPU Page flts Pages
0001104D WAITER_142 HIB 5 592 0 00:00:03.24 2534 2575 M
0001144D HIB 6
[453,30] 20600Kb
DSA200:[SYS0.SYSCOMMON.][JAVA$142.BIN]JAVA$JAVA.EXE;1
0000FC4E WAITER_150 HIB 5 652 0 00:06:57.06 3669 3161 M
0001004E HIB 6
[453,30] 25288Kb
DSA200:[SYS0.SYSCOMMON.][JAVA$150.BIN]JAVA$JAVA.EXE;1
This program behaves normal under java 1.4-2 but under java 1.5 it is using CPU the whole day when it shouldn't.
Should I start up these applications with different java flags ?
public class Waiter
{
public static void main( String[] args )
{
synchronized ( Waiter.class )
{
try
{
System.out.println( "Before waiting" );
Waiter.class.wait();
}
catch ( InterruptedException e )
{
e.printStackTrace();
}
}
}
}
Situation after two days:
OpenVMS V8.3 on node TESTI64 20-MAY-2008 23:27:14.28 Uptime 30 15:04:07
HP BL860c (1.59GHz/9.0MB)
Pid Process Name State Pri I/O CPU Page flts Pages
0001104D WAITER_142 HIB 5 592 0 00:00:03.24 2534 2575 M
0001144D HIB 6
[453,30] 20600Kb
DSA200:[SYS0.SYSCOMMON.][JAVA$142.BIN]JAVA$JAVA.EXE;1
0000FC4E WAITER_150 HIB 5 652 0 00:06:57.06 3669 3161 M
0001004E HIB 6
[453,30] 25288Kb
DSA200:[SYS0.SYSCOMMON.][JAVA$150.BIN]JAVA$JAVA.EXE;1
1 REPLY 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-20-2008 03:44 PM
05-20-2008 03:44 PM
Re: JAVA 1.5-2 consumes a lot of CPU duiring wait
Mario,
If I understand correctly, your V1.4-2 process has used 00:03.24 seconds CPU, while the V1.5 process has used 06:57.06 over the same elapsed time?
Are both processes consuming some CPU over time, but at different rates? Do you have a SHOW SYSTEM display from 18th May to compare? Is it a steady consumption, or does it happen in jumps? (collect samples over time and graph them)
The HIB state implies that the wait() operation uses $HIBER/$WAKE. Since $HIBER in itself consumes ZERO CPU, any consumption by the process must be from AST interrupts.
One possible source is from external processes "watching". So, for example, one possible cause might be a SHOW PROCESS/CONTINUOUS running against the V1.5 process, but not against the V1.4-2 process. Some of the data gathered by SHOW PROCESS is collected by executing code in the context of the target process, thereby clocking up some CPU.
Another potential source are the language overheads, like Java garbage collection. Perhaps the default algorithm or timing has changed for V1.5? Maybe it's a bit more aggressive or more frequent? Have you tried different garbage collection settings?
You may be able to get more information using PC profiling to see where the process is spending time. Unfortunately, since you're inside Java, it might take some detective work to interpret what the PC samples mean.
If I understand correctly, your V1.4-2 process has used 00:03.24 seconds CPU, while the V1.5 process has used 06:57.06 over the same elapsed time?
Are both processes consuming some CPU over time, but at different rates? Do you have a SHOW SYSTEM display from 18th May to compare? Is it a steady consumption, or does it happen in jumps? (collect samples over time and graph them)
The HIB state implies that the wait() operation uses $HIBER/$WAKE. Since $HIBER in itself consumes ZERO CPU, any consumption by the process must be from AST interrupts.
One possible source is from external processes "watching". So, for example, one possible cause might be a SHOW PROCESS/CONTINUOUS running against the V1.5 process, but not against the V1.4-2 process. Some of the data gathered by SHOW PROCESS is collected by executing code in the context of the target process, thereby clocking up some CPU.
Another potential source are the language overheads, like Java garbage collection. Perhaps the default algorithm or timing has changed for V1.5? Maybe it's a bit more aggressive or more frequent? Have you tried different garbage collection settings?
You may be able to get more information using PC profiling to see where the process is spending time. Unfortunately, since you're inside Java, it might take some detective work to interpret what the PC samples mean.
A crucible of informative mistakes
The opinions expressed above are the personal opinions of the authors, not of Hewlett Packard Enterprise. By using this site, you accept the Terms of Use and Rules of Participation.
News and Events
Support
© Copyright 2024 Hewlett Packard Enterprise Development LP