• Topic
  • Discussion
  • VOS.VirtMonitorMemoryConsumption(1.1) -- DAVWikiAdmin? , 2017-06-13 05:41:22 Edit WebDAV System Administrator 2017-06-13 05:41:22

    Monitoring Virtuoso Memory Consumption

    What

    Like any other process, Virtuoso consumes system resources, including memory. Here we describe one way to monitor the memory consumption of a Virtuoso server instance.

    Why monitor memory consumption?

    In a mission critical application, running 24/7, memory consumption should be fairly consistent when the server is in use. A server should not consume all system memory, which may result in it hanging or being terminated by the operating system.

    How to monitor Virtuoso's memory consumption

    On a Linux or other Unix-like system, you can use a script like this, which we've called memcheck-virtuoso.sh, which checks the memory consumption directly at the process level:


    #!/bin/bash
    # saved to /tmp/memcheck-virtuoso.sh
    
    pid=$(pidof virtuoso-t);
    log=/tmp/mem-trace-virtuoso.txt;
    
    echo $(printf "%s   %s   %s" $(date +%FT%R) $(cat /proc/${pid}/status |grep VmSize) ${pid}) | tee -a ${log}
    

    This script outputs 3 columns:

    1. date-timestamp
    2. VmSize: the actual memsize of the Virtuoso instance (from the cat -> grep for that process id)
    3. the process id (or PID) of the Virtuoso instance

    Here is a sample:


    $ cat /tmp/memcheck-virtuoso.txt
    2014-11-14T17:22   VmSize: 15724332kB   3974
    2014-11-14T17:46   VmSize: 15874064kB   3974
    2014-11-14T17:55   VmSize: 15874064kB   3974
    2014-11-14T18:52   VmSize: 15878076kB   3974
    2014-11-14T18:52   VmSize: 15878076kB   3974
    2014-11-14T22:29   VmSize: 15878076kB   3974
    2014-11-14T22:30   VmSize: 15878076kB   3974
    2014-11-14T22:56   VmSize: 15878076kB   3974
    2014-11-14T22:56   VmSize: 15878076kB   3974
    2014-11-14T23:33   VmSize: 15878076kB   3974
    2014-11-14T23:33   VmSize: 15878076kB   3974
    2014-11-14T23:52   VmSize: 15878076kB   3974
    2014-11-14T23:53   VmSize: 15878076kB   3974
    $
    

    The script can be run manually as required. It can also be set up as a cron job to run at a specified internal, e.g., 4 hours in the sample below:


    $ crontab -l |grep mem
    0 */4 * * * /tmp/memcheck-virtuoso.sh
    

    Also See