#491226 does not respect VM occupation limits

Package:
boinc-client
Source:
boinc
Description:
core client for the BOINC distributed computing infrastructure
Submitter:
Sandro Tosi
Date:
2010-08-09 16:38:18 UTC
Severity:
important
#491226#5
Date:
2008-07-17 18:58:10 UTC
From:
To:
Hello,
I've set limits for VM usage:

zion:/debs# grep vm_max_used_pct etc/boinc-client/global_prefs_override.xml
   <vm_max_used_pct>75.000000</vm_max_used_pct>

but boicmgr didn't respect them, and I got 4 garli processes (each one
takes 1Gb of ram) on my 4Gb Ram machine, and the box got freezed.

Please give it a look, since it has the potential to completely block a
workstation (reboot would be needed then).

Thanks,
Sandro

#491226#12
Date:
2008-08-25 17:53:54 UTC
From:
To:
reassign 491226 boinc-client 6.2.12-1
thanks

Hi Sandro,

I'm not totally sure but I think <vm_max_used_pct> is only used to determine
if enough swap space is available to leave suspended applications in memory
if <leave_apps_in_memory> is set. So for example if <vm_max_used_pct> is set
to 25.0 and you have 1 GB of swap space, BOINC would only use 250 MB of it
for suspended applications.

If you want to limit RAM usage, you should adjust <ram_max_used_busy_pct> and
<ram_max_used_idle_pct> in global_prefs_override.xml.

Cheers,

#491226#19
Date:
2008-08-25 20:40:05 UTC
From:
To:
Hi Frank,

Well, on this machine there is no swap space ;)

These are the values for the keys:

$ egrep "ram_max_used_idle_pct|ram_max_used_busy_pct"
/etc/boinc-client/global_prefs_override.xml
   <ram_max_used_busy_pct>50.000000</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>90.000000</ram_max_used_idle_pct>

It seems a safe situation, but the problem appears anyhow (and I
didn't change those parameters in the meantime). I was on 6.2.12 while
now I'm on 6.2.14 (waiting for .18 to be built for amd64) so I don't
know if in the meantime it was fixed or not.

Cheers,

#491226#24
Date:
2008-08-26 14:36:03 UTC
From:
To:
Hi Sandro,

So if I'm right, the client should never leave applications in memory which is
opposed to the other bug you reported. *sigh* :-)

Frankly, I don't know. But it would be interesting if you could modify those
values to find out if it affects RAM usage. For example, set them to 25.0 and
50.0, restart the client and monitor the client's RAM usage. To monitor
BOINC's RAM usage the attached script may be helpful:
    $ watch -n 0.5 ./boinc-mem-usage.sh

In theory, BOINC's total resident set size (in %) should never exceed
ram_max_used_idle_pct.

Cheers,

#491226#29
Date:
2008-08-29 18:03:32 UTC
From:
To:
Hi Frank,
I just made some tests

well, it shows of they are related (see below)

$ egrep "ram_max_used_idle_pct|ram_max_used_busy_pct"
/etc/boinc-client/global_prefs_override.xml
   <ram_max_used_busy_pct>50.000000</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>90.000000</ram_max_used_idle_pct>

$ ~/tmp/boinc-mem-usage.sh
Host's total memory:  4058168 KiB  3963.05 MiB
Host's total swap:          0 KiB  0.00 MiB

BOINC's total resident set size:    1231356 KiB  1202.50 MiB
BOINC's total virtual memory size:  1331948 KiB  1300.73 MiB

BOINC's total resident set size:   30.3%
BOINC's total virtual memory size: 32.8%

Then I set:

$ egrep "ram_max_used_idle_pct|ram_max_used_busy_pct"
/etc/boinc-client/global_prefs_override.xml
   <ram_max_used_busy_pct>25.000000</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>50.000000</ram_max_used_idle_pct>

guess what?

$ ~/tmp/boinc-mem-usage.sh
Host's total memory:  4058168 KiB  3963.05 MiB
Host's total swap:          0 KiB  0.00 MiB

BOINC's total resident set size:    1629944 KiB  1591.74 MiB
BOINC's total virtual memory size:  1782020 KiB  1740.25 MiB

BOINC's total resident set size:   40.2%
BOINC's total virtual memory size: 43.9%

The problem is that the process put on hold due to "Waiting for
memory" are indeed *left in memory* so my machine went trashing (I got
to kill boinc from a laptop).

If you need some other tests, simply ask (I'd like to see boinc bug free :) ).

Cheers,
Sandro