- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- How to determine if a process has been in resource...
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
08-12-2005 04:48 AM
08-12-2005 04:48 AM
As background, in sys$qio() when queuing an IO, if the process has insufficient quota (direct or buffered, depending upon the IO type), but there are outstanding IO’s that will complete and give back the quota, and the process is in resource wait, sys$qio() will eventually call exe$snglquota() which will eventually call the sch$... routines to wait the process. I think the process enters the MWAIT state, but I’m not sure.
So my question is, is there a counter I can get to from analy/sys or some other method of determining if a process has ever waited for quota? Catching it at just the right time would be difficuilt. A related question is, can I determine by a counter or something, how much time a process is waiting in RWSCS mode while waiting on a remote response from a remote system from the lock manager.
I appreciate any help in this area, but read carefully and try to stay on the subject as normal.
Thanks,
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2005 10:08 PM
08-12-2005 10:08 PM
Re: How to determine if a process has been in resource wait.
I can just answer with DCL tips; you can easily apply to any C program or use on some other way.
You can monit some process quotas, for example BIOLIM and DIOLIM;
$ BIOLIM=F$GETJPI("","BIOLM")
$ DIOLIM=F$GETJPI("","DIOLM")
$ BIOCTR=F$GETJPI("","BIOCNT")
$ DIOCTR=F$GETJPI("","DIOCNT")
$ BIOAVA=BIOLIM-BIOCTR
$ DIOAVA=DIOLIM-DIOCTR
there are some other values in $getjpi service you can check for.
Antonio Vigliotti
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2005 05:19 AM
08-13-2005 05:19 AM
Solutionsorry, there are no such counters available. Even the PERF_COUNTER macro, which provides some performance counters (CNT_*) in the _MON execlets (loaded with SYSTEM_CHECK=1) does not provide counters for these types of events.
If a process runs out of quota (DIOLM, BIOLM, BYTLM), it's typically put in RWAST.
If a process seems to be in RWSCS for a 'long time', it usually means it's not hung in this state, but getting into and out of RWSCS so quickly, that you don't see the non-RWSCS state (just check increasing IO count or CPU cycles to confirm, that the process is not hung).
Do you know the IO$SDA IO trace SDA extension ? You could turn on IO tracing in the system dynamically and stop the trace 'if your problem happens'. See (minimal) help in SDA> IO
To watch your process, you could also write some DCL code (as suggested by Antonio) to see, if the process ever gets near zero xxxCNT. Or you can just bump xxxLM...
Volker.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2005 05:56 AM
08-13-2005 05:56 AM
Re: How to determine if a process has been in resource wait.
I agree with Volker, with one exception. I would not stop the process if this event occurs.
What I would do is to create some form of event log when this situation does happen. I might even extend this concept to "when the event NEARLY happens".
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2005 06:04 AM
08-13-2005 06:04 AM
Re: How to determine if a process has been in resource wait.
... I would not stop the process if this event occurs.
I suggested to stop the IO TRACE, not the process, if the problem has happened, if you can detect the problem from the application itself or from an external 'watcher' process.
Volker.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-13-2005 09:20 AM
08-13-2005 09:20 AM
Re: How to determine if a process has been in resource wait.
My apologies, I apparently wrote somewhat in haste.
I would, however, like to know with what frequency the problem is occuring.
- Bob Gezelter, http://www.rlgsc.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2005 12:06 PM
08-15-2005 12:06 PM
Re: How to determine if a process has been in resource wait.
Lawrence
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2005 02:24 PM
08-15-2005 02:24 PM
Re: How to determine if a process has been in resource wait.
There are no counters. Some "MWAIT" states can be classified as completely normal, but most times are so transient that you never notice them. In particular, RWSCS. If you make a lock request that goes off node, you WILL be put into RWSCS until the remote node responds.
I don't think there's a statistic for time spent in RWSCS, but you can MONITOR DLOCK and watch for high levels of outgoing requests. Compare with other cluster nodes to work out if you need to modify your weightings to try to localise locking.
In terms of quotas... remember that all quotas do is protect you from accidental or malicious (over) consumption of resources. There is no penalty for allocating a high quota to a "trusted" application.
DIOLM and BIOLM are less likely to be a resource bottle neck than BYTLM. If you suspect a process is suffering because it's hitting one of these process quotas, try increasing and watching DIOCNT, BIOCNT and BYTCNT over time. Make sure it's not leaking.
BYTLM is measured in BYTES. Keep in mind that memory is MUCH cheaper now than in the past, so don't be afraid to give a process a good healthy allocation.
As for SYS$SETRWM, please forget it exists. It doesn't do what you think it does, or what you want, so please don't go there!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2005 08:39 PM
08-15-2005 08:39 PM
Re: How to determine if a process has been in resource wait.
Purely Personal Opinion
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-15-2005 09:05 PM
08-15-2005 09:05 PM
Re: How to determine if a process has been in resource wait.
So, I check for MWAIT every second during 1 minute but still I found processes that do that regularly. So, I give a "informational" alarm after 1 minute and an "error" alarm after 10 minutes.
I also monitor all quotas and channel usage because at our site, that's the reason of the MWAIT most of the time.
Wim