Skip to content

Instantly share code, notes, and snippets.

View farrokhi's full-sized avatar
🚀

Babak Farrokhi farrokhi

🚀
View GitHub Profile
@farrokhi
farrokhi / vim-headers.md
Created January 19, 2020 11:14
vim header file for text documents with proper line-breaking

Text file with hard line-breaks:

# vim:ts=4:sw=4:tw=79:wm=2

Golang source files with proper tab and spacing:

// vim:noet:noai:ts=4:sw=4
@farrokhi
farrokhi / hugepages_settings.sh
Created January 19, 2020 11:14
Calculate recommended value for HugePages/HugeTLB in Linux
#!/bin/bash
#
# hugepages_settings.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
@farrokhi
farrokhi / cleanup_memory.sh
Created January 19, 2020 11:15
Enforce dropping page cache and trigger memory page compactor for Linux MM
#!/bin/sh
set -u
NUMA_BEFORE=`numactl -H | grep free:`
SLAB_BEFORE=`grep Normal /proc/buddyinfo`
printf "Dropping page cache..."
sysctl -qw vm.drop_caches=1
echo
@farrokhi
farrokhi / ensure-ssh-agent.sh
Created January 19, 2020 11:16
Ensure ssh-agent is running and you have proper env variables set (re-use if possible)
AGENT_SCRIPT=${HOME}/load-agent.sh
while true; do
[ -r ${AGENT_SCRIPT} ] && source ${AGENT_SCRIPT}
if [ -n "$SSH_AGENT_PID" ]; then
# ensure the variable actually reflects a running ssh-agent process
ps -p $SSH_AGENT_PID | grep -q ssh-agent$ && break
fi
# SSH_AGENT_PID is either not set or has stale PID
echo "Running ssh-agent"
@farrokhi
farrokhi / cscope.md
Created January 19, 2020 11:17
Setting up cscope for a (large) C project

build/update database:

cd $PROJ_DIR
find . -path .git -path .svn -prune -o -name "*.[ch]" > cscope.files
cscope -bqk

browse code:

cscope -d
@farrokhi
farrokhi / mem_swap_linux.md
Created January 19, 2020 11:19
memory usage and swap investigation in linux
grep -A1 Normal  /proc/zoneinfo  ; echo "--"; sysctl vm.min_free_kbytes ; echo "--"; numactl -H | grep free
@farrokhi
farrokhi / freebsd-ntpd.md
Created January 19, 2020 11:18
Bind FreeBSD ntpd to given IP address

In order to avoid FreeBSD ntpd listen on wildcard interface, add following lines to /etc/ntp.conf:

interface ignore wildcard
interface listen 10.0.0.1
@farrokhi
farrokhi / freebsd-ddb.md
Last active January 19, 2020 11:22
Using FreeBSD Text Dumps

If you need to debug a panic on a remote FreeBSD system, but don't want to transfer large coredumps, and can't afford the downtime caused by KDB interrupting the boot process, a text dump may be the answer. textdump(4) is the kernel dump facility, which allows you to see the crash information in a text format. It also allows for configuration of exactly what information is captured, by scripting input as if you were at the KDB prompt on the console.

Textdump has certain requirements. First, you must be running FreeBSD 7.1 or higher, and your kernel config must include the following options.

options DDB
options KDB
options KDB_UNATTENDED
options KDB_TRACE
@farrokhi
farrokhi / go-build.md
Created January 20, 2020 13:03
Building go
@farrokhi
farrokhi / disable_dsstore.sh
Created September 17, 2020 09:18
Disable DS_Store file creation on USB disks and network shares
#!/bin/sh
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults read com.apple.desktopservices