Skip to content

Instantly share code, notes, and snippets.

@wilburding
wilburding / disable_thp.service
Created July 22, 2015 02:19
clear transparent_hugepage related warnings for mongod
[Unit]
Description=disable transparent huge page
[Service]
ExecStart=/bin/sh -c 'if test -f /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; then /bin/echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; fi'
ExecStart=/bin/sh -c 'if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag; fi'
ExecStart=/bin/sh -c 'if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled; fi'
Type=oneshot
[Install]
[Unit]
Description=supervisord daemon
[Service]
Environment="PATH=/home/www/.pyenv/shims:/home/www/.pyenv/bin:/bin:/usr/bin"
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf --nodaemon -u www
Restart=always
[Install]
WantedBy=multi-user.target
@wilburding
wilburding / mongod.service
Last active August 29, 2015 14:24
mongod.service
[Unit]
Description=mongod.service
After=network.target disable_thp.service
[Service]
ExecStartPre=/usr/bin/install -d -m 0755 -o mongod -g mongod /var/run/mongodb
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --fork --pidfilepath=/var/run/mongodb/mongod.pid
ExecStop=/usr/bin/kill -TERM $MAINPID
Type=forking
PIDFile=/var/run/mongodb/mongod.pid
@wilburding
wilburding / ip_to_location.py
Last active December 21, 2015 08:29
Python写的读取纯真IP地址数据库脚本,提供简单的查询功能
#!/usr/bin/env python
#fileencoding=utf-8
import struct
import socket
class Node(object):
__slots__ = ('ip', 'country', 'district')
@wilburding
wilburding / tmux.conf
Last active July 4, 2018 02:37
my tmux conf(adapted from XuTao's)
# author: XuTao <butbueatiful@gmail.com>
# time: Sun Jul 15 21:57:17 CST 2012
# Usage: mv tmux_conf.txt ~/.tmux.conf
#------------------------------------------
#-- base --#
set -g default-terminal "xterm-256color"
#set -g default-terminal "xterm"
set -g display-time 3000
set -g history-limit 65535
@wilburding
wilburding / jinja_template.py
Last active December 17, 2015 19:19
a simple jinja template integretion to tornado
#!/usr/bin/env python
#fileencoding=utf-8
from jinja2 import Environment
from jinja2 import FileSystemLoader
import datetime
def guess_autoescape(template_name):
@wilburding
wilburding / shared_ptr.cpp
Created April 17, 2013 13:14
toy shared_ptr
#include <iostream>
#include <vector>
#include <string>
#include <mutex>
#include <future>
#include <chrono>
#include <random>
#include <utility>
#include <assert.h>
@wilburding
wilburding / tagged_pointer.cpp
Created April 5, 2013 14:06
tagged pointer for lockfree algorithm(64bit assumed)
template<class T>
class TaggedPointer
{
public:
explicit TaggedPointer(T* ptr = nullptr)
:ptr_(ptr),
counter_(0)
{}
inline T* load_ptr() noexcept
@wilburding
wilburding / timeit.cpp
Created April 5, 2013 12:19
time any callable
template<class F, class ...Args>
void timeit(uint32_t repeat, F&& f, Args&&... args)
{
auto begin_time = chrono::high_resolution_clock::now();
for(uint32_t i = 0; i < repeat; ++i)
f(forward<Args>(args)...);
auto end_time = chrono::high_resolution_clock::now();
printf("total time: %lldus\n", chrono::duration_cast<chrono::microseconds>(end_time - begin_time).count());
printf("average time: %lldns\n", chrono::duration_cast<chrono::nanoseconds>(end_time - begin_time).count() / repeat);
#include <iostream>
#include <vector>
#include <string>
#include <mutex>
#include <future>
#include <chrono>
#include <random>
#include <utility>
#include <assert.h>