Here’s an interesting Chrome OS change coming up considering that I now use a Chromebook with 16 GB of RAM: A new code commit will change how memory is allocated to the Linux environment on Chromebooks with more than 4 GB of RAM. Those devices will see more memory provided to the Linux container…. a lot more, as it stands now.
The code commit description says it all and I was surprised to see that if you have more than 4 GB of memory in your Chromebook, all but 1 GB of it will go towards Linux.
I understand the specific reason noted above that would require this memory allocation change. But it seems a bit excessive when it comes to running Linux on a Chromebook with more than 4 GB of memory. Or rather, it seems like leaving just a single GB of RAM to run Chrome OS on such a device feels too limiting.
What I’d prefer to see (if anyone on the Chromium team cares about my opinion!) is a memory allocation slider in the Linux settings within Chrome OS. This way, I could choose to allocate, for example, 4 GB of memory to Chrome OS and 12 GB to the Linux container on my Acer Chromebook Spin 13 with 16 GB of memory, prior to starting up a new Linux container.
I suppose if you’re coding in Linux, you could just open up the Chromium browser, rather than use Chrome OS to read and search for development documentation.
Even so, the idea for Project Crostini as I understand it is to provide access to Linux apps within the Chrome OS platform, as in using both software platforms simultaneously. Leaving Chrome OS with a single GB of RAM, in this case, feels like it could be a bit detrimental when it comes to performance.
There’s no associated bug to file feedback on this feature change, so until there is one, there’s no way to let the Chromium team how you may feel about this. But I’m sure you’ll sound off in the comments here!
As far as timing, without an associated bug, it’s difficult to say when this change will go live on the Stable Channel. Given that the feature freeze for Chrome OS 79 passed on October 4, my educated guess is that this will be a Chrome OS 80 deliverable. However, I’ll check and confirm when the next version or two of the Stable Channel arrives.
6 thoughts on “Chrome OS update will allow higher-end Chromebooks to use more memory for Linux”
It limits crostini to not exceed 15GiB of RAM.
Chrome has 1GiB reserved but can of course take more if it needs.
Android Studio and Gradle are both memory hogs and despite alot of very good work by the AS team on projetc Marble, AS still has plenty of mem leaks. With the Release yesterday of AS v4 canary, looks like they have up’ed the recommended Mmx for the gradle daemon up to 6GB!
Kevin if you work on average size commerical android app dev projects, its not uncommon to have AS+gradle daemon taking up 10GB or more by end of the day…
Also from yest Android Dev summit, looks like Jetpack Compose is the future of “Modern Android Development” and given SwiftUI and sucess of Flutter thats not surprising, hopefully they are teaching you declarative reactive UI dev in your course…
Here is the Chromium bug that tracks the issue: https://bugs.chromium.org/p/chromium/issues/detail?id=1015551&can=2&q=crostini%20swap%20memory
That’s not how memory allocation is being done with Crostini. KVM has a feature that allows for dynamic memory pools. The VM will only use up to the limit given, not hoard the whole amount. 1GB is enough to maintain system stability, which is what they’re mainly concerned with. If you’re doing intensive stuff in Crostini, logic dictates that you aren’t doing as much in CrOS at that time.
Since it’s dynamic, it makes sense to allow for nearly all available system memory to be available to the VM, so intensive processes can run efficiently.
Maybe this doesn’t make sense to you, but you are thinking only about Web Development. Someone can install Android Studio or Visual Studio Code onto the Linux VM and then the gigabytes quickly disappear. You’ll need as much memory as possible for the Linux VM in that case. There seems to be still a problem for example with Flutter builds: https://github.com/flutter/flutter/issues/76456