Skip to main content

developerWorks >  Linux  >  Forums  >  IBM PowerVM Lx86 for x86 Linux Applications  >  developerWorks

big memory overhead with p-ave and multiple processes inside    Point your RSS reader here for a feed of the latest messages in this thread


Tags for this thread: 

     

 
 

My developerWorks
 Welcome, Guest
Sign in or register
Permlink Replies: 6 - Pages: 1 - Last Post: Oct 28, 2009 7:22 AM Last Post By: karl.martin
opsanes

Posts: 1
Registered: Feb 26, 2009 04:26:03 AM
big memory overhead with p-ave and multiple processes inside
Posted: Feb 26, 2009 04:37:15 AM
Click to report abuse...   Click to reply to this thread Reply
Hello,
We try to virtualize some of our old linux applications in p-ave, but we have problems with the memory usage.Let's start with picture of our environment - RHEL 4.6 for power and p-ave 1.2.0.0 on it.On the old machine we have 2 gigs of RAM, and they are not full when let's say 300 processes are working.On the p-ave setup we have 4 gigs of RAM and they get exhausted very quickly - for example after 150 processes I have full 4 gigs and starting swap operations.
For every process inside p-ave I have a wrapper p-ave process, which I think causes the overhead.Can you give me some advise, is it possible to optimize the memory usage of the p-ave ?

BR
lple2003

Posts: 3
Registered: Apr 16, 2009 07:33:59 PM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Apr 17, 2009 01:24:59 PM   in response to: opsanes in response to: opsanes's post
Click to report abuse...   Click to reply to this thread Reply
Hi BR,

Unfortunately, there is a memory usage overhead inherent in Lx86, due to the extra code translations it needs to maintain. The soon-to-be-released PowerVM Lx86 1.3.1 should incur less overhead than the earlier versions, so you may wish to try this version when it is available and see if it improves your application. If you still see much higher than expected memory use, please let us know and we may be able to investigate further to see if memory usage can be reduced in your environment.
PowerLinuxvsAIX

Posts: 9
Registered: Sep 14, 2009 09:56:54 PM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Oct 20, 2009 11:49:36 PM   in response to: lple2003 in response to: lple2003's post
Click to report abuse...   Click to reply to this thread Reply
Hello,

My customer is having the same issue about the memory usage of Lx86. The version is 1.3.1 . By the ps command I see two processes running.

powervm-lx-86-daemon: Which uses about 170M ( The VIRT row ) of virtual memory.
powervm-lx: Which depends on what x86 application that is running, but it uses an average of 90000 virtual memory.

In the manual I found an parameter, called the MEMORY_MONITOR_TRIGGER_RATIO.

http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaac/powervm-lx86-release-notes.htm?

This seems to look like a solution for reducing the memory usage of Lx86.
However, I fiddled with the parameter (changing it to 250 to 100) on my test machine but couldn't find any changes of the memory usage.

My question is:

1. Is the parameter MEMORY_MONITOR_TRIGGER_RATIO useful for reducing the memory usage of Lx86?
2. (If 1. is yes) How do I use this parameter?
3. (If 1. is no) Are there any other useful parameters I can use?

thanks
karl.martin

Posts: 4
Registered: Sep 22, 2009 11:07:54 AM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Oct 21, 2009 06:45:11 AM   in response to: PowerLinuxvsAIX in response to: PowerLinuxvsAIX's post
Click to report abuse...   Click to reply to this thread Reply
Hello,
MEMORY_MONITOR_TRIGGER_RATIO=x is the correct configuration option too limit the amount of memory used a process.

This option needs to be placed in powervm-lx86's config file (/etc/opt/powervm-lx86/config), you may have to create this file if it doesn't exist. Next powervm-lx86 will require a restart.

  1. /etc/init.d/powervm-lx86 start

I am guessing that when you said that it made no difference to the memory usage you hadn't restarted powervm-lx86?

Regards,
Karl
karl.martin

Posts: 4
Registered: Sep 22, 2009 11:07:54 AM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Oct 21, 2009 07:33:06 AM   in response to: karl.martin in response to: karl.martin's post
Click to report abuse...   Click to reply to this thread Reply
In version 1.3.1 the memory limit option is on by default and is set too 250%. Please can you set the limit too 100% (see my previous), restart powervm-lx86 and post the results.

Thanks,
Karl
PowerLinuxvsAIX

