Qubes OS takes too much RAM

Default Qubes os takes too much memory and I can’t play even a simple browser game with good framerate.
How to fix it? How to configure qubes right?

1 Like

You can lower the dom0 memory, but this could break something.
In dom0 edit /etc/default/grub and change dom0_mem=max:4096M to a lower value.
Then update GRUB in dom0 terminal:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

But maybe it’s not a problem with lack of RAM but because you don’t have GPU hardware acceleration in your qubes so the graphics are rendered using CPU. You can increase the number of VCPUs assigned to your qube in its Settings if it’s the bottleneck.

2 Likes

I bet on this :+1:

2 Likes

What??? How will it help? Won’t I have worse performance? Won’t the video of all vms be worse because of dom0 is my main machine? What about the qubes like sys-firewall? They just provide network. Maybe lower their memory?

1 Like

Dom0 is only used to manage the VMs, there is not much load in it.
All your VMs (excluding HVMs like sys-net and sys-usb) have memory balancing enabled by default and Qubes OS will use all free memory to allocate for them up to max mem set in their Settings:

If some qube will need more memory then memory manager will take the unused memory from other qubes and allocate this memory to it.

3 Likes

See also: Frequently asked questions (FAQ) | Qubes OS

Fixed title from “Qubes os takes too much” to “Qubes OS takes too much RAM”

1 Like

It’s a payment for virtualization and a lack of hardware acceleration. The second part may be changed in 5-10 years, but not soon (because it’s difficult).

Currently you have a choice:

  1. Buy decent modern hardware (mostly CPU) and 64GB of RAM.
  2. Use GNU/Linux or other OS instead.
1 Like

a third option is to use GPU passthrough but it’s a technical nightmare to setup and requires a GPU that is not used for dom0 :grin: , and it only works in one running qube at a time.

2 Likes

Well. VMs , running by default are sys firewall, sys net and sys usb , right?

1 Like

Qubes os has two networks by default to connect VMS to them, right ?

1 Like

By default, you should have this choice for a netvm:

  • sys-net (don’t use it directly)
  • sys-firewall (default)
  • sys-usb (in case you are using an usb device to connect to network)
1 Like

So sys net doesn’t run by default?

1 Like

So sys usb and sys firewall take the memory?

1 Like

Sys net isn’t used by default or it is?

1 Like

Please, gather your thoughts in a single post before sending, this is more polite and easier to process.

You can edit a previous message if you want to amend it :slight_smile:

3 Likes

Everything only AFAIK:

Sys-Net starts at startup. You can see that, by going to the settings of the qube in question and look if the “Start qube automatically on boot” is checked.
You should see this behavior for:

  • sys-net
  • sys-firewall
  • sys-usb

Sys-net is connected to your e.g. Wifi and is therefore untrusted (red). It proxies the traffic to sys-firewall. Sys-firewall is the connected to your single appvms, standalones, … It is also used for updates. And this is normally the default vm to choose for internet access to other qubes.

Sys-usb is normally only used for usb devices. If you configure it to provide internet access for other devices (e.g. because you have a usb wifi adapter) then this can also be used to supply a vm with internet connection.

Of course, every running vm takes some amount of RAM, I think those are limited each at 400 MB. Sys-net also takes memory as it also starts at default (mentioned above).

Maybe the command xentop in dom0 could interest you, as it shows load information for the managed qubes. Also, the task manager inside the qubes could give you helpful information (cpu, ram load, …)

As explained by solene please summarize your questions in a single message to receive better support.

1 Like