Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tarball job on Hydra eats too much RAM #227945

Open
vcunat opened this issue Apr 24, 2023 · 2 comments
Open

tarball job on Hydra eats too much RAM #227945

vcunat opened this issue Apr 24, 2023 · 2 comments

Comments

@vcunat
Copy link
Member

vcunat commented Apr 24, 2023

Background

The tarball job (e.g. in this jobset; code) does various evaluation checks on nixpkgs by calling nix.

It's two derivations (linearized) using just single thread (maybe except nix's GC). However, some steps require huge amount of RAM, which causes practical issues, also frequently on current hydra.nixos.org.

RAM consumed now

🥇 checking eval-release.nix step is far the worst, max. around 36 GiB, as measured by time package+command.

🥈 generating packages.json step gets around 18 GiB.

Others use around 10 GiB or less, which seems... bearable.

Running in practice

Given enough RAM, the build takes 2x 10-15 minutes (roughly). If not, result depends on your machine. The current builders on hydra.nixos.org usually manage to keep CPUs relatively busy with other work, but jobs that "touch lots of RAM or disk" can get slowed down extremely due to (un)swapping and time out – mainly the tarball jobs themselves but not exclusively.


I believe that strict evaluation checks are nice to have, even as blocker for channels, so I'd prefer to preserve at least similar level of strictness.

@vcunat
Copy link
Member Author

vcunat commented Apr 24, 2023

For a stop-gap workaround I'd probably mark these two steps with big-parallel tag, which should bring back reliability at the expense of some idle CPUs.

These machines run 2 jobs only and have 64 GiB of physical RAM. (I hope we always get the same amount of RAM or larger.)

@vcunat
Copy link
Member Author

vcunat commented Apr 30, 2023

Stop-gap implemented as PR #229132

vcunat added a commit that referenced this issue May 1, 2023
The aim here is to avoid exhausting RAM of our normal machines
on hydra.nixos.org.  See #227945 for details.
github-actions bot pushed a commit that referenced this issue May 1, 2023
The aim here is to avoid exhausting RAM of our normal machines
on hydra.nixos.org.  See #227945 for details.

(cherry picked from commit e471f69)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant