oslo.service/oslo_service
Zane Bitter e753070ca2 Maintain shared memory after fork in Python >=3.7
Python 3.7 adds a gc.freeze() call that moves all currently allocated
objects to a 'permanent' garbage collector generation that is never
garbage collected:

https://docs.python.org/3.7/library/gc.html?highlight=gc#gc.freeze

By calling this prior to fork()ing off worker processes, we ensure that
existing pages will largely remain in shared memory (i.e. there will be
only one copy shared across all worker processes and the parent).
Otherwise, the mark-and-sweep action of the garbage collector causes
writes to a substantial proportion of the pages, resulting in each process
having its own copy.

This may result in some otherwise-collectable objects (i.e. objects that
are no longer reachable but that have circular references) remaining in
memory permanently; however in almost all cases it is preferable to
leave them allocated rather than free up gaps in existing pages that
workers will then allocate new objects in, again causing the pages to be
copied.

Change-Id: I0f420f171669094233fe1ca1aae60c94cd0db65c
2018-01-02 12:26:13 -05:00
..
locale/en_GB/LC_MESSAGES Imported Translations from Zanata 2017-10-09 11:03:18 +00:00
tests Revert "Permit aborting loopingcall while sleeping" 2017-12-15 08:32:24 +00:00
__init__.py Fix Heartbeats stop when time is changed 2016-03-03 21:21:02 +01:00
_i18n.py Update URLs in documents according to document migration 2017-07-12 23:28:29 +08:00
_options.py Merge "wsgi: decrease the default number of greenthreads in pool" 2016-02-24 05:30:42 +00:00
eventlet_backdoor.py Remove log translations 2017-03-23 16:04:59 +08:00
loopingcall.py Revert "Permit aborting loopingcall while sleeping" 2017-12-15 08:32:24 +00:00
periodic_task.py Merge "change periodic_task to catch all exceptions including BaseException" 2017-11-13 06:06:29 +00:00
service.py Maintain shared memory after fork in Python >=3.7 2018-01-02 12:26:13 -05:00
sslutils.py Add Bandit to tox for security static analysis 2015-12-01 16:10:15 +03:00
systemd.py Fix argument type for _sd_notify() on python3 2016-03-31 10:51:19 -06:00
threadgroup.py Remove log translations 2017-03-23 16:04:59 +08:00
version.py pbr.version.VersionInfo needs package name (oslo.xyz and not oslo_xyz) 2017-02-06 12:49:21 -05:00
wsgi.py Remove log translations 2017-03-23 16:04:59 +08:00