Skip to content

Instantly share code, notes, and snippets.

View neurodrone's full-sized avatar
🌩️
Powering the cloud!

Vaibhav Bhembre neurodrone

🌩️
Powering the cloud!
View GitHub Profile
@v-fox
v-fox / NVMe_tweaks.md
Last active March 14, 2026 09:45
Linux kernel optimizations for NVMe

By default Linux distros are unoptimized in terms of I/O latency. So, here are some tips to improve that.

Most apps still don't do multi-threaded I/O access, so it's a thread-per-app which makes per-app speed always bottlenecked by single-core CPU performance (that's not even accounting for stuttering on contention between multiple processes), so even with NVMe capable of 3-6 GB/s of linear read you may get only 1-2 GB/s with ideal settings and 50-150/100-400 MB/s of un/buffered random read (what apps actually use in real life) is the best you can hope for.

All writes are heavily buffered on 3 layers (OS' RAM cache, device's RAM cache, device's SLC-like on-NAND cache), so it's difficult to get real or stable numbers but writes are largelly irrelevant for system's responsiveness, so they may be sacrificed for better random reads.

The performance can be checked by:

  • `fio --name=read --readonly --rw={read/randread} --ioengine=libaio --iodepth={jobs_per_each_worker's_command} --bs={4k/2M} --direct={0/1} --num
@psifertex
psifertex / public-slack.md
Last active September 22, 2020 20:36
Notes on running a "public" slack

My recommended settings for setting up a slack that you plan to allow public access to. Methods for adding public users include third-party utilities like slackin (https://github.com/emedvedev/slackin-extended) which enable active user badges, or simpler methods such as using the Share Invite Link from slack itself.

SUPER IMPORTANT

If you only do two things, make it these two: Make sure to disable all app integrations. There's a bunch that aren't secure for public slacks. Either deny all, or require review by an admin: https://YOURSLACK.slack.com/apps/manage/permissions Second, disable email in the profile view: https://binaryninja.slack.com/admin/settings#display_email_addresses

The reset are optional settings that may or may not be required depending on the slack:

@jimangel
jimangel / readme.md
Last active April 17, 2021 14:47
Examples of how to test the impact of the v1.16 API deprecations

Kubernetes v1.16 API deprecation testing

Examples of how to test the impact of the v1.16 API deprecations and ways to debug early!

If this is the first time you're hearing of these deprecations STOP and read this blog post (thanks @vllry!).

Common misunderstandings

  1. The exact apiVersion: value that I use in my manifest is stored on disk (etcd).
groups:
- name: datetime
rules:
- record: daily_saving_time_belgium
expr: |
(vector(0) and (month() < 3 or month() > 10))
or
(vector(1) and (month() > 3 and month() < 10))
or
(
@drakonstein
drakonstein / pg_subfolder_splitting.sh
Last active May 28, 2019 17:54
Split Ceph Filestore OSDs offline
#!/bin/bash
merge_num=-2
split_num=16
while [[ "$(ceph health)" != "HEALTH_OK" ]]; do
sleep 10
done
# Some method to set your ceph.conf file to the subfolder splitting settings you want.
anonymous
anonymous / mpa.py
Created February 3, 2017 17:27
Simulation of the CRUSH Multi Pick Anomaly
#!/usr/bin/env python
import random
from math import sqrt, log, pow
NPGS = 100000 # num PGs
R = 3 # num replicas
# OSDs: (id, weight)
# TODO: everything below is hard coded for exactly 4 OSDs
@alram
alram / crush_data_movement_calculator.py
Last active October 26, 2020 12:57
Calculate how much data will move before applying a CRUSHmap change
#!/usr/bin/env python
import ast
import json
import os
import subprocess
import argparse
import sys
FNULL = open(os.devnull, 'w')
@robbat2
robbat2 / CEPH-STATICSITES-HOWTO.md
Last active April 14, 2025 08:57
Ceph staticsites config RGW static website serving & SNI

Ceph StaticSites Configuration, with HAProxy & SNI

An instructional document by Robin H Johnson robin.johnson@dreamhost.com. I wrote much of the staticsites functionality of Ceph-RGW, during during late 2015 and early 2016, based on an early prototype by Yehuda Sadeh (yehudasa). It was written for usage at Dreamhost, but developed in the open for community improvement.

It is fully functional as of Jewel v10.2.3 plus PR11280 (ceph/ceph#11280). Prior to that, neither the non-CNAME nor CNAME-to-service modes will function correctly.

These configuration files represent how to quickly set up RGW+HAProxy for staticsite serving. I've tried to make them more readable, without leaving out too many details. You are strongly recommended to run a seperate RGW instance for staticsites, on a DIFFERENT outward-faciing IP than your normal instance (and in fact, certain functionality is not supported without it).

In place of using HAProxy, you could run the second rgw instance on port 80,

This document has moved!

It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.

@logrusorgru
logrusorgru / mysql.sql
Last active May 2, 2025 05:29
SQL: uniqueness, automatic created_at, updated_at refresh + soft delete. SQLite, PostgreSQL, MySQL
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
-- mysql --
-- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
-- mysql <http://sqlfiddle.com/#!9/91afb5/2>
-- note: sqlfiddle is very stupid