Library for running OpenStack services
Go to file
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
doc/source rearrange existing documentation to fit the new standard layout 2017-07-01 19:52:23 +09:00
oslo_service Maintain shared memory after fork in Python >=3.7 2018-01-02 12:26:13 -05:00
releasenotes Remove setting of version/release from releasenotes 2017-11-16 21:49:18 +01:00
.coveragerc Update .coveragerc after the removal of respective directory 2016-10-18 17:45:44 +05:30
.gitignore Add reno for release notes management 2016-06-30 10:02:49 +00:00
.gitreview exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
.mailmap exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
.testr.conf exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
CONTRIBUTING.rst rearrange existing documentation to fit the new standard layout 2017-07-01 19:52:23 +09:00
HACKING.rst Update URLs in documents according to document migration 2017-07-12 23:28:29 +08:00
LICENSE exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
README.rst Update URLs in documents according to document migration 2017-07-12 23:28:29 +08:00
babel.cfg exported from oslo-incubator by graduate.sh 2015-05-21 16:51:40 +03:00
requirements.txt Updated from global requirements 2017-12-19 01:39:38 +00:00
setup.cfg Update URLs in documents according to document migration 2017-07-12 23:28:29 +08:00
setup.py Updated from global requirements 2017-03-03 00:03:22 +00:00
test-requirements.txt Updated from global requirements 2017-09-16 23:22:18 +00:00
tox.ini Remove -U from pip install 2017-12-02 19:29:33 +01:00

README.rst

Team and repository tags

image

oslo.service -- Library for running OpenStack services

Latest Version

Downloads

oslo.service provides a framework for defining new long-running services using the patterns established by other OpenStack applications. It also includes utilities long-running applications might need for working with SSL or WSGI, performing periodic operations, interacting with systemd, etc.