Opened 16 years ago
Closed 13 years ago
#3498 closed defect (fixed)
Possible memory leak during paused VM
| Reported by: | Pete | Owned by: | |
|---|---|---|---|
| Component: | other | Version: | VirtualBox 2.1.4 |
| Keywords: | Cc: | ||
| Guest type: | Windows | Host type: | other |
Description
I'm running the non-OSE version of VirtualBox 2.1.4. The VM guest is running WinXP Pro. If I boot the machine and then pause the guest, my system memory usage starts to increase. After a few hours all ram gets used up.
Immediately upon unpausing the VM, the ram is released. Below is a sequence of `free' commands from just before pausing, just before unpausing, immediately after unpausing, and then a few minutes later.
foo@bar:~$ date && free
Wed Mar 4 21:03:32 MST 2009
total used free shared buffers cached
Mem: 4054092 3018400 1035692 0 37476 1400648
-/+ buffers/cache: 1580276 2473816
Swap: 1951856 2208 1949648
foo@bar:~$ date && free
Wed Mar 4 21:16:20 MST 2009
total used free shared buffers cached
Mem: 4054092 3666676 387416 0 38628 1481980
-/+ buffers/cache: 2146068 1908024
Swap: 1951856 2208 1949648
foo@bar:~$ date && free
Wed Mar 4 21:16:27 MST 2009
total used free shared buffers cached
Mem: 4054092 3117800 936292 0 38640 1482028
-/+ buffers/cache: 1597132 2456960
Swap: 1951856 2208 1949648
foo@bar:~$ date && free
Wed Mar 4 21:21:13 MST 2009
total used free shared buffers cached
Mem: 4054092 3013084 1041008 0 39100 1377408
-/+ buffers/cache: 1596576 2457516
Swap: 1951856 2208 1949648
This is a major problem for me. I really like to have the VM open, as I use it to VPN, but I want to be able to pause because I run large optimizations too.
Attachments (2)
Change History (14)
by , 16 years ago
comment:1 by , 16 years ago
comment:2 by , 16 years ago
Okay, I tried looking at the processes as you requested and I didn't see any change in their memory usage. So, obviously it must be a kernel problem, right? Well, after some googling, the best I could come up with was slabtop. So, here's some grabs from before pausing, after 20 minutes, and immediately after unpausing:
Active / Total Objects (% used) : 827587 / 1142559 (72.4%)
Active / Total Slabs (% used) : 16051 / 16051 (100.0%)
Active / Total Caches (% used) : 61 / 66 (92.4%)
Active / Total Size (% used) : 71184.88K / 91935.82K (77.4%)
Minimum / Average / Maximum Object : 0.01K / 0.08K / 16.12K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
935544 675919 72% 0.04K 9172 102 36688K page_cgroup
19169 12821 66% 0.55K 661 29 10576K radix_tree_node
12684 12107 95% 0.75K 604 21 9664K ext3_inode_cache
54000 15731 29% 0.11K 1500 36 6000K buffer_head
23484 19113 81% 0.20K 1236 19 4944K dentry
5540 5537 99% 0.77K 277 20 4432K shmem_inode_cache
16859 16636 98% 0.17K 733 23 2932K vm_area_struct
680 663 97% 4.00K 85 8 2720K kmalloc-4096
295 295 100% 5.61K 59 5 1888K task_struct
5850 5390 92% 0.31K 234 25 1872K ip_dst_cache
752 571 75% 2.00K 47 16 1504K kmalloc-2048
7413 6982 94% 0.19K 353 21 1412K kmalloc-192
1360 1254 92% 1.00K 85 16 1360K kmalloc-1024
14943 14943 100% 0.08K 293 51 1172K sysfs_dir_cache
32 32 100% 12.00K 16 2 512K nv_stack_t
1008 847 84% 0.50K 63 16 504K kmalloc-512
Active / Total Objects (% used) : 1457007 / 1779573 (81.9%)
Active / Total Slabs (% used) : 61833 / 61833 (100.0%)
Active / Total Caches (% used) : 61 / 66 (92.4%)
Active / Total Size (% used) : 825651.33K / 845798.37K (97.6%)
Minimum / Average / Maximum Object : 0.01K / 0.47K / 16.12K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
92856 92847 99% 4.00K 11607 8 371424K kmalloc-4096
103488 103482 99% 2.00K 6468 16 206976K kmalloc-2048
322512 322501 99% 0.25K 20157 16 80628K kmalloc-256
74464 74463 99% 1.00K 4654 16 74464K kmalloc-1024
935442 663105 70% 0.04K 9171 102 36684K page_cgroup
54512 54495 99% 0.50K 3407 16 27256K kmalloc-512
19169 12295 64% 0.55K 661 29 10576K radix_tree_node
11886 11361 95% 0.75K 566 21 9056K ext3_inode_cache
46512 11221 24% 0.11K 1292 36 5168K buffer_head
21831 19020 87% 0.20K 1149 19 4596K dentry
5540 5537 99% 0.77K 277 20 4432K shmem_inode_cache
9675 9675 100% 0.31K 387 25 3096K ip_dst_cache
16859 16633 98% 0.17K 733 23 2932K vm_area_struct
290 281 96% 5.61K 58 5 1856K task_struct
7413 6977 94% 0.19K 353 21 1412K kmalloc-192
14943 14943 100% 0.08K 293 51 1172K sysfs_dir_cache
Active / Total Objects (% used) : 813211 / 1139368 (71.4%)
Active / Total Slabs (% used) : 16058 / 16058 (100.0%)
Active / Total Caches (% used) : 61 / 66 (92.4%)
Active / Total Size (% used) : 70588.45K / 94013.80K (75.1%)
Minimum / Average / Maximum Object : 0.01K / 0.08K / 16.12K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
935442 663194 70% 0.04K 9171 102 36684K page_cgroup
19169 12322 64% 0.55K 661 29 10576K radix_tree_node
11886 11361 95% 0.75K 566 21 9056K ext3_inode_cache
46512 11221 24% 0.11K 1292 36 5168K buffer_head
21831 19020 87% 0.20K 1149 19 4596K dentry
5540 5537 99% 0.77K 277 20 4432K shmem_inode_cache
1808 573 31% 2.00K 113 16 3616K kmalloc-2048
9750 9694 99% 0.31K 390 25 3120K ip_dst_cache
16859 16633 98% 0.17K 733 23 2932K vm_area_struct
688 661 96% 4.00K 86 8 2752K kmalloc-4096
290 281 96% 5.61K 58 5 1856K task_struct
7413 6982 94% 0.19K 353 21 1412K kmalloc-192
1392 1264 90% 1.00K 87 16 1392K kmalloc-1024
14943 14943 100% 0.08K 293 51 1172K sysfs_dir_cache
2608 525 20% 0.25K 163 16 652K kmalloc-256
1056 829 78% 0.50K 66 16 528K kmalloc-512
also
uname -a Linux pengTyler 2.6.27-11-generic #1 SMP Thu Jan 29 19:28:32 UTC 2009 x86_64 GNU/Linux
nothing strange about the setup. plain 64 bit Ubuntu, up to date and I installed VirtualBox from your repositories...
thanks!
comment:3 by , 16 years ago
If I make a new VM and set it to Linux (Ubuntu) it works fine, even if I boot the Windows image. No memory problems. Even if I switch it to Windows after creating the machine, all is fine.
If I make a new VM and set it to Windows, but boot off an Ubuntu CD, never even booting windows or going past the language selection menu for the ubuntu disk, it chews up memory. Changing the OS setting to Linux doesn't help at all.
So, the upshot is I have a work around for my problem. I'll just keep using the machine that I created with the OS set to Linux and switched to Windows...
No idea why this works...
comment:4 by , 16 years ago
Setting a different guest OS type during VM creation changes some settings. Which Windows type did you set? Compare the settings of both VM's:
- VT-x/AMD-V enabled/disabled?
- memory size?
- the type of the network adapter?
- I/O APIC enabled/disabled?
It should be easy to find the setting which makes the difference for your setup. Of course we would be interested in finding the problem.
comment:5 by , 16 years ago
All settings were the same. I chose Win XP. In particular:
512 MB ram, 12 MB video ACPI, IO APIC, VT-x/AMD-V, and 3D Acceleration: enabled audio: pulseaudio nic: PCnet-FAST III
...ah bugger. There is one difference: NAT vs host networking and...yes. That's the one.
With the networking set to NAT it's fine. Host networking blows up. Makes sense, I suppose. Probably buffering network traffic for the VM...
Thanks!
comment:6 by , 16 years ago
One more question: What does this VM when it is not paused and are there any other clients which might want to contact the VM when it is paused?
comment:7 by , 15 years ago
Sorry. The VM works just fine when it's not paused and no, there aren't any other machines directly trying to access this machine. It's not sharing any files or running any public services.
comment:8 by , 15 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Please reopen if it still happens with 3.0.8.
comment:9 by , 15 years ago
Just found this ticket because tonight my paused Windows XP VM started gobbling up swap space until I unpaused it.
I'm using 3.0.8 on an AMD64 host running Ubuntu 8.4. The VM is using bridged networking.
Looks like the problem still lurks!
comment:10 by , 15 years ago
| Resolution: | worksforme |
|---|---|
| Status: | closed → reopened |
| Summary: | Possible memory leak in 2.1.4 on Ubuntu 8.10 amd64 → Possible memory leak during paused VM |
burto, please could you attach a VBox.log file of such a session?
by , 15 years ago
| Attachment: | VBox.log-mb added |
|---|
comment:12 by , 13 years ago
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
Please reopen if still relevant with VBox 4.1.6.


So far I was not able to reproduce this. You log is not sufficient as it does not show if other processes eat memory. I have tried to reproduce and have paused a Win XP guest with two hostif network adapters for more than 30 minutes. There memory consumption of all related VBox-processes is very stable (i.e. does not change). Can you repeat the experiment and check the involved VBox processes with
If you really experience an increase of the required memory it should show us which process is involved (VirtualBox or VBoxSVC).