Posts: 9
Registered: Sep 14, 2009 09:56:54 PM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Oct 21, 2009 08:25:31 PM   in response to: karl.martin in response to: karl.martin's post
Click to report abuse...   Click to reply to this thread Reply
Thanks for you reply,

I did restart the powervm-lx86 (but by using the "service" command. Inform me if this the wrong procedure).

Here are the results
<MEMORY_MONITOR_TRIGGER_RATIO=250>

  1. more /etc/opt/powervm-lx86/config
MEMORY_MONITOR_TRIGGER_RATIO=250
  1. service powervm-lx86 restart
  2. top n 1 b | grep powervm
365 root 16 0 90240 16m 5056 S 0.0 1.6 0:00.05 powervm-lx86
373 root 21 0 88768 15m 5056 S 0.0 1.5 0:00.02 powervm-lx86
398 root 21 0 95552 17m 5312 S 0.0 1.8 0:00.15 powervm-lx86
32762 daemon 15 0 172m 4928 2560 S 0.0 0.5 0:00.01 powervm-lx86-da

<MEMORY_MONITOR_TRIGGER_RATIO=100>

  1. more /etc/opt/powervm-lx86/config
MEMORY_MONITOR_TRIGGER_RATIO=100
  1. service powervm-lx86 restart
  2. top n 1 b | grep powervm
611 daemon 15 0 108m 4864 2560 S 0.0 0.5 0:00.02 powervm-lx86-da
672 root 15 0 90240 16m 5056 S 0.0 1.6 0:00.05 powervm-lx86
680 root 20 0 88768 15m 5120 S 0.0 1.5 0:00.02 powervm-lx86
704 root 18 0 95552 17m 5312 S 0.0 1.8 0:00.14 powervm-lx86

From the results, It seems that the memory usage of powervm-lx86-daemon has decreased. However sometimes the amount of virtual memory is the same even when MEMORY_MONITOR_TRIGGER_RATIO is set to 250 or 100.

Here is another result

<Another result when MEMORY_MONITOR_TRIGGER_RATIO=250>

  1. more /etc/opt/powervm-lx86/config
MEMORY_MONITOR_TRIGGER_RATIO=250
  1. service powervm-lx86 restart
  2. top n 1 b | grep powervm
7970 daemon 15 0 108m 4864 2560 S 0.0 0.5 0:00.01 powervm-lx86-da
8032 root 16 0 90240 16m 5056 S 0.0 1.6 0:00.05 powervm-lx86
8040 root 18 0 88768 15m 5120 S 0.0 1.5 0:00.02 powervm-lx86
8064 root 21 0 95552 17m 5312 S 0.0 1.8 0:00.14 powervm-lx86

So I am uncertain if MEMORY_MONITOR_TRIGGER_RATIO has an effect for decreasing the memory usage. ( I apologize for saying "no difference" in the previous comment")

Also can you help me with the manual?
In the manual it has:

"The amount of virtual memory used by PowerVM Lx86 can be restricted, specified as a ratio to the amount of memory used by the x86 application being translated. When PowerVM Lx86's memory use exceeds this ratio, it will discard Power code translations until it is within the allowed threshold.

The limit is set to 250% of the x86 application's memory usage by default; that is PowerVM Lx86 will not use more than two and a half times the amount of memory that the x86 application would have used. Setting the value to 100% will cap the memory usage when it reaches 1:1 with the x86 application usage. Setting the ratio to zero will disable the limit. Setting the limit to a low ratio, less than the default, may impact the performance of PowerVM Lx86 and hence the x86 application being translated."


what does "x86 application's" mean in above? Does this mean the "powervm-lx86" process that can be seen in the ps (or top) command?

Thanks,

karl.martin

Posts: 4
Registered: Sep 22, 2009 11:07:54 AM
Re: big memory overhead with p-ave and multiple processes inside
Posted: Oct 28, 2009 07:22:17 AM   in response to: PowerLinuxvsAIX in response to: PowerLinuxvsAIX's post
Click to report abuse...   Click to reply to this thread Reply
Hi there,

Memory limit primarily applies to memory used for code translations, and so for smaller applications there might not be much difference between using the limit and not. The real difference can only be spotted when running larger programs that would require a lot more memory.

'x86 applications' simply means the translated process, it will appear as a powervm-lx86 process in a native top/ps. If you run ps/top translated the name of the process will be shown as you would expect.
 Tags
Help

Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular type of content or application that you're viewing.

My tags shows your tags for this particular type of content or application that you're viewing.

 

MoreLess 


Point your RSS reader here for a feed of the latest messages in all forums