On Wed, Jul 03, 2019 at 09:19:17AM +0200, Michal Privoznik wrote:
If the limit for max opened files is way bigger than the default
(1024),
say 3 orders bigger then spawning a child through virCommand can be
expensive because we iterate over ALL FDs within the limit and close
them. There's no need to that since we can learn the list of opened FDs
from /proc/self/fd/.
Yeah I've seen this in docker containers in particular where the
nfiles limit is something like 2 million.
Hopefully Linux will finally get something equiv to BSD's closefrom()
syscall we can use in the future:
https://lwn.net/Articles/593778/
meanwhile relying on /proc is reasonable I guess. The extra syscalls
to read the dir should be balanced by fewer close syscalls quite
easily.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|