Details of allocation memory (cRIO vxWorks)

Hello world

A question about memory allocation when dealing with arrays, strings and string array.

-I have to build and produce log files of the ASCII (LAS 2.0) on a cRIO.  The cRIO already done tons of other operations and avoiding excessive fragmentation of memory and overall memory usage is an important consideration for us, but CPU is also a limited resource... This new requirement is an addition to "everything" the cRIO already, and I know from experience that manages large data and logging as string files are taxing on the CPU, but also memory, so suggestions are welcome.

Worst?) If I build the file whole by concatenation and set up the content of the file as one long string through one shift-register/ring to another, as it goes, more which I think is the worst possible way to do it from a management perspective of memory.

(Better?) If I build the content of the file line by line and create an array of strings where each element of the array corresponds to a single line, it will be better? As each item is a variable length (String), I don't know how the memory manager manages these tables? Ideally, this is a list of pointers, so that each element (of variable length of the string) is its own segment (contiguous) memory vs all elements in the array in a single contiguous block? If so, that would mean that an array of strings would require nearby less memory than the same data represented as a 1 d of U8 array?

An advantage I can think of the approach of the matrix (or line) is when it is time to write the data in the file, I could write each element of the array individually, once again, the idea is that there should be less overhead to manage the lines individually vs a giant stream on the disk memory?  I could then possibly construct/write of the file into blocks so that I'm never content of "whole file" in a row of table...

Better yet? -Anyone have any ideas?

Best? n ' matter who feel that they have completely tamed this beast? Do you want to share?

