How to measure JSP Memory Utilization

I'm trying to build a tool that will tell me how much resources a JSP is consuming. Am using 1.4.2_14. I'm using a static heap size (1GB) and -Xgc:singlepar. I've created a filter that does a Runtime.totalMemory () - Runtime.freeMemory () before and after a chain to the JSP. To test this I built a simple JSP that I call from a shell script with curl:
<%
int alloc = 131065;
if (null != request.getParameter("alloc"))
alloc = Integer.parseInt(request.getParameter("alloc"));
Object[] o = new Object[alloc];
for (int i = 0; i < o.length; i++)
o[i] = new Object ();
if (null != request.getParameter("clean"))
for (int i = 0; i < o.length; i++)
o[i] = null;
o = null;
out.println("Done with " + o.length);
%>
When running this JSP repeatedly starting with a allocation of 131,064 objects I get a heap growth of 0 until I increment to 131,067. Then I seem to get good information but every so often I'll see a 18MB bump in memory. The size I get for heap growth at 131,067 is 512,288 bytes.
Why can't I see any memory utilization below 512KB?
What is this 18MB bump in memory?
Is there a way for me to get a more accurate measurment?
Thanks,
Hari

It's possible that the totalMemory() and freeMemory() calls are not 100% exact all the time; I don't remember exactly how that info is gathered.
There is a way to get very exact memory consumption with JR. Mail me for details.
-- Henrik

Similar Messages

  • How to get the Memory Utilization Data for Cloud Service

    Hi,
    We are planning to monitor the Performance of Cloud Services hosted onto Azure through VisualStudioOnline [TFS]. However, I couldn't find any performance metric for Memory utilization on individual Cloud Service.
    So please help how can we monitor Memory utilization on individual Cloud Service hosted through VSO.
    Thanks.
    Regards,
    Subhash Konduru
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    If you are using the VSO then you can take a look at azure application insights which is a service hosted on azure which will help you to detect issues, solve problems and continuously improve your web applications.
    Read more about Application insights here - 
    http://azure.microsoft.com/en-us/documentation/articles/app-insights-get-started/
    https://msdn.microsoft.com/en-us/library/dn793604.aspx
    Bhushan | Blog |
    LinkedIn | Twitter

  • How to monitor phyisical memory utilization

    Can anyone let me know how to monitor the physical memory utilization using monitors/rules?
    The existing monitor which is there in windows server management pack monitors the virtual memory where as i wanted to monitor physical memory

    You have to create the monitor yourself.
    This monitor is called a Static threshold performance monitor. In the counter list, choose % commited bytes
    A walkthrough can be found here:
    http://technet.microsoft.com/en-us/library/bb309655.aspx
    Juke Chou
    TechNet Community Support

  • How to measure CPU utilization from Oracle AWR

    Hi All,
    How to measure the cpu usage % from the AWR reports.
    Oracle : 10.2.0.3
    OS : AIX 5300-12-02
    I see the top 5 waited events listing CPU time in it.
    Top 5 Timed Events Avg %Total
    ~~~~~~~~~~~~~~~~~~ wait Call
    Event Waits Time (s) (ms) Time Wait Class
    CPU time 98,655 40.0
    Is it mean that the CPU utilization is full to its 100%. Is there any other way to measure how much an oracle instance is utilizing the CPU ?
    Please advice.
    TIA,
    Nv

    Hi,
    Check this script, if possible run in toad.
    col LastCallET format 99,999
    col cpumins format 99,999
    col status format a1 trunc
    col module format a20
    col username format a15
    col logontime format a12
    col machine format a15 trunc
    col sid format 9999
    select * from (
    select 'P',s.sid, s.status, t.value/100/60 cpumins ,
         floor(last_call_et/60) "LastCallET",
         to_char(s.logon_time,'mm/dd hh24:mi') logontime,
         s.username,s.process, p.spid, s.module , s.machine, s.sql_hash_value
    from v$sesstat t, v$session s, v$process p
    where t.statistic# = 12
    and s.sid = t.sid
    and s.paddr = p.addr
    and s.type = 'USER'
    and s.sql_hash_value != 1425819161
    union
    select 'N',s.sid, s.status, t.value*-1/100/60 cpumins ,
    floor(last_call_et/60) "LastCallET",
    to_char(s.logon_time,'mm/dd hh24:mi') logontime,
    s.username,s.process, p.spid, s.module , s.machine, s.sql_hash_value
    from v$sesstat t, v$session s, v$process p
    where t.statistic# = 12
    and s.sid = t.sid
    and s.paddr = p.addr
    and s.type = 'USER'
    and s.sql_hash_value != 1425819161
    and t.value < 0
    order by 4 desc)
    where rownum < 11
    Regards,
    Satya.

  • How to find CPU and Memory Utilization

    Hi,
    How to find CPU and Memory Utilization of my application which is
    running in solaris workstation.My application has a management console in which we need to update the cpu and memory periodically.
    (Notr : Usage of JNI is restrcited)
    Thnx and Rgds,
    Mohan

    There is no CPU usage API in Java. You need some JNI code. For memory usage see the Runtime methods:
         * Get information of memory usage: max, total, free and (available/used).
         * <ul>
         * <li>Max is the maximum amount of bytes the application can allocate (see also java options -Xmx). This value is fixed.
         * If the application tries to allocate more memory than Max, an OutOfMemoryError is thrown.
         * <li>Total is the amount of bytes currently allocated from the JVM for the application.
         * This value just increases (and doesn't decrease) up to the value of Max depending on the applications memory
         * requirements.
         * <li>Free is the amount of memory that once was occupied by the application but is given back to the JVM. This value
         * varies between 0 and Total.
         * <li>The used amount of memory is the memory currently allocated by the application. This value is always less or equal
         * to Total.
         * <li>The available amount of memory is the maximum number of bytes that can be allocated by the application (Max - used).
         * </ul>
         * In brief: used <= total <= max
         * <p>
         * The JVM can allocate up to 64MB (be default) system memory for the application. If more is required, the JVM has to be started with the Xmx option
         * (e.g. "java -Xmx128m" for 128 MB). The amount of currently allocated system memory is Total. As the JVM can't give back unallocated memory
         * to the operating system, Total can just increase (up to Max).
         * @return Memory info.
        static public String getMemoryInfo() {
            StringBuilder sb = new StringBuilder();
            sb.append("Used: ");
            sb.append(toMemoryFormat(getUsedMemory()));
            sb.append(", Available: ");
            sb.append(toMemoryFormat(getAvailableMemory()));
            sb.append(" (Max: ");
            sb.append(toMemoryFormat(Runtime.getRuntime().maxMemory()));
            sb.append(", Total: ");
            sb.append(toMemoryFormat(Runtime.getRuntime().totalMemory()));
            sb.append(", Free: ");
            sb.append(toMemoryFormat(Runtime.getRuntime().freeMemory()));
            sb.append(")");
            return sb.toString();
        }//getMemoryInfo()

  • How to display CPU and memory utilization from ST06 in a report

    Hi,
    I want to display CPU Utilization and Memory utilization and File sys details from ST06 transaction in a report.
    Is there any function module or any other method to do that.
    Please advice.
    Thanks,
    Sandeep.

    Hi Ranganath,
    Thanks for your time.
    And thank you very much for the reply.
    Both the function modules are helpful.
    But can u also help me in getting the data of FileSys from ST06.
    Thankyou,
    Sandeep.

  • Follow up on an old thread about memory utilization

    This thread was active a few months ago, unfortunately its taken me until now
    for me to have enough spare time to craft a response.
    From: SMTP%"[email protected]" 3-SEP-1996 16:52:00.72
    To: [email protected]
    CC:
    Subj: Re: memory utilization
    As a general rule, I would agree that memory utilzation problems tend to be
    developer-induced. I believe that is generally true for most development
    environments. However, this developer was having a little trouble finding
    out how NOT to induce them. After scouring the documentation for any
    references to object destructors, or clearing memory, or garbage collection,
    or freeing objects, or anything else we could think of, all we found was how
    to clear the rows from an Array object. We did find some reference to
    setting the object to NIL, but no indication that this was necessary for the
    memory to be freed.
    I believe the documentation, and probably some Tech-Notes, address the issue of
    freeing memory.
    Automatic memory management frees a memory object when no references to the
    memory
    object exist. Since references are the reason that a memory object lives,
    removing
    the references is the only way that memory objects can be freed. This is why the
    manuals and Tech-Notes talk about setting references to NIL (I.E. freeing memory
    in an automatic system is done by NILing references and not by calling freeing
    routines.) This is not an absolute requirement (as you have probably noticed
    that
    most things are freed even without setting references to NIL) but it accelerates
    the freeing of 'dead' objects and reduces the memory utilization because it
    tends
    to carry around less 'dead' objects.
    It is my understanding that in this environment, the development tool
    (Forte') claims to handle memory utilization and garbage collection for you.
    If that is the case, then it is my opinion that it shoud be nearly
    impossible for the developer to create memory-leakage problems without going
    outside the tool and allocating the memory directly. If that is not the
    case, then we should have destructor methods available to us so that we can
    handle them correctly. I know when I am finished with an object, and I
    would have no problem calling a "destroy" or "cleanup" method. In fact, I
    would prefer that to just wondering if Forte' will take care of it for me.
    It is actually quite easy to create memory leaks. Here are some examples:
    Have a heap attribute in a service object. Keep inserting things into
    the heap and never take them out (I.E. forgot to take them out). Since
    service objects are always live, everything in the heap is also live.
    Have an exception handler that catches exceptions and doesn't do
    anything
    with the error manager stack (I.E. it doesn't call task.ErrMgr.Clear).
    If the handler is activated repeatedly in the same task, the stack of
    exceptions will grow until you run out of memory or the task terminates
    (task termination empties the error manager stack.)
    It seems to me that this is a weakness in the tool that should be addressed.
    Does anyone else have any opinions on this subject?
    Actually, the implementation of the advanced features supported by the Forte
    product
    results in some complications in areas that can be hard to explain. Memory
    management
    happens to be one of the areas most effected. A precise explanation to a
    non-deterministic process is not possible, but the following attempts to
    explain the
    source of the non-determinism.
    o The ability to call from compiled C++ to interpreted TOOL and back
    to compiled C++.
    This single ability causes most of the strange effects mentioned in
    this thread.
    For C++ code the location of all variables local to a method is not
    know
    (I.E. C++ compilers can't tell you at run-time what is a variable
    and what
    isn't.) We use the pessimistic assumption that anything that looks
    like a
    reference to a memory object is a reference to a memory object. For
    interpreted
    TOOL code the interpreter has exact knowledge of what is a reference
    and what
    isn't. But the TOOL interpreter is itself a C++ method. This means
    that any
    any memory objects referenced by the interpreter during the
    execution of TOOL
    code could be stored in local variables in the interpreter. The TOOL
    interpreter
    runs until the TOOL code returns or the TOOL code calls into C++.
    This means
    that many levels of nested TOOL code can be the source of values
    assigned to
    local variables in the TOOL interpreter.
    This is the complicated reason that answers the question: Why doesn't a
    variable that is created and only used in a TOOL method that has
    returned
    get freed? It is likely that the variable is referenced by local
    variables
    in the TOOL interpreter method. This is also why setting the
    variable to NIL
    before returning doesn't seem to help. If the variable in question is a
    Array than invoke Clear() on the Array seems to help, because even
    though the
    Array is still live the objects referenced by the Array have less
    references.
    The other common occurrence of this effect is in a TextData that
    contains a
    large string. In this case, invoking SetAllocatedSize(0) can be used
    to NIL
    the reference to the memory object that actually holds the sequence of
    characters. Compositions of Arrays and TextData's (I.E. a Array of
    TextData's
    that all have large TextDatas.) can lead to even more problems.
    When the TOOL code is turned into a compiled partition this effect
    is not
    noticed because the TOOL interpreter doesn't come into play and
    things execute
    the way most people expect. This is one area that we try to improve
    upon, but it is complicated by the 15 different platforms, and thus
    C++ compilers,
    that we support. Changes that work on some machines behave
    differently on other
    machines. At this point in time, it occasionally still requires that
    a TOOL
    programmer actively address problems. Obviously we try to reduce
    this need over
    time.
    o Automatic memory management for C++ with support for multi-processor
    threads.
    Supporting automatic memory management for C++ is something that is
    not a very
    common feature. It requires a coding standard that defines what is
    acceptable and
    what isn't. Additionally, supporting multi-processor threads adds
    its own set of
    complications. Luckily TOOL users are insulated from this because
    the TOOL to C++
    code generator knows the coding standard. In the end you are
    impacted by the C++
    compiler and possibly the differences that occur between different
    compilers and/or
    different processors (I.E. Intel X86 versus Alpha.) We have seen
    applications that
    had memory utilization differences of up to 2:1.
    There are two primary sources of differences.
    The first source is how compilers deal with dead assignments. The
    typical TOOL
    fragment that is being memory manager friendly might perform the
    following:
    temp : SomeObject = new;
    ... // Use someObject
    temp = NIL;
    return;
    When this is translated to C++ it looks very similar in that temp
    will be assigned the
    value NULL. Most compilers are smart enough to notice that 'temp' is
    never used again
    because the method is going to return immediately. So they skip
    setting 'temp' to NULL.
    In this case it should be harmless that the statement was ignored
    (see next example for a different variation.) In more
    complicated examples that involve loops (especially long
    lived event loops) a missed NIL assignment can lead to leaking the
    memory object whose
    reference didn't get set to NIL (incidentally this is the type of
    problem that causes
    the TOOL interpreter to leak references.)
    The second source is a complicated interaction caused by history of
    method invocations.
    Consider the following:
    Method A() invokes method B() which invokes method C().
    Method C() allocates a temporary TextData, invokes
    SetAllocatedSize(1000000)
    does some more work and then returns.
    Method B() returns.
    Method A() now invokes method D().
    Method D() allocates something that cause the memory manager to look
    for memory objects to free.
    Now, even though we have returned out of method C() we have starting
    invoking
    methods. This causes us to use re-use portions of the C++ stack used to
    maintain the history of method invocation and space for local variables.
    There is some probability that the reference to the 'temporary' TextData
    will now be visible to the memory manager because it was not overwritten
    by the invocation of D() or anything invoked by method D().
    This example answers questions of the form: Why does setting a local
    variable to
    NIL and returning and then invoking task.Part.Os.RecoverMemory not
    cause the
    object referenced by the local variable to be freed?
    In most cases these effects cause memory utilization to be slightly
    higher
    than expected (in well behaved cases it's less than 5%.) This is a small
    price to pay for the advantages of automatic memory management.
    An object-oriented programming style supported by automatic memory
    management makes it
    easy to extended existing objects or sets of objects by composition.
    For example:
    Method A() calls method B() to get the next record from the
    database. Method B()
    is used because we always get records, objects, of a certain
    type from
    method B() so that we can reuse code.
    Method A() enters each row into a hash table so that it can
    implement a cache
    of the last N records seen.
    Method A() returns the record to its caller.
    With manual memory management there would have to be some interface
    that allows
    Method A() and/or the caller of A() to free the record. This
    requires
    that the programmer have a lot more knowledge about the
    various projects
    and classes that make up the application. If freeing doesn'
    happen you
    have a memory leak, if you free something while its still
    being used the
    results are unpredictable and most often fatal.
    With automatic memory management, method A() can 'free' its
    reference by removing
    the reference from the hash table. The caller can 'free' its
    reference by
    either setting the reference to NIL or getting another
    record and referring
    to the new record instead of the old record.
    Unfortunately, this convenience and power doesn't come for free. Consider
    the following,
    which comes from the Forte' run-time system:
    A Window-class object is a very complex beast. It is composed of two
    primary parts:
    the UserWindow object which contains the variables declared by the
    user, and the
    Window object which contains the object representation of the window
    created in
    the window workshop. The UserWindow and the Window reference each
    other. The Window
    references the Menu and each Widget placed on the Window directly. A
    compound Window
    object, like a Panel, can also have objects place in itself. These
    are typically
    called the children. Each of the children also has to know the
    identity of it's
    Mom so they refer to there parent object. It should be reasonably
    obvious that
    starting from any object that make up the window any other object
    can be found.
    This means that if the memory manager finds a reference to any
    object in the Window
    it can also find all other objects in the window. Now if a reference
    to any object
    in the Window can be found on the program stack, all objects in the
    window can
    also be found. Since there are so many objects and the work involved
    in displaying
    a window can be very complicated (I.E. the automatic geometry
    management that
    layouts the window when it is first opened or resized.) there are
    potentially many
    different reference that would cause the same problem. This leads to
    a higher than
    normal probability that a reference exists that can cause the whole
    set of Window
    objects to not be freed.
    We solved this problem in the following fashion:
    Added a new Method called RecycleMemory() on UserWindow.
    Documented that when a window is not going to be used again
    that it is
    preferably that RecycleMemory() is invoked instead
    of Close().
    The RecycleMemory() method basically sets all references
    from parent to
    child to NIL and sets all references from child to
    parent to NIL.
    Thus all objects are isolated from other objects
    that make up
    the window.
    Changed a few methods on UserWindow, like Open(), to check
    if the caller
    is trying to open a recycled window and throw an
    exception.
    This was feasible because the code to traverse the parent/child
    relationship
    ready existed and was being used at close time to perform other
    bookkeeping
    operations on each of the Widgets.
    To summarize:
    Automatic memory management is less error prone and more productive but
    doesn't come totally for free.
    There are things that the programmer can do that assists the memory
    manager:
    o Set object reference to NIL when known to be correct (this
    is the
    way the memory is deallocated in an automatic system.)
    o Use methods like Clear() on Array and SetAllocatedSize()
    on TextData to
    that allow these objects to set their internal
    references to NIL
    when known to be correct.
    o Use the RecycleMemory() method on windows, especially very
    complicated
    windows.
    o Build similar type of methods into your own objects when
    needed.
    o If you build highly connected structures that are very
    large in the
    number of object involved think that how it might be
    broken
    apart gracefully (it defeats some of the purpose of
    automatic
    management to go to great lengths to deal with the
    problem.)
    o Since program stacks are the source of the 'noise'
    references, try
    and do things with less tasks (this was one of the
    reasons that
    we implemented event handlers so that a single task
    can control
    many different windows.)
    Even after doing all this its easy to still have a problem.
    Internally we have
    access to special tools that can help point at the problem so that
    it can be
    solved. We are attempting to give users UNSUPPORTED access to these
    tools for
    Release 3. This should allow users to more easily diagnose problems.
    It also
    tends to enlighten one about how things are structured and/or point out
    inconsistencies that are the source of known/unknown bugs.
    Derek
    Derek Frankforth [email protected]
    Forte Software Inc. [email protected]
    1800 Harrison St. +510.869.3407
    Oakland CA, 94612

    I beleive he means to reformat it like a floppy disk.
    Go into My Computer, Locate the drive letter associated with your iPod(normally says iPod in it, and shows under removable storage).
    Right click on it and choose format - make sure to not have the "quick format" option checked. Then let it format.
    If that doesnt work, There are steps somewhere in the 5th gen forum( dont have the link off hand) to try to use the usbstor.sys to update the USB drivers for the Nano/5th gen.

  • How to find unused memory amount, OS x 10.6.8?

    How do I find remaining memory capacity on Imac 10.6.8

    Hi cpq24tr0,
    You can find your memory utilization under "Activity Monitor", there is a memory tab that will detail its usage.
    Good luck,
    Dr. C.

  • Re: memory utilization

    Thanks to all who responded to my question about memory utilization. There
    were some good suggestions that I will follow up on. I am very grateful for
    the help.
    As a general rule, I would agree that memory utilzation problems tend to be
    developer-induced. I believe that is generally true for most development
    environments. However, this developer was having a little trouble finding
    out how NOT to induce them. After scouring the documentation for any
    references to object destructors, or clearing memory, or garbage collection,
    or freeing objects, or anything else we could think of, all we found was how
    to clear the rows from an Array object. We did find some reference to
    setting the object to NIL, but no indication that this was necessary for the
    memory to be freed.
    It is my understanding that in this environment, the development tool
    (Forte') claims to handle memory utilization and garbage collection for you.
    If that is the case, then it is my opinion that it shoud be nearly
    impossible for the developer to create memory-leakage problems without going
    outside the tool and allocating the memory directly. If that is not the
    case, then we should have destructor methods available to us so that we can
    handle them correctly. I know when I am finished with an object, and I
    would have no problem calling a "destroy" or "cleanup" method. In fact, I
    would prefer that to just wondering if Forte' will take care of it for me.
    It seems to me that this is a weakness in the tool that should be addressed.
    Does anyone else have any opinions on this subject?

    Index rebuild = Drop and recreate, this complete recreated index will be in the memory till completion of the full operation.
    The lazy writer process periodically checks the available free space in the buffer cache between two checkpoints. If a dirty data page (a page read and/or modified) in the buffer hasn’t been used for a while, the lazy writer flushes it to disk and then marks
    as free in the buffer cache
    If SQL Server needs more memory and the buffer cache size is below the value set as the Maximum server memory parameter for the SQL Server instance, the lazy writer will take more memory
    If SQL Server is under memory pressure, the lazy writer will be busy trying to free enough internal memory pages and will be flushing the pages extensively. The intensive lazy writer activity affects other resources by causing additional physical disk I/O activity
    and using more CPU resources
    To provide enough free space in the buffer, pages are moved from the buffer to disk. These pages are usually moved at a check point, which can be:
    automatic (occurs automatically to meet the recovery interval request)
    indirect (occurs automatically to meet the database target recovery time)
    manual (occurs when the CHECKPOINT command is executed)
    internal (occurs along with some server-level operations, such as backup creation)
    At a checkpoint, all dirty pages are flushed to disk and the page in the buffer cache is marked for overwriting
    “For performance reasons, the Database Engine performs modifications to database pages in memory—in the buffer cache—and does not write these pages to disk after every change. Rather, the Database Engine periodically issues a checkpoint on each database. A
    checkpoint writes the current in-memory modified pages (known as dirty pages) and transaction log information from memory to disk and, also, records information about the transaction log.”
    Raju Rasagounder Sr MSSQL DBA

  • How much does in-memory replication boost txn rates?

    I posted the note below on the weblogic.developer.interest.clustering" list.
              As a supplement to that question, I'm wondering how much of a boost to
              transaction rates that anyone sees from using in-memory replication with
              WebLogic?
              =====================
              How many peak/average transactions per second is anyone pushing through
              WebLogic? With what response time? On what version of WebLogic? With what
              sort of a configuration?
              If you don't have transactions per second, any other measures of performance
              and scalability would be interesting.
              Randy Heffner
              Giga Information Group
              

              Mike -
              Thanks for the reply -- I phrased my question poorly. What I intended was
              this:
              - Compared to saving context to disk (so that it is accessible across
              servers in a cluster), how much does in-memory replication boost transaction
              throughput rates?
              I'm just wondering if anyone has measured the difference in their
              environment.
              Randy
              "Mike Reiche" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Boost transaction rates? No - it degrades transaction rates. Replicating
              data is
              > extra work.
              >
              > Mike
              >
              > "Randy Heffner" <[email protected]> wrote:
              > >I posted the note below on the weblogic.developer.interest.clustering"
              > >list.
              > >As a supplement to that question, I'm wondering how much of a boost to
              > >transaction rates that anyone sees from using in-memory replication with
              > >WebLogic?
              > >
              > >=====================
              > >How many peak/average transactions per second is anyone pushing through
              > >WebLogic? With what response time? On what version of WebLogic? With
              > >what
              > >sort of a configuration?
              > >
              > >If you don't have transactions per second, any other measures of
              performance
              > >and scalability would be interesting.
              > >
              > >Randy Heffner
              > >Giga Information Group
              > >
              > >
              > >
              > >
              >
              

  • Memory utilization presented in Application Server Control

    Hi
    I have Oracle Application Server 10g R3 Patch Set 5 application server, which work in cluster. On mian page in Oracle Application Server Control I have memory column, where I can see information about memory utilization. I wonder about this information. For example, I have heap size set for 2 GB and application uses 300MB, but I have on main page Application Server Control 900 MB memory utilization for OC4J container. Why is so difference between use heap space memory (only 300 MB), and this information 900 MB? But sometimes, memory in Server Control rises to 2 GB, but application uses 300 MB heap space still. Why does occur this situation (much difference between uses heap space and memory presented on Server Control)?
    Thanks awfully for help.
    Regards
    Edited by: Luk004 on 2012-01-16 03:30

    > Central Instance : 1.2GB is physical memory is free out of 12GB.
    > App1 Instance: 400MB is physical memory is free out of 10GB.
    > App2 Instance: 2GB is physical memory is free out of 14GB.
    >
    > Right now, no background for dialog process are running in any of the three instances but still ocuupy lot of physical memory.
    >
    > Questions: How to calculate memory in ECC and where could be the rest of memory defined in system? No process is running and all memory seem to be consumed.
    Memory is allocated
    - by the operating system itself
    - by the database (SGA_TARGET)
    - by the application server buffers (ST02 et al)
    - by the operating system as filesystem cache (if you e. g. use VxFS you may configure the memory consumption)
    To see where the memory is being used, use OS tools like 'glance' or 'top'.
    Markus

  • Memory utilization on hp-ux

    I'm on hp-ux 11.23 Itanium using dbconsole 10.2.0.4. My machine is underutilized most of the time. Periodically, I get memory utilization alerts that I'm using more than 99% of memory. The memory utilization chart shows it burbling around 97-98%, sometimes peaking downwards to 95%. swapinfo tells me I'm using 24% or thereabouts. The help for memory utilization is less than helpful as to how the metric is actually calculated. I can't help thinking it's just plain wrong. Anyone have any idea how to reconcile this? Anyone know how it is calculated?
    From memory utilization screen:
    Last Known Value 99.56
    Average Value 98.96
    High Value 99.66
    Low Value 95.18
    Warning Threshold 95
    Critical Threshold 98
    Threshold Occurrences 6
    Looks like the defaults in the help screen (warning threshold 99, tested every 24 hours) are wrong.

    OK, I discovered the Paging Activity screen under All Metrics. There were lots of numbers, so I picked the largest one and clicked on it (Pages Scanned by Page Stealing Daemon (per second)). It showed this nice little graph, bounced around all over the place during the day and flatlined during the night, and the help page said it used pstat_getvminfo(), so I poked around on the net about that. Then when I went back to the Paging activity page, all but two of the numbers (Page-in Requests (per second) and Pages Paged-in (per second)) were zero. WTF?

  • Historical CPU/Memory utilization data and xm top interpretation

    Hi All,
    Can we get historical CPU/Memory utilization data on domU server. xm top command give real-time data.
    secondly, how to interpret xm top command output.
    xentop - 02:28:25 Xen 3.0-unstable
    3 domains: 3 running, 0 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
    Mem: 16772032k total, 13863520k used, 2908512k free CPUs: 4 @ 2327MHz
    NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
    domain1 -----r 18153551 98.7 6299520 37.6 6307840 37.6 2 2 14008639723 134647867139 2 0 7405453 7224743 0
    domain2 -----r 13574751 31.2 6299520 37.6 6307840 37.6 2 2 815959711 780254006 2 0 2732 2658 0
    Domain-0 -----r 3807938 9.6 819200 4.9 no limit n/a 4 8 0 0 0 0 0 0 0
    Does it implies that there are 2 virtual CPUs configured for guest(domain1), which at this moment 98.7% utilized. Doesn't it shows there is capacity problem?
    In virtualization, are virtual CPUs dedicated to guests, or CPU cycles are available on demand. If this is the case, then one guest high utilization can slow down other guests as well.
    Thanks,
    Neeraj

    Hi All,
    Can we get historical CPU/Memory utilization data on domU server. xm top command give real-time data.
    secondly, how to interpret xm top command output.
    xentop - 02:28:25 Xen 3.0-unstable
    3 domains: 3 running, 0 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
    Mem: 16772032k total, 13863520k used, 2908512k free CPUs: 4 @ 2327MHz
    NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS VBD_OO VBD_RD VBD_WR SSID
    domain1 -----r 18153551 98.7 6299520 37.6 6307840 37.6 2 2 14008639723 134647867139 2 0 7405453 7224743 0
    domain2 -----r 13574751 31.2 6299520 37.6 6307840 37.6 2 2 815959711 780254006 2 0 2732 2658 0
    Domain-0 -----r 3807938 9.6 819200 4.9 no limit n/a 4 8 0 0 0 0 0 0 0
    Does it implies that there are 2 virtual CPUs configured for guest(domain1), which at this moment 98.7% utilized. Doesn't it shows there is capacity problem?
    In virtualization, are virtual CPUs dedicated to guests, or CPU cycles are available on demand. If this is the case, then one guest high utilization can slow down other guests as well.
    Thanks,
    Neeraj

  • Agent resident memory utilization ALERT question

    Hi all,
    Every night during the incremental db backups (and during the weekly full db backup) i get an alert for the "Agent resident memory utilization" level. I did find this similiar post but it didnt' help me out much (Agent memory utilization under Linux
    I want to know if i should be concerned with this alert and how i can tune to get rid of it. Does anyone know how to handle this?? I found the following in the oracle documentation about this alert:
    1 Agent
    The oracle_emd target is a representation of the Oracle Management Agent. The Oracle Management Agent is the Management Agent used by Oracle Enterprise Manager. This target type exposes useful information required to monitor the performance of the Management Agent.
    Most of the help topics in this helpset use the term Management Agent to refer to the Oracle Management Agent.
    1.1 Agent Process Statistics
    The EMD Process Statistics provides information about the performance and resource consumption of the Management Agent process. This metric is collected by default on an interval of 1038 seconds. A value that can be changed in the default collection for the oracle_emd target.
    1.1.1 Agent Resident Memory Utilization (KB)
    The amount of resident memory used by the agent and all of its child processes in KB.
    I also get nightly alert for Commit waits but i don't think they are related. Can someone please shed some light on this alert for me? Here is the full alert that i'm getting:
    Name=localhost.localdomain:3938
    Type=Agent
    Host=localhost.localdomain
    Metric=Resident Memory Utilization (KB)
    Timestamp=Sep 13, 2006 2:08:14 AM EDT
    Severity=Warning
    Message=Agent resident memory utilization in KB is 223304
    Rule Name=Agents Unreachable
    Rule Owner=SYSMAN

    If your Agent is really getting up to the Warning or Critical Threshold set for the agent resident memory utilization" metric, you can increase the numbers. by default, the Agent "Resident Memory Utilization (%) is set to 20% (Warning) and 30%(Critical) while "Resident Memory Utilization (KB) is 128000 (Warning) and 256000 (Critical)
    From Targets > All Targets > Select the Agent > Click Metric and Policy Settings at the bottom of the screen > Edit the Resident Memory Utilization as required.
    Or Instead changing the Threshold, on the same Edit screen, you can simply change the "Number of Occurrences" before an alert is triggered.
    Meanwhile it is important to check whether the use of such amount is normal.

  • Want to create a model for effective memory utilization with faster access

    Can someone help me I am looking for a solution to a problem. Problem description is as follows:
    We have a data model like:
    name
    City
    Address
    Zipcode
    1. we have a huge numbesr(millions) of such objects availiable in the memory.How can i make a good design for the better memory utilization.
    Means in which structures data should be stored in a memory to make effective memory utilizaion.We already have data structures like hashmap
    ,hashtable but beyond that can we use them or use other data structures in such a way that memory utilized by these objects is minimal.
    2. design should be created keeping in mind that we can apply filters on any of the model attributes.(like if we want to see data of those
    objects only where city name is newyork) so filtering done on the data should be fast.

    Perhaps you're trying to solve the wrong problem? If the true objective is "to retrieve data as quickly as possible," perhaps you should investigate a database rather than trying to squeeze things into the smallest possible memory footprint? You'd have to have some pretty hefty hardware to keep "millions" of records in memory in addition to applications, server, OS, IP stack, etc.
    But only people closest to the application can make that assessment. Just offering it as an possible alternative to consider.

Maybe you are looking for

  • Moved music to new hard drive now itunes can't find songs !

    This is what I did. My old hard drive was getting full so I bought an additional hard drive and installed it. I then selected all the music in the itunes music folder, copied it, then pasted it into a new folder on the new hard drive. I changed the s

  • HT4847 Photo Stream Backing Up To iCloud as Camera Roll

    I have photostream enabled on my iPhone and iPad plus my Macbook. I'm showing all the photos I took on my phone in photo stream and the camera roll on my ipad under the camera and in photo stream under photos. I curious if backups to icloud are inclu

  • HOW TO DO POSITIVE PAY IN F110

    When the customer is the same as vendor, and the payable is more then the receivable can we do a pmt run to make the payment for the difference of the payable and receivale amount. If yes, what are the parameters, and other information to be filled i

  • Convert AR Invoice Layout CR in AR Credit Note

    Dear all I´m trying to convert a AR invoice crystal in a credit note. I thought that i just need to change the names of OINV and INV1, but the sub-reports give allways the values of invoices add in database. Kind regrads, Margarida Pedroso

  • After stopping replication what happens to the table for which we have stopped replication

    Hello Team                     Once we stop a replication for a table then does the table still exists in HANA DB . Next time when we have requirement for replicating this table what precautions we need to take . Regards