I’m currently running Qubes R4.2.4 on a NovaCustoms v54 laptop, which has an Intel Core Ultra 7 155h processor and an Intel Arc iGPU, paired with 64GB of RAM.
I understand that QubesOS isn’t necessarily optimized for raw speed, and I’m fully aware of the trade-off between performance and privacy. That said, I’ve been experiencing some significant performance issues when browsing modern websites, particularly those with animations or heavy JavaScript. Despite allocating 16GB of RAM to the untrusted Web-Qube, the browser (Firefox) remains extremely slow—slower than what I’ve experienced on much less powerful hardware (like 8GB RAM laptops running other Linux ditros).
Here’s my thinking:
RAM: While I’ve seen users with 32GB of RAM running QubesOS quite comfortably, I’m leaning towards the idea that RAM isn’t the primary bottleneck here. I have 64GB of RAM, so it seems unlikely that more memory would resolve the issue.
iGPU Performance: Given that my laptop uses an Intel Arc iGPU, I suspect that this might be contributing to the slow browsing experience. I’ve heard that iGPUs can be less performant in virtualized environments, and I’m wondering if that’s the case here. Before I reach out to NovaCustoms or consider upgrading, I wanted to get some input from the community.
NovaCustoms does offer a couple of upgrade options for the v54:
Nvidia GeForce RTX 4060 8GB dGPU
Nvidia GeForce RTX 4070 8GB dGPU
I’m not particularly well-versed in hardware and am hoping for some guidance from the community. Would upgrading to a discrete GPU like the RTX 4060 or 4070 improve the web browsing performance, especially for web-heavy tasks like JavaScript and animations? Or could there be other optimizations within QubesOS or Firefox that I’m missing?
Oh, I should probably add that I’m running on a multiple Display setup.
I’m flexible with my options and open to any advice or recommendations.
But wouldn’t this atleast help with running the browser in a normal and not super laggy state? I don’t really care paying for the GPU, or anything other, I’m just hoping I can get this right. I could also upgrade RAM to 48GBx2 but I dont see the ram going hard in the browser vm at all, so I don’t think this is the problem.
I’m really out of ideas at this point. I can’t belive that every QubesOS user is fighting for their life each time they fire up a webbrowser.
I am running Qubes OS on an ancient Dell Xeon workstation (4 cores, 8 hardware threads) with a really old AMD graphics card. I don’t think that Firefox is particularly fast, but also not particularly slow. Two possibilities spring to mind:
A difference of expectations as to how fast the browser will be
Well I can’t say that the whole device is slow, it just seems to be affecting Webbrowsers and animations to be precise. This forum for example, works super good and very convenient, but as soon as I open a site with a few more animations, hell breaks loose.
framer.com is a good example for this. It’s not a part of what I need to access, but it’s an example for those “sites with a lot of animations” I am talking about.
I mean sure, maybe my expectations were a bit high. But I’m still curious how a 16GB Ram Qube with 12 VCPUs cannot render a simple webpage.
Absolutely not. qubes do not use the GPU at all, they do all the video rendering on the CPU which is super slow, the GPU is used by dom0 to handle the screen and show stuff, but it only show “a picture” rendered by the qube which did not use the GPU.
Thank you for that excellent explanation. I think I should either look into RAM or a better CPU then, instead of looking for GPUs. My current GPU handles the multi-display setup pretty well and doesn’t require any 3rd party drivers.
You can have a look and decide, you may understand it better than I did.
The GPU rendering doesn’t affect CPU that much. Al my guests barely even touch the CPU with video rendering or anything like that if they are using the seamless mode for the Qubes Drivers.
Once the compositor is reset it really doesn’t lag much ever at all. If the guest runs low on RAM, then everything lags in that guest though.
Continuing on the themes already mentioned, the GPU passthrough works very well, and that’s what I use for my “full function” internet qube. For everything else, disabling the compositor makes things run well enough.
My only word of caution concerns the internal plumbing of your laptop. Use of external monitors might not be possible if the passthrough GPU is also responsible for driving the system’s video output ports. You can get around this issue by adding an external GPU that connects over thunderbolt.
Could you explain this a bit more? I can’t seem to find anything online about how to optimize this.
So your browser performance has changed for the better after passing a GPU to the Qube thats running the browser? Yeah, I might need to consider getting an eGPU.
Yeah doing this in dom0 doesn’t really seem to change anything. I mean like disabling and enabling it again.
Yes, youtube became usable. Just to add, there’s a couple of ways you could configure the system when you’re using an external monitor: 1) use the egpu for virtualgl offloading and the internal dgpu for video output, or 2) use the dgpu for virtualgl offloading and the egpu for video output. The second, which I use, might be more performant, since it limits communication on the TB link to a single direction. Also, it reduces the configuration changes required when I switch from internal screen (away) to external monitors (office). If you go down the egpu route, I’d recommend Nvidia, since in my experience, the AMD driver misreads the TB link speed, unnecessarily constraining bandwidth. If you can drive your internal display with the igpu, I’d recommend trying virtualgl on your dgpu and seeing if that makes a difference. Also, is your monitor 4k?