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?
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.
I bet on this
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?
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.
See also: Frequently asked questions (FAQ) | Qubes OS
Fixed title from “Qubes os takes too much” to “Qubes OS takes too much RAM”
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:
- Buy decent modern hardware (mostly CPU) and 64GB of RAM.
- Use GNU/Linux or other OS instead.
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 , and it only works in one running qube at a time.
Well. VMs , running by default are sys firewall, sys net and sys usb , right?
Qubes os has two networks by default to connect VMS to them, right ?
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)
So sys net doesn’t run by default?
So sys usb and sys firewall take the memory?
Sys net isn’t used by default or it is?
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
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.