Skip to main content

Shutdown your SageMaker instance when it's not active

Project description

πŸ₯Š sagemaker-knockout

Knock the SageMaker instance out when it's not active!

❓ Why?

Are you enjoying big powerful, pricey SageMaker instances to experiment with your data, but often forget to shut it down after you're done? πŸ’ΈπŸ’ΈπŸ’ΈπŸ˜³

sagemaker-knockout will knock your machine out when it's inactive! πŸ‘Ύ

βš™οΈ How does it work?

It tracks three metrics to detect the activity. If any of them report as active, machine will not shut down.

  • Jupyter connections - if Jupyter server has incoming connections opened, it means you have an open console or notebook tab (with laptop opened). We do not want to shut the machine down in that case
  • GPU usage - if you've left your laptop closed, but are running GPU intensive operations, we'll detect that (threshold is set to 5%)
  • GPU usage - if you've left your laptop closed, but are running CPU intensive operations, we'll detect that (threshold is set to 10%)

🧠 Setup

In order to make sure you don't need to remember to run this program to shut down your machine πŸ˜…, the most covenient setup is to change the SageMaker's lifecycle configuration.

Add this snippet of code to "Start notebook" script:

#!/bin/bash

# make the script fail if anything fails
set -e

# set up the language so we don't support just ASCII
export LC_ALL=en_US.utf-8
export LANG=en_US.utf-8

echo "Setting up πŸ₯Š sagemaker-knockout..."
pip3 install sagemaker-knockout
python3 -m sagemaker_knockout run --daemonize --max-inactive-minutes 60
sleep 3
python3 -m sagemaker_knockout check-daemon

As you can guess, we are running this program in the background (daemonizing) and you can change the inactivity period after which the shutdown process kicks in. Feel free to change it to any number that suits you (yes, I do like long lunch breaks πŸ”).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sagemaker-knockout, version 0.0.7
Filename, size File type Python version Upload date Hashes
Filename, size sagemaker_knockout-0.0.7-py3-none-any.whl (5.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size sagemaker-knockout-0.0.7.tar.gz (4.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page