-
-
Notifications
You must be signed in to change notification settings - Fork 109
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
Use of supervisord inflates the microvm size by 110MiB, which is… a lot #314
Comments
Cc: @SuperSandro2000 |
We could replace python with python3Minimal which is not really supported in nixpkgs because it is for bootstrapping and it will cause a cache bust for most of python packages. This will probably trigger more rebuilds than just supervisor because test dependencies need to be build, too and we really want to run tests that nothing is missing. I don't know any other program to manage services that is not literal a pile of shellscripts and could be used here. |
I took a very brief look at the PR which introduced supervisord (#257?) and wasn't able to understand the "why" of it being introduced (nor why the In particular in my mind systemd is a service manager that already exists in every VM and it can be run in a |
That said, it probably isn't the use of supervisord itself that's a particularly painful problem. The host will almost inevitably have python3 anyway. But the recent move of the service into the VM in #291 has made it something much more apparent. |
Normally we need to run at least 3 processes in one templating unit. To properly start and stop virtiofsd, we need to properly forward signals. Using bash job control and putting processes on the background does not work for that. This is not inside the VM but on the host and having to deploy the host for every change in any mount is also not convenient. Having it inside the microvm derivation that is run on the host makes it easier to template and avoids some templating problems. For us the change in python3 didn't really make any difference and it was already there in most VMs anyway. |
What about using https://github.com/F1bonacc1/process-compose instead of supervisord? |
I couldn't find anything in the readme or doc what happens when a signal is send to process-manager. Also this is a really desperate move to save yourself 86MB but in other deployments like most of ours this will be a net +14MB addition. Also with rewrite of the activation script on Python the gain will be nullified in the next release or the one after that. |
Recently virtiofsd has been moved to run within microvm and furthermore this is now managed by supervisord, which requires python3.
This increases the size of the VM closure by a very significant amount for a µVM:
(Yes, I'm surprised python3 is this large!)
Could there be other options for this task that aren't as size-intensive?
The text was updated successfully, but these errors were encountered: