Two readings the report has never carried, both on the passing path as well as the failing one, aimed at the same question: what a nested page walk costs here. A translation under nesting is up to twenty-five dependent memory references, so its cost is set by miss latency and by how the host backs the guest's memory -- not by bandwidth, which is the only memory quantity this report measures today and which reads identically on a green run and a red one (12.6-14.4 GB/s either way). Page backing rides along in the shared QEMU thread probe rather than arriving as a collector of its own, because that walk already has each process open and its ceiling already paid; a separate reader would cost another bounded call per process and the phase budget guard prices those. It reports AnonHugePages against Rss per QEMU process, plus the machine-wide policy and totals. QEMU allocates lazily, so whether a guest gets 2 MiB pages or 4 KiB ones is settled as it touches memory -- minutes into a job, on a host that has been churning containers and image imports -- and with defrag at `madvise`, which is what the sandbox image reports, plain anonymous memory gets huge pages only when they are already there. A guest on 4 KiB pages walks a longer table and covers far less per TLB entry, which is the difference this reading exists to show. The cache arm is the latency counterpart to the memory arm's bandwidth: same DRAM, but a dependent walk over a working set larger than last-level cache, in an order no prefetcher can follow. Measured at 1.14M reads a second in the sandbox image, and it detects the effect it is for -- the same walk over an L2-resident array runs 12.6x faster, so this arm is dominated by miss latency rather than by mawk. The walk order is a congruential step rather than a fixed stride deliberately: a fixed stride is what a hardware prefetcher is built to follow, and it would report bandwidth wearing a latency label. Both are pinned by tests, along with the slot count, since the arm only exceeds cache while the array is that large. The ceiling drops 20s to 18s, and that is arithmetic rather than taste. The phase budget guard prices this collector at one ceiling per arm, and four arms at 20s put the collectors gated ahead of the serial console at 485s against a 480s budget; at 18s they come to 477s. Every floor still crosses inside it -- compute 10.0s, cache 10.0s, disk 13.7s, memory 16.4s. Putting the ceiling back to 20 now fails that guard rather than silently overspending, which is checked. Assisted-By: Claude <noreply@anthropic.com> Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
Cozystack
Cozystack is a free platform and framework for building clouds.
Cozystack is a CNCF Sandbox Level Project that was originally built and sponsored by Ænix.
With Cozystack, you can transform a bunch of servers into an intelligent system with a simple REST API for spawning Kubernetes clusters, Database-as-a-Service, virtual machines, load balancers, HTTP caching services, and other services with ease.
Use Cozystack to build your own cloud or provide a cost-effective development environment.
Use-Cases
-
Using Cozystack to build a public cloud
You can use Cozystack as a backend for a public cloud -
Using Cozystack to build a private cloud
You can use Cozystack as a platform to build a private cloud powered by Infrastructure-as-Code approach -
Using Cozystack as a Kubernetes distribution
You can use Cozystack as a Kubernetes distribution for Bare Metal
Documentation
The documentation is located on the cozystack.io website.
Read the Getting Started section for a quick start.
If you encounter any difficulties, start with the troubleshooting guide and work your way through the process that we've outlined.
Versioning
Versioning adheres to the Semantic Versioning principles.
A full list of the available releases is available in the GitHub repository's Release section.
Contributions
Contributions are highly appreciated and very welcomed!
In case of bugs, please check if the issue has already been opened by checking the GitHub Issues section. If it isn't, you can open a new one. A detailed report will help us replicate it, assess it, and work on a fix.
You can express your intention to on the fix on your own. Commits are used to generate the changelog, and their author will be referenced in it.
If you have a concrete feature request, open an issue. For a cross-cutting or architectural change, open a design proposal in the community repo. For questions or early ideas, use GitHub Discussions. See CONTRIBUTING.md for the full routing.
Community
You are welcome to join our Telegram group and come to our weekly community meetings. Add them to your Google Calendar or iCal for convenience.
License
Cozystack is licensed under Apache 2.0.
The code is provided as-is with no warranties.
Commercial Support
A list of companies providing commercial support for this project can be found on official site.