As a mark of separation, unfortunately, all the data that will eventually be the file do not exist when the file is first created (trace-additional scans are added as soon as they are available throughout the day), and while the raw data itself in the LAS files are in the last section (so new raw data can be just added to the file of string without loading / parsing of the file) , there are some areas in the previous sections that may need to be updated (for example the tag STOP in the ~ section W), I was counting on the manipulation by a number of bytes for the fields that must be updated after the creation of follow-up, but if anyone has experience overview they can share on this subject as well , I am to listen to (in the case otherwise, I'll probably keep these counters in a list of attributes for quick recovery variant and simple because I maintain log files individual person well and therefore need a way a little more organized to follow that just a table or similar).

Like that everyone would just learn to consume newspapers of PDM files we recommend that rather than insisting on all these other formats. :/

(For a similar project (WITSML files), I ended up finding a relatively significant performance gain by building a large part of the ASCI file content as possible from the constant matrix U8, but luxury with this project was so much the structure/content of a static file that it was very, not to mention the WITSML requirement was for a scan/trace by file) , so it was create and forget.  It's been a HUGE calculate time and the difference in CPU usage.  Not sure this makes a real difference as far as its use/allocation of memory went other than constants of course being constant/charge with the VI and possibly optimizations the compiler as a constant U8 is potentially easier to work with than the strings (and string constants?).)

I am logging the data locally on the disk with my different projects cRIO, because Yes, people just can not and will not use the TDMS files. What I do is I pre-allocate my paintings of strings - for example one the point current data to be logged out of the text file is an array of strings of 1 d, 1 item per channel, I have created by first creating an array of fixed size U8 (INIT 1 d array, say 16 bytes), conversion to string and then initialize my array of strings (INIT 1 d array again).

I keep this saved allocated string of 1 d table change. When it comes time to write a new line to my account, I browse the table, using a loop FOR and Place the item Structure (not), new values in connects.

I do everything with CVT or variables shared so I just read the tags by program and do a 'chain of fractional' on them. To write the string in the file I keep a last number of bytes and simply go to the file position and write.

So far I didn't problems with leaks memory or fragmentation - you see the largest continuous block only decrease and then remain constant.  My systems typically run a week to a month between resets.

It sounds like you are already planning to do this: work with arrays of pre-allocated chain. I'd say it's the way to go.

Tags: NI Hardware

Similar Questions

  • 3097 memory failure allocating memory for the Variables

    Hello - have an old Lenovo tablet of 3 year with Windows XP. Its been performing very well. I get a message that appears randomly who says:

    3097 memory failure allocating memory for the Variables

    installedapp872 = StrSub (Apps, Start, stop-stop)

    WinBatch 32 2000

    WIL Version: 3.0cbv

    has ran a chdsk

    Reinstall the memory.

    Found nothing on Google about this message.

    I appreciate your help.

    Try R.clicking my computer, properties, advanced, performance, swap file,.

    Click Change button, with C: drive selected, the value to "let the system handle",

    2 X game, close, restart the pc.

    Also, try http://oca.microsoft.com/en/windiag.asp

    Download & run the test memory microsoft...

  • Failure allocating memory on Palm handheld (4013).

    I get the above message when I try to synchronize my Tungsten T3 to my PC using intellisync.  Here is the full message.  I don't really have an idea on where to go to fix this.  Any help would be appreciated to begreatly.  Thank you!

    Failure allocating memory on Palm handheld (4013).
    Failed synchronization date Book
    -Backup db Bluetooth Trusted Devices on the file C:\Program Files\Palm\PageT\Backup\Bluetooth_Trusted_Devices.PDB
    -Save db Bluetooth Device Cache in the file C:\Program Files\Palm\PageT\Backup\Bluetooth_Device_Cache.PDB
    -Backup db preferences saved in the file C:\Program Files\Palm\PageT\Backup\Saved_Preferences.PRC
    System OK
    HotSync operation ends 22/01/09 13:17:24

    that remaining disk space is too low to be able to sync properly, especially if you have loads of data to synchronize daily. Try freeing up space by removing unwanted applications and games on your device.

    Message is about: Treo 680 (unlocked GSM)

  • Use of VxWorks memory - cRIO-9014

    Suggestions how to monitor the memory usage in the RT on the cRIO itself?

    You should have access to this palette.

  • Active vs allocated memory overcommitment

    I'm really banging my head against the desk on this one, I read tons of articles about it, but none quite happen to me. Can someone please demystify it once and for all for me?

    1. We are trying to approve the memory in our 2 host cluster, call HOST01 and HOST02.

    1. Our hosts have 256 GB of physical memory available, and one of our hosts (HOST02) has more than 96% of the physical memory "attributed" to running virtual machines. However, the amount of physical memory ACTIVE, using these virtual machines is VERY low in the range < 20 GB.

    1. We wanted to test above commitment and hoping what happened 'States of memory' of High Low hard etc., were based on the amount of physical memory actually used active.

    1. Once we vMotioned 10 or so VMs to HOST2 and got more than 100% allocated, esxtop, am "began to blow upward swap 0.25 MB, ZIP and MEMCTL/Mo/Mo, I saw him pass high soft to hard and back to high." VMS also showed active Exchange etc.

    1. We balanced since the cluster back to where the memory allocated is approximately 70% and it seems that certain elements are still going through recovery techniques of memory.

    I was not able to find a definitive answer to memory retrieve technical, based on what I see, it's almost as if VMware is oblivious to the amount of physical memory of assets used by the virtual machines running on the host.

    Once the MMTP/Mo value falls below a certain % of what seems to be the memory ALLOCATED to virtual machines, it appears the flicks of State memory and memory retrieve techniques kick and start swapping, compression, balloon etc. Why this is the host a lot of physical memory available for use?

    Am I missing something? This seems inefficient, why if I have 256 physical memory cannot I allocated say 500GB of memory to my VM if my VMs only really use 20 GB of physical memory? I should be able to allocate as much as I want until exhaustion where a minimum of physical memory is available and THEN start the recovery techniques of memory.

    http://www.yellow-bricks.com/2015/02/17/vSphere-60-breaking-large-pages/http ://

    http://www.yellow-bricks.com/2015/03/02/what-happens-at-which-vSphere-memory-state/

    From my experience, most of the 'question' is because of large pages. When I deceive vSphere in the use of small pages everything works perfectly and I can cram several times the amount of virtual machines on the server.

  • Allocated memory and memory resource limit

    Hello

    I'm trying to get a better understanding of the memory allocated for a virtual computer when memory limit is set.

    For example:

    I created VM1 with 1 GB of RAM.  Subject, I left 0 by default.  But under the limit, the default value is unlimited.  I would indicate that Unlimited VM1 can use as much memory as it needs and that the ESX host can provide.

    If I set the limit to 2 GB, it does mean that VM1 can use more than 1 GB of RAM configured on built but can use up to 2 GB of RAM? From the file pdf resouce management, it appears that once you set the limit, the amount of memory configured on built is ignored, is that correct?

    CPU and memory limits default to unlimited. When the limit of memory is unlimited, the amount of memory configured for the virtual machine when you create becomes its implicit limit in most cases.

    chukarma wrote:

    I created VM1 with 1 GB of RAM.

    Think of this parameter as being equivalent to the amount of RAM that you install on a physical machine. The guest operating system can NEVER more than this amount.

    Subject, I left 0 by default.  But under the limit, the default value is unlimited.  I would indicate that Unlimited VM1 can use as much memory as it needs and that the ESX host can provide.

    The limit is use to restrict a virtual machine on your part until his assignment. For example, if you - for some reason-wanted to configure your virtual machine with / 3GB, but her access to more than 1 GB, you would set the attribution to 3 GB (it's how the guest operating system might think there), still set the limit to 1 GB - this is the maximum that ESX would allow the virtual machine to use at any time.

    If I set the limit to 2 GB, it does mean that VM1 can use more than 1 GB of RAM configured on built but can use up to 2 GB of RAM?

    No.... See the previous discussion.

    From the file pdf resouce management, it appears that once you set the limit, the amount of memory configured on built is ignored, is that correct?

    # If it is what deduced you, while the document needs to be clarified. The virtual machine can NEVER use physical RAM more than its allowance.

    CPU and memory limits default to unlimited. When the limit of memory is unlimited, the > amount of memory configured for the virtual machine when you create becomes sound > implicit limit in most cases.

    It is said that if the limit is 'Unlimited' (the default), then the 'quantity of memory configured for the virtual machine' (i.e. attribution), becomes the limit. It's just a convoluted way of saying that the virtual machine is unable to use more is attributed to him.

    Ken Cline

    Technical Director, virtualization

    Wells Landers

    TVAR Solutions, a company of the Wells Landers group

    VMware communities user moderator

  • Problem with allocating memory collection arraycollection by AddItem

    I have a strange problem with the AddItem method.

    I made a new item with this code:

    ------

    for (var u: int = 0; u < 41; u ++) {}
    Page = new PageToSave();
    project.addPage (page as PageToSave);
    }

    -----

    the project is a distance of class projectblueprint:

    package marcoDoItBetter.utils
    {
    Import mx.collections.ArrayCollection;
    public class ProjectBlueprint
    {
    private var _pages:ArrayCollection;

    public void addPage(page:PageToSave):void
    {
    This._pages. AddItem (page);
    }

    }

    }

    ----

    PageToSave is a class that extends the object.

    When we create the element using the addPages (so with in the collection _pages arraycollection's addItem) programmatically, we have this result using the term Inspector in debug mode.

    It is on the output of the debugger:

    pageList = mx.collections.ArrayCollection (@105cf341)
    [inherited] =
    [0] = marcoDoItBetter.utils.PageToSave (@113cb461)
    [1] = marcoDoItBetter.utils.PageToSave (@113cb401)
    [2] = marcoDoItBetter.utils.PageToSave (@113cb3a1)
    [3] = marcoDoItBetter.utils.PageToSave (@113cb341)
    [4] = marcoDoItBetter.utils.PageToSave (@113cb2e1)
    [5] = marcoDoItBetter.utils.PageToSave (@113cb281) < -.
    [6] = marcoDoItBetter.utils.PageToSave (@113cb221)
    [7] = marcoDoItBetter.utils.PageToSave (@113cb1c1)
    [8] = marcoDoItBetter.utils.PageToSave (@113cb161)
    [9] = marcoDoItBetter.utils.PageToSave (@113cb101)
    [10] = marcoDoItBetter.utils.PageToSave (@113cb0a1)
    [11] = marcoDoItBetter.utils.PageToSave (@113cb041)
    [12] = marcoDoItBetter.utils.PageToSave (@1140dfa1)
    [13] = marcoDoItBetter.utils.PageToSave (@1140df41)
    [14] = marcoDoItBetter.utils.PageToSave (@1140dee1)
    [15] = marcoDoItBetter.utils.PageToSave (@1140de81)
    [16] = marcoDoItBetter.utils.PageToSave (@1140de21)
    [17] = marcoDoItBetter.utils.PageToSave (@1140ddc1)
    [18] = marcoDoItBetter.utils.PageToSave (@1140dd61)
    [19] = marcoDoItBetter.utils.PageToSave (@1140dd01)
    [20] = marcoDoItBetter.utils.PageToSave (@1140dca1)
    [21] = marcoDoItBetter.utils.PageToSave (@1140dc41)
    [22] = marcoDoItBetter.utils.PageToSave (@113cb281) < -.
    [23] = marcoDoItBetter.utils.PageToSave (@1140db81)
    [24] = marcoDoItBetter.utils.PageToSave (@1140db21)
    [25] = marcoDoItBetter.utils.PageToSave (@1140dac1)
    [26] = marcoDoItBetter.utils.PageToSave (@1140da61)
    [27] = marcoDoItBetter.utils.PageToSave (@1140da01)
    [28] = marcoDoItBetter.utils.PageToSave (@1140d9a1)
    [29] = marcoDoItBetter.utils.PageToSave (@1140 d 941)
    [30] = marcoDoItBetter.utils.PageToSave (@1140d8e1)
    [31] = marcoDoItBetter.utils.PageToSave (@1140 d 881)
    [32] = marcoDoItBetter.utils.PageToSave (@1140 d 821)
    [33] = marcoDoItBetter.utils.PageToSave (@1140d7c1)
    [34] = marcoDoItBetter.utils.PageToSave (@1140 d 761)
    [35] = marcoDoItBetter.utils.PageToSave (@1140 d 701)
    [36] = marcoDoItBetter.utils.PageToSave (@1140d6a1)
    [37] = marcoDoItBetter.utils.PageToSave (@1140 d 641)
    [38] = marcoDoItBetter.utils.PageToSave (@1140 d 221)
    [39] = marcoDoItBetter.utils.PageToSave (@1140d5e1)
    [40] = marcoDoItBetter.utils.PageToSave (@1140 d 461)
    source = Array (@1140c9a9)

    as you can see the [5] and the [22] PageToSave id internal flex (or instances of the class has the same address listing.

    "I don't know the exact name of it). It happens totally randomly.

    sometimes fine, sometimes there's more than a duplicate with random address referencing the game.

    I don't want duplicated instances, but I want independent authorities.

    I tried to change addItem with

    This._pages.addItemAt (page, 0);

    Same result.

    I also tried pagina = null before the statement new but same result

    ------

    for (var u: int = 0; u < 41; u ++) {}
    Page = new PageToSave();
    project.addPage (page as PageToSave);

    Page = null;
    }

    -----

    is a garbage collector from?

    How can we solve this problem?

    Thank you

    Hello

    From the looks of it, looks like a bug.

    Are you defining filters or performs a sort on the ArrayCollection collection? Or it's just a pure naked collection instance ArrayCollection.

    Have you tried addItemAt() and got the same result?

    Mike

  • Memory Allocation problem when using JNI

    For a project, we need to interface Labwindows CVI / Teststand with an application written in Java. We use JNI. The code uses JNI_CreateJavaVM to start a JAVA virtual machine to run the Java interface code. The code did run for quite awhile, but now (without any obvious changes on the side of the CVI or on the coast of Java) JNI_CreateJavaVM will fail with the error-4 code, this means that of the JAVA virtual machine failed to start due to the failure of allocation memory. First investigation shows that even if the Windows Task Manager shows approximately 600 M free physical memory, you can allocate in ICB only about 250 M as a single block at the point where we call JNI_CreateJavaVM. Maybe it's a little less because we have - Xmx192m to the JAVA virtual machine to run our code. Unfortunately just to increase the physical memory of the machine of 1.5 G to 2G doesn't change anything. Free memory space in the Task Manager showed increases, but the memory total block size does not work. Are the trick to optimize the CVI/Teststand who use cases?  Or maybe the problems with JNI?

    Finally, it was a memory fragmentation problem with TestStand. See details/solution here

  • When memory is allocated to a variable in the language PLSQL and where in the PGA?

    Hi all

    When and where the memory is allocated to a variable?

    declare

    number of my_variable;

    number of my_var0;

    my_var1 number: = 0;

    Start

    my_variable = 1;

    -logical treatment

    end;

    In the example above

    one) because my_var0 is not assigned a number of execution block will be assigned memory with a value of waste inside?

    (b) where my_var1 and my_variable (and my_var0 if it is allocated memory) will have memory allocated (is it in the stack of the PGA space)?

    (c) if the my_var0 is allocated memory in his statement is this rule which applies to any oracle data type defined or defined by the user files or objects viz?

    Can u please help me with an informative article about the allocation of memory in Oracle. Thanks in advance.

    The initial value of a PL/SQL variable is NULL if you do not provide one when it is declared.

    http://docs.Oracle.com/CD/E11882_01/AppDev.112/e25519/fundamentals.htm#LNPLS195

    PL/SQL variable are stored in a private SQL area Global user (UGA) area, and the UGA may be in the PGA or the SGA according to the type of connection you have.  Details of the architecture of memory are documented in the concepts guide.

    Memory architecture

  • UDP error 61 the cRIO - but the use of controller memory is &lt; ~ 70%

    Hi all

    I'm having a problem with a program that runs on a cRIO-9074.

    My controller code has 3 parallel processes (for the 3 banks in my controller) that each contain 3 while loops. Reads an array of FXP in a FPGA DMA FIFO values and pushes this table in a queue. The following loop then reads the table from the queue, it throws in a string, split that string in size of the UDP and puts these substrings in a second queue. The final loop reads a substring from the second queue and forwards via UDP.

    Basically, a producer - consumer consumer/producer-architecture.

    Now this works very well in my development version of spaghetti with just a first level vi code. To make things more readable even if I compacted things into subvis, using global variables when it is necessary to connect them.

    My code is executed, but I get frequent errors during the broadcast channels UDP:

    «UDP - 61 error: the system could not allocate required memory.»

    I checked the memory usage from NOR distributed systems manager and my memory cRIO has a pretty decent amount of overhead. The sampling rate reduction - and corresponding memory use - does not make a big difference to the system time can go errors before. Even by reducing the sampling frequency straight down and disabbling that all except a loop (e.g. a Bank), I always get errors.

    How I debug this?


  • Re: Private memory takes all 24 GB allocated: Guest barely operating system uses 3 GB.

    I have setup a reserve GB 12, so I would understand if the memory consumed was 12 GB, but it is not, is 24 GB. It will be easier to explain with a few screenshot:

    That's what I see in Vsphere:

    From-Vsphere.JPG

    And that's what I see in the guest OS (1.98 GB of memory used) Task Manager:

    From-OS.JPG

    I tried to put a limit to 12 GB, but when I do, private memory go to 12 GB, and the other half of the allocated memory is ball!

    It seems that VMware really think that my VM uses all of its allocated memory.

    I saw someone with the same problem: https://communities.vmware.com/thread/473652 but I did not understand what was his solution.

    Thank you. (And sorry if I made a few mistakes of writing, English is not my native language)

    It's pretty simple:

    When Windows starts, it affects your memory pages. For this reason to vSphere that looks that all pages are used, it is what you are witnesses. Even when they do nothing and are all pages of "zero", it appears as "consumed", unfortunately, in the user interface

  • Allocation of memory in vmware workstation

    I'm new to vmware.  I have a server I'll test this on.  I have a Server Windows 2008 R2 with 4 GB of memory.  If I install vmware workstation on it and install a virtual machine Windows XP with 1 GB of RAM allocated to it, does this mean that when the virtual machine is running the XP virtual machine has 1 GB of memory to use the host (Windows 2008) system will have 3 GB for himself to use?

    Thanks for any advice in advance.

    If your virtual machine is fully using the 1 GB or RAM, then Yes, you are correct - but remember that Workstation is just an application that runs on your server, so if the virtual machine does not all allocated memory, the application will require all this memory and so you will have more memory available for the physical host.

  • Guest - specification of a memory allocation number real vs 'unlimited '.

    When allocating memory to a virtual machine, what is the difference between allocate 512 MB vs 2gbs, so the "unlimited" is checked on the tab "resources"? "  Not "unlimited" means that the machine will take what he can get anyway?  If so, what is the meaning is there to the number you specify?  I understand that a swap file will be created relative to the size of the allocated memory, and that a large pagefile may be detrimental to performance.  Are there other performance implications to allocate a larger amount of memory? Is it better to just go with the default of 256mbs (and "unlimited) and VMware let take care of the rest?

    The essential line in your quote is "a virtual machine cannot benefit from more memory than its size memory virtual material." set up which means the maximum amount of memory that the virtual machine will have access to is defined in the Hardware tab - even with the distribution set for unlimited memory resource will have access to the computer virtual equals the amount set in the Hardware tab.

    If you find this or any other answer useful please consider awarding points marking the answer correct or useful

  • Leak memory in a simple loop to save data in the table?

    Hello world

    I'm trying to set up a simple code to read a certain amount of data in a table at a fixed sampling rate and put these data in a local variable.  I'll put this on one OR cRIO-9073 using the scanning engine and the data comes from one NOR 9208 with a speed of approximately 250 Hz scanning, even if it is not really important at the moment.

    I made this little test VI which I suspect contains a memory leak, but I'm not able to identify it.  The reason for my suspicion is that when I run the vi on a VMWare virtual machine (LabVIEW 2010 on Windows XP) it claims soon that it is short-term memory.  Of course, the problem is perhaps elsewhere, but I hope that someone more experienced with LabVIEW programming will be able to find all the bugs very easily because it is really a piece very simpel to code. :-)

    I have included a copy of the VI with a screenshot to illustrate.

    Regards, Martin

    PS my code looks a bit awkward, so if anyone has a better solution, I'd be very happy to learn about it!

    Hello Martin,

    I would try a different approach to your problem. Currently you reshape your table each iteration of the loop. This means that the allocator memory of LV must find a new piece of contiguous memory each iteration of the loop. You're probably fragment your memory and so short of contiguous blocks of memory, leading to the release of messages from memory.

    For these types of tasks, I recommend having an array of fixed size that you initialize outside the loop and then use the Replace table subset in the loop for updating the values. This avoids the problem of allocating memory you use in.

    Alternatively, since I assume that you use the local variable to pass data to another loop, you can use a FIFO RT to manage data. A RT FIFO resembles a queue of LV, but it is designed so that you can keep determinism in your application. Set up an acquisition loop that exports data from the 9208 every 4ms in a RT FIFO. Then set up your processing loop to run at a slower pace - say every 200ms. The processing loop reads all the elements of the FIFO until it is empty every 200ms or a number of samples. The RT FIFO is fixed size, if you need to make it large enough to contain at least 200/4 = 50 samples. For more security, you should do several times bigger, maybe 200 samples. You can try different sizes of the FIFO and also to the different periods of your processing loop to your application's specifications.

    Using this method you do not have to create a counter to track items, since the reading of FIFO function can tell you how many items is in the FIFO and also when it is empty.

    I recommend you the example of Communication of FIFO of RT which comes with LabVIEW to get an idea of how to use these functions.

    Gerardo

  • Memory and snapshot management

    Where can I find detailed information on memory and snapshot management in VMware workstation?

    Memory:

    • How memory is allocated in the host PC?
    • If I sart a guest VM with 2 GB of RAM with 500 MB of RAM on a host PC with 3 GB of RAM, the amount of memory is allocated on the host?
    • What should happen if I start more guest VM and the amount of memory is the memory available on the host PC?

    In summary:

    • How are managed snapshot all the view host to PC file system?
    • What is the role and the content of the files being created whenever I take a snapshot?
    • What is - that supposed to happen if I delete a file containing a snapshot (file, not the snapshot)?

    Concerning

    Marius

    • 1. how memory is allocated in the host PC?
    • 2. If I sart a guest VM with 2 GB of RAM with 500 MB of RAM on a host PC with 3 GB of RAM, the amount of memory is allocated on the host?
    • 3. what should happen if I start more guest VM and the amount of memory is the memory available on the host PC?
    • 4. How are all managed snapshot view host to PC file system?
    • 5. What is the role and content of the files being created whenever I take a snapshot?
    • 6. What is - that supposed to happen if I delete a file containing a snapshot (file, not the snapshot)?

    1. that costs on the settings in your config.ini file
    2. the host can use somethiong between 2200 MB and a few MBs - depends on config.ini
    3 the host said 'not possible' either the virtual machine starts - with extreme settings, you can allocate 5 x physical RAM available to your virtual machine

    4 and 5.

    vmsd-file = list used by the customer snapshots
    VMSN-file = settings and configuring the host when the snapshot was created
    00000*.vmdk = file does the actual data of the snapshot

    6. cannot be predicted: anything can happen: System can be will start more or healthy - so NEVER do this

    > Should I expect to use as much RAM on the host computer as the sum of memory configured all virtual machines of comments?

    again it depends on your config.ini file settings - if twist you config.ini for better performance, then the answer is YES

    a few good things to read http://faq.sanbarrow.com/index.php?action=artikel&cat=78&id=76&artlang=en

Maybe you are looking for