On Tue, May 09, 2017 at 07:23:38PM +0200, pmhausen wrote: > Dear python port maintainers, > > I discovered an odd performance problem with python 3.6 on servers with > large amounts of memory. > > You can find all the details in a thread of the h...@python.org > mailinglist with subject > > "Python bug? Closing *all* file descriptors on fork() instead of only open > ones?" > > Unfortunately I cannot get at the list archives. Otherwise I would have sent > you a direct link. > > Short version: since python 3.3 (if my google-fu worked) python tries to > close all open file descriptors in the child after fork(). Since there is > no standard POSIX compliant way to do this for *open* descriptors only, > it tries to use /dev/fd on FreeBSD and if that is not available it closes > *all* descriptors (resulting in ERR#9 for the majority). On a 64 bit FreeBSD > 11 system with 128 GB of RAM the auto-tuned kern.maxfilesperproc > is between 3 and 4 million. That's a heck of a lot of system calls for each > fork() ;-) > > I suggest adding a hint to mount fdescfs and add it to /etc/fstab in the > pkg-message for the affected python ports.
We have closefrom(2), which is semi-portable, in the sense that it is available not only on FreeBSD. _______________________________________________ freebsd-python@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-python To unsubscribe, send any mail to "freebsd-python-unsubscr...@freebsd.org"