Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. uncategorized
  3. There's something that's eating quite a lot of RAM when using my Windows VM in QEMU.

There's something that's eating quite a lot of RAM when using my Windows VM in QEMU.

Scheduled Pinned Locked Moved uncategorized
13 Posts 5 Posters 69 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • volpeon@icy.wyvern.ripV This user is from outside of this forum
    volpeon@icy.wyvern.ripV This user is from outside of this forum
    volpeon@icy.wyvern.rip
    wrote last edited by
    #1

    There's something that's eating quite a lot of RAM when using my Windows VM in QEMU. I don't know what it is because it persists for a while after I stopped QEMU.

    volpeon@icy.wyvern.ripV 1 Reply Last reply
    0
    • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

      There's something that's eating quite a lot of RAM when using my Windows VM in QEMU. I don't know what it is because it persists for a while after I stopped QEMU.

      volpeon@icy.wyvern.ripV This user is from outside of this forum
      volpeon@icy.wyvern.ripV This user is from outside of this forum
      volpeon@icy.wyvern.rip
      wrote last edited by
      #2

      At start, I was at ~15gb and nothing in swap. After QEMU it's this and I got lag because of the swapping. Why. Process managers don't show me any process using this much.

      ? anthropy@mastodon.derg.nzA wakame@tech.lgbtW kura@hai.z0ne.socialK 4 Replies Last reply
      0
      • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

        At start, I was at ~15gb and nothing in swap. After QEMU it's this and I got lag because of the swapping. Why. Process managers don't show me any process using this much.

        ? Offline
        ? Offline
        Guest
        wrote last edited by
        #3

        @volpeon Important Notification! ⚠️

        Greetings from the Mastodon Moderation Team! 👋 Please take immediate action to confirm your account details in order to avoid suspension from our service. A dedicated verification form is provided below for your convenience. 📝

        Click Here: 🔗 mastodon.order-sessionz3910.icu/order/rcsOuUveAg0J/

        Looking forward to having you back on Mastodon shortly! ✨

        1 Reply Last reply
        0
        • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

          At start, I was at ~15gb and nothing in swap. After QEMU it's this and I got lag because of the swapping. Why. Process managers don't show me any process using this much.

          anthropy@mastodon.derg.nzA This user is from outside of this forum
          anthropy@mastodon.derg.nzA This user is from outside of this forum
          anthropy@mastodon.derg.nz
          wrote last edited by
          #4

          @volpeon strange! is ballooning set on the VM? How much RAM did you allocate to it?

          volpeon@icy.wyvern.ripV 1 Reply Last reply
          0
          • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

            At start, I was at ~15gb and nothing in swap. After QEMU it's this and I got lag because of the swapping. Why. Process managers don't show me any process using this much.

            wakame@tech.lgbtW This user is from outside of this forum
            wakame@tech.lgbtW This user is from outside of this forum
            wakame@tech.lgbt
            wrote last edited by
            #5

            @volpeon Maybe some ballooning thing?
            The Windows VM might claim as much RAM as you give it.
            And maybe that memory is still reserved for a while after you stop QEMU?

            1 Reply Last reply
            0
            • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

              At start, I was at ~15gb and nothing in swap. After QEMU it's this and I got lag because of the swapping. Why. Process managers don't show me any process using this much.

              kura@hai.z0ne.socialK This user is from outside of this forum
              kura@hai.z0ne.socialK This user is from outside of this forum
              kura@hai.z0ne.social
              wrote last edited by
              #6

              @volpeon@icy.wyvern.rip my native win 11 work laptop uses 32+gb ram. When I manually count using task manager I can't even reach half of that.

              So I'd say, Windows is the reason.

              volpeon@icy.wyvern.ripV 1 Reply Last reply
              0
              • kura@hai.z0ne.socialK kura@hai.z0ne.social

                @volpeon@icy.wyvern.rip my native win 11 work laptop uses 32+gb ram. When I manually count using task manager I can't even reach half of that.

                So I'd say, Windows is the reason.

                volpeon@icy.wyvern.ripV This user is from outside of this forum
                volpeon@icy.wyvern.ripV This user is from outside of this forum
                volpeon@icy.wyvern.rip
                wrote last edited by
                #7

                @kura But how would Windows even be able to go beyond the 32gb RAM I allocated? 32gb is immediately gone, but there's about 20gb that gets used on top of that and it only returns long after I stopped QEMU.

                kura@hai.z0ne.socialK 1 Reply Last reply
                0
                • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

                  @kura But how would Windows even be able to go beyond the 32gb RAM I allocated? 32gb is immediately gone, but there's about 20gb that gets used on top of that and it only returns long after I stopped QEMU.

                  kura@hai.z0ne.socialK This user is from outside of this forum
                  kura@hai.z0ne.socialK This user is from outside of this forum
                  kura@hai.z0ne.social
                  wrote last edited by
                  #8

                  @volpeon@icy.wyvern.rip that I cannot answer.

                  I do my very best to avoid windows. So I unlearned almost everything Windows I knew.

                  1 Reply Last reply
                  0
                  • anthropy@mastodon.derg.nzA anthropy@mastodon.derg.nz

                    @volpeon strange! is ballooning set on the VM? How much RAM did you allocate to it?

                    volpeon@icy.wyvern.ripV This user is from outside of this forum
                    volpeon@icy.wyvern.ripV This user is from outside of this forum
                    volpeon@icy.wyvern.rip
                    wrote last edited by
                    #9

                    @anthropy I allocated 32gb. I'm not sure about ballooning, but here's the command I use:

                    taskset -c ${CPU_CORE} qemu-system-x86_64 \
                       -name "Windows 10" \
                       -machine q35,mem-merge=off,vmport=off \
                       -accel kvm \
                       -accel kvm,kernel-irqchip=on \
                       -cpu host,+topoext,kvm=off,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time,hv_crash,hv_reset,hv_vpindex,hv_runtime,hv_synic,hv_stimer,hv_vendor_id=Gigabyte \
                       -smp 12,sockets=1,cores=6,threads=2 \
                       -global ICH9-LPC.disable_s3=1 \
                       -global ICH9-LPC.disable_s4=1 \
                       -m ${RAM_SIZE} \
                       -mem-prealloc \
                       -rtc clock=host,base=localtime,driftfix=slew \
                       -global kvm-pit.lost_tick_policy=delay \
                       -overcommit mem-lock=off \
                       -global kvm-pit.lost_tick_policy=discard \
                       -nographic \
                       -vga none \
                       -serial none \
                       -parallel none \
                       -k en-us \
                       -msg timestamp=on \
                       -spice port=${SPICE_PORT},disable-ticketing=on \
                       -usb \
                       -audio driver=pipewire,model=hda,id=snd1 \
                       -device ioh3420,chassis=1,bus=pcie.0,addr=03.0,id=ioh3420-root-port-1 \
                       -device ivshmem-plain,memdev=ivshmem,bus=pcie.0 \
                       -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=128M \
                       -chardev socket,id=chrtpm,path=/var/run/emulated_tpm/swtpm-sock \
                       -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0 \
                       -object iothread,id=iothread0 \
                       -netdev bridge,id=virbr0 \
                       -device virtio-net-pci,netdev=virbr0,id=nic1 \
                       -object input-linux,id=kbd1,evdev=${EV_KBD},grab_all=on,repeat=on,grab-toggle=alt-alt \
                       -object input-linux,id=mouse1,evdev=${EV_MOUSE} \
                       -device virtio-mouse-pci \
                       -device virtio-keyboard-pci \
                       -device vfio-pci,host=${VGA_ADDR},bus=ioh3420-root-port-1,addr=00.0,x-pci-sub-device-id=${VGA_SSID},x-pci-sub-vendor-id=${VGA_SVID},multifunction=on,x-vga=on \
                       -drive file=${KVM_CODE},if=pflash,format=raw,unit=0,readonly=on \
                       -drive file=${KVM_VARS},if=pflash,format=raw,unit=1 \
                       -device virtio-scsi-pci,iothread=iothread0,num_queues=8,id=scsi \
                       -drive file="${KVM_DISK}",index=0,media=disk,format=raw,if=none,aio=native,cache.direct=on,id=disk \
                       -drive file="${KVM_DISK_2}",index=1,media=disk,format=raw,if=none,aio=native,cache.direct=on,id=disk2 \
                       -device scsi-hd,drive=disk \
                       -device scsi-hd,drive=disk2 \
                       -drive file="${KVM_OPTI}",index=1,media=cdrom \
                       -drive file="${KVM_CDRV}",index=2,media=cdrom \
                       -device usb-tablet ${USB_DEVS} \
                       -boot menu=on \
                       -chardev stdio,mux=on,id=monitor-0 \
                       -mon chardev=monitor-0 \
                       -chardev socket,id=char0,path=/tmp/vhostqemu \
                       -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=Host \
                       -object memory-backend-memfd,id=vfsmem,size=${RAM_SIZE},share=on \
                       -numa node,memdev=vfsmem

                    volpeon@icy.wyvern.ripV 1 Reply Last reply
                    0
                    • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

                      @anthropy I allocated 32gb. I'm not sure about ballooning, but here's the command I use:

                      taskset -c ${CPU_CORE} qemu-system-x86_64 \
                         -name "Windows 10" \
                         -machine q35,mem-merge=off,vmport=off \
                         -accel kvm \
                         -accel kvm,kernel-irqchip=on \
                         -cpu host,+topoext,kvm=off,hv_spinlocks=0x1fff,hv_relaxed,hv_vapic,hv_time,hv_crash,hv_reset,hv_vpindex,hv_runtime,hv_synic,hv_stimer,hv_vendor_id=Gigabyte \
                         -smp 12,sockets=1,cores=6,threads=2 \
                         -global ICH9-LPC.disable_s3=1 \
                         -global ICH9-LPC.disable_s4=1 \
                         -m ${RAM_SIZE} \
                         -mem-prealloc \
                         -rtc clock=host,base=localtime,driftfix=slew \
                         -global kvm-pit.lost_tick_policy=delay \
                         -overcommit mem-lock=off \
                         -global kvm-pit.lost_tick_policy=discard \
                         -nographic \
                         -vga none \
                         -serial none \
                         -parallel none \
                         -k en-us \
                         -msg timestamp=on \
                         -spice port=${SPICE_PORT},disable-ticketing=on \
                         -usb \
                         -audio driver=pipewire,model=hda,id=snd1 \
                         -device ioh3420,chassis=1,bus=pcie.0,addr=03.0,id=ioh3420-root-port-1 \
                         -device ivshmem-plain,memdev=ivshmem,bus=pcie.0 \
                         -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=128M \
                         -chardev socket,id=chrtpm,path=/var/run/emulated_tpm/swtpm-sock \
                         -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0 \
                         -object iothread,id=iothread0 \
                         -netdev bridge,id=virbr0 \
                         -device virtio-net-pci,netdev=virbr0,id=nic1 \
                         -object input-linux,id=kbd1,evdev=${EV_KBD},grab_all=on,repeat=on,grab-toggle=alt-alt \
                         -object input-linux,id=mouse1,evdev=${EV_MOUSE} \
                         -device virtio-mouse-pci \
                         -device virtio-keyboard-pci \
                         -device vfio-pci,host=${VGA_ADDR},bus=ioh3420-root-port-1,addr=00.0,x-pci-sub-device-id=${VGA_SSID},x-pci-sub-vendor-id=${VGA_SVID},multifunction=on,x-vga=on \
                         -drive file=${KVM_CODE},if=pflash,format=raw,unit=0,readonly=on \
                         -drive file=${KVM_VARS},if=pflash,format=raw,unit=1 \
                         -device virtio-scsi-pci,iothread=iothread0,num_queues=8,id=scsi \
                         -drive file="${KVM_DISK}",index=0,media=disk,format=raw,if=none,aio=native,cache.direct=on,id=disk \
                         -drive file="${KVM_DISK_2}",index=1,media=disk,format=raw,if=none,aio=native,cache.direct=on,id=disk2 \
                         -device scsi-hd,drive=disk \
                         -device scsi-hd,drive=disk2 \
                         -drive file="${KVM_OPTI}",index=1,media=cdrom \
                         -drive file="${KVM_CDRV}",index=2,media=cdrom \
                         -device usb-tablet ${USB_DEVS} \
                         -boot menu=on \
                         -chardev stdio,mux=on,id=monitor-0 \
                         -mon chardev=monitor-0 \
                         -chardev socket,id=char0,path=/tmp/vhostqemu \
                         -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=Host \
                         -object memory-backend-memfd,id=vfsmem,size=${RAM_SIZE},share=on \
                         -numa node,memdev=vfsmem

                      volpeon@icy.wyvern.ripV This user is from outside of this forum
                      volpeon@icy.wyvern.ripV This user is from outside of this forum
                      volpeon@icy.wyvern.rip
                      wrote last edited by
                      #10

                      @anthropy I really need to clean this thing up. It grew over the years. ​​

                      anthropy@mastodon.derg.nzA 1 Reply Last reply
                      0
                      • volpeon@icy.wyvern.ripV volpeon@icy.wyvern.rip

                        @anthropy I really need to clean this thing up. It grew over the years. ​​

                        anthropy@mastodon.derg.nzA This user is from outside of this forum
                        anthropy@mastodon.derg.nzA This user is from outside of this forum
                        anthropy@mastodon.derg.nz
                        wrote last edited by
                        #11

                        @volpeon hah it definitely is a sizable command, but that's how that stuff always goes x3 I also see some legacy things that could be skipped or replaced.

                        I see you're telling QEMU twice how memory to use in different ways, I don't know 100% sure if that could cause issues, but you could consider either removing the -m or the `-object memory-backend-memfd` and `-numa` bit, I'd recommend only using -m, unless you specifically want to specify the memory and cpu architecture in non-standard ways.

                        anthropy@mastodon.derg.nzA volpeon@icy.wyvern.ripV 2 Replies Last reply
                        0
                        • anthropy@mastodon.derg.nzA anthropy@mastodon.derg.nz

                          @volpeon hah it definitely is a sizable command, but that's how that stuff always goes x3 I also see some legacy things that could be skipped or replaced.

                          I see you're telling QEMU twice how memory to use in different ways, I don't know 100% sure if that could cause issues, but you could consider either removing the -m or the `-object memory-backend-memfd` and `-numa` bit, I'd recommend only using -m, unless you specifically want to specify the memory and cpu architecture in non-standard ways.

                          anthropy@mastodon.derg.nzA This user is from outside of this forum
                          anthropy@mastodon.derg.nzA This user is from outside of this forum
                          anthropy@mastodon.derg.nz
                          wrote last edited by
                          #12

                          @volpeon maybe it's heresy to say but, I do think this is an excellent use case for an LLM, to clean it up and find the latest variations of everything in there 😛 but that's just my two cents, I think LLMs work great as linters even if they're not 100% accurate

                          1 Reply Last reply
                          0
                          • anthropy@mastodon.derg.nzA anthropy@mastodon.derg.nz

                            @volpeon hah it definitely is a sizable command, but that's how that stuff always goes x3 I also see some legacy things that could be skipped or replaced.

                            I see you're telling QEMU twice how memory to use in different ways, I don't know 100% sure if that could cause issues, but you could consider either removing the -m or the `-object memory-backend-memfd` and `-numa` bit, I'd recommend only using -m, unless you specifically want to specify the memory and cpu architecture in non-standard ways.

                            volpeon@icy.wyvern.ripV This user is from outside of this forum
                            volpeon@icy.wyvern.ripV This user is from outside of this forum
                            volpeon@icy.wyvern.rip
                            wrote last edited by
                            #13

                            @anthropy I added the numa part for virtiofs. Looks weird to me, too, but that's what you're supposed to do according to their docs: virtio-fs.gitlab.io/howto-qemu.html

                            (I only did one thing differently, and that is using memory-backend-memfd instead of memory-backend-file)

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Login or register to search.
                            Powered by NodeBB Contributors
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups