Skip to main content

Python package pypi versions license

Overview

The simple library to gather CPU and memory resource limits from within OS Container bases on Linux.

Install

pip install oscontainer

Usage in code

The library can be used to acquire current limits exposed to the container or process as following:

from oscontainer import OSContainer

# Get the container instance
container = OSContainer()

# Check if current process runs inside container
if container.is_containerized():
    # Get active processors
    cpus_count = container.active_processor_count()
    
    # Get the limit of available memory for this process.
    mem_limit = container.memory_limit_in_bytes()
else:
    print("No Container support detected")

For extra metrics available see OSContainer.

Run in Docker from source code

To run library in the test container you need to build the docker image and run it as container.

Checkout the repository.

git clone git@github.com:yaricom/oscontainer.git

Build local image with oscontainer name.

cd oscontainer

docker build -f Dockerfile -t oscontainer . 

Run the image we built within container with specific CPU limits set. For details about setting container resources limits with Docker, see: Runtime options with Memory, CPUs, and GPUs.

The following command will start container and open interactive shell:

docker run -it --cpus=".5" oscontainer /bin/bash

Now, execute main.py script within shell to see resource constraints that was detected:

python main.py 

This will produce the output like following:

OSContainer:
==========================
   active processors: 1
      container type: cgroup2
--------------------------
 > MEMORY:
--------------------------
memory limit (bytes): -1
memory usage (bytes): 8413184
--------------------------
 > CPU:
--------------------------
               quota: 50000
              period: 100000
              shares: -1
         cpuset cpus: 0-2
==========================
System information:
==========================
multiprocessing.cpu_count: 3
     process cpu affinity: {0, 1, 2}
==========================

Metadata

Release files for oscontainer 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oscontainer 1.0.2
File Size Uploaded Provenance
oscontainer-1.0.2.tar.gz 16.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for oscontainer 1.0.2
File Interpreter ABI Platform
oscontainer-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 34.8 kB

Release files / oscontainer-1.0.2.tar.gz

Download URL oscontainer-1.0.2.tar.gz
Size 16.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1a728d162df678243c8fad3e46c4596edbc2cd492ca291cb26c494c775fc3c2c
BLAKE2b-256 checksum
How to use checksums
1cf1ee139eac72347231c843b1dbb749c871eabfe1853060a2329067601c39bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / oscontainer-1.0.2-py3-none-any.whl

Download URL oscontainer-1.0.2-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc28c4037583b6e30dfb1eeff43563d80e9a2706270de3fac812f5b368b291a0
BLAKE2b-256 checksum
How to use checksums
54b45b82322aafe1f38a00ebca70ce4c95d964c212a76f42739f49e289d80100
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Security for oscontainer 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page