Skip to content

Instantly share code, notes, and snippets.

@giovtorres
giovtorres / slurm_core_states.py
Last active July 30, 2020 00:21
Collectd Python plugin to get Slurm's core allocation by state
#!/usr/bin/python
# vim: set ts=4 sw=4 et
"""
slurm_core_states.py - A read plugin that will dispatch the core cpu states
returned by the Slurm sinfo command.
"""
import collectd
import signal
@giovtorres
giovtorres / scontrol-show-node.py
Last active January 2, 2016 04:27
"scontrol show node" in python
#!/usr/bin/python
"""
scontrol-show-node - python equivalent to `scontrol show node`.
It also takes an optional node as an argument.
"""
import sys
from datetime import datetime
from operator import itemgetter
#!/usr/bin/python
"""
show-cluster-util
This script uses the Python SLURM bindings to get cluster utilization,
which accounts for nodes being allocated exclusively or totally allocated.
"""
import hostlist
@giovtorres
giovtorres / send-cluster-util.py
Created December 31, 2015 16:58
Push slurm cpu and memory cluster utilization to a carbon (graphite) instance for graphing
#!/usr/bin/python
# vim: set ts=4 sw=4 et
"""
send_cluster_util.py - A script that will get CPU and Memory utilization
for a SLURM cluster and submit it directly to carbon's
pickle listener port.
http://graphite.readthedocs.org/en/latest/feeding-carbon.html#the-pickle-protocol
"""
@giovtorres
giovtorres / graphite.conf
Last active December 31, 2015 21:17
Run Graphite behind uwsgi + nginx in a subpath/subdirectory/non-root path
# This is the config I used for nginx to proxy graphite via uwsgi to a non-root path.
#
# Graphite is a stubborn Django app that must reside at the DocumentRoot level
# and is not readily moved to a subpath.
#
# The following config allows you to reach the graphite composer at
# http://HOSTNAME/graphite. The graphite will redirect all URLs back at the top
# level, so the remaining locations handle those and pass them back to the
# uwsgi server.
#
@giovtorres
giovtorres / .vimrc
Created February 25, 2016 02:10
My VIM rc file
set background=dark
set number
set cursorline
set showmatch
" default
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
@giovtorres
giovtorres / __init.py__
Last active March 28, 2016 00:02
Slurm sdiag wrapped in cython
from __future__ import absolute_import
import sys
import ctypes
sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL)
from .sdiag import *
@giovtorres
giovtorres / slurm_sched_stats.py
Last active April 3, 2020 08:41
Graph Slurm's sdiag with PySlurm and Graphite
#!/usr/bin/python
# vim: set ts=4 sw=4 et
"""
slurm_sched_stats.py
A script that uses PySlurm to get the slurm scheduler statistics.
"""
import pickle
import socket
{
"id": 23,
"title": "SLURM Scheduler Statistics",
"originalTitle": "SLURM Scheduler Statistics",
"tags": [
"Slurm"
],
"style": "dark",
"timezone": "browser",
"editable": true,
@giovtorres
giovtorres / sysctl_custom.conf
Last active March 25, 2017 11:46
Custom Sysctl settings
# WARNING: know why you are changing every single sysctl option. Do not blindly change them.
# You need to understand the effects of each setting. For some settings, you may want to
# increment until errors subside, rather than increasing the values to their max values.
# References:
# https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf
# https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
# Red Hat Tuned profiles
# Adapter Queue
# Maximum number of packets taken from all interfaces in one polling cycle