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 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