Skip to content

Instantly share code, notes, and snippets.

View vqiu's full-sized avatar
🌴
On vacation

shuhui.qiu vqiu

🌴
On vacation
View GitHub Profile
@vqiu
vqiu / tuning-postgres-zfs.md
Created September 5, 2022 12:47 — forked from saurabhnanda/tuning-postgres-zfs.md
Tuning Postgres + ZFS

Tuning ZFS + Postgres to outperform EXT4 + Postgres

Please refer to ZFS 2-3x slower than EXT4 to see how ZFS defaults + Postgres defaults severely underperform EXT4 defaults + Postgres defaults (and also to know more about the system on which these benchmarks were performed). This page documents how to tune ZFS + Postgres to give better performance for the tpcb-like benchmark.

BIG FAT WARNING

Please do not copy these settings blindly because I am myself not clear on why/how these settings had the impact they did. For example, I cannot explain why full_page_writes=off independently did not give that much boost, nor did an optimized PG configuration. However, putting both of them together gave a 2-4x boost compared to baseline numbers.

Benchmark results

worker_processes 2;
error_log /var/log/nginx/error.log info;
events {
worker_connections 1024;
}
http {
init_by_lua '
function split(inputstr, sep)
@vqiu
vqiu / nginx.conf
Created October 23, 2019 07:43 — forked from senderista/nginx.conf
Token bucket with upstream stats
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
lua_shared_dict token_bucket 10M;
lua_shared_dict stats 5M;
init_by_lua '
local redis_c = require "resty.redis"
local ok, new_tab = pcall(require, "table.new")
if not ok or type(new_tab) ~= "function" then
new_tab = function (narr, nrec) return {} end
end
local _M = new_tab(0, 155)
@vqiu
vqiu / named.conf
Created January 11, 2019 03:56 — forked from cpswan/named.conf
Unbound/BIND config for DNS over TLS to 1.1.1.1
options {
directory "/tmp";
listen-on-v6 { none; };
forwarders {
127.0.0.1 port 2053;
};
auth-nxdomain no; # conform to RFC1035
@vqiu
vqiu / proxy.pac
Last active November 10, 2018 19:24 — forked from alphatr/proxy.pac
PAC
function FindProxyForURL(url, host) {
var proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080; DIRECT";
var black = "PROXY 127.0.0.1:65535";
var direct = "DIRECT";
var PROXY_LIST = [
"instagram.com",
"google.com",
"facebook.com",
@vqiu
vqiu / Knocky.lua
Created October 28, 2018 13:04 — forked from agix/Knocky.lua
Nginx + redis + lua + authy script to allow access by IP with one touch
-- apt-get install nginx-extras # to get nginx with lua support
-- apt-get install luarocks
-- apt-get install lua-nginx-redis
-- luarocks install lua-requests
-- In your nginx config file add two lua dict outside server definition
--
-- lua_shared_dict ip_whitelist 1m;
-- lua_shared_dict ip_asklist 1m;
-- server {
--
@vqiu
vqiu / bwlimit
Created July 30, 2018 10:42 — forked from neocogent/bwlimit
Traffic shaping for Bitcoin full nodes
#!/bin/bash
# Copyright (c) 2013 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#network interface on which to limit traffic
IF="wlan0"
#limit of the network interface in question
LINKCEIL="5mbit"
#limit outbound Bitcoin protocol traffic to this rate
@vqiu
vqiu / tc_qos
Last active December 3, 2020 07:51 — forked from swshan/tc
openwrt tc
#!/usr/bin/env bash
# IDEV 内网接口,ODEV外网接口)
IDEV="eth0"
ODEV="eth1"
# 定义总的上下带宽
UP="8mbit"
DOWN="100mbit"
@vqiu
vqiu / default.ctmpl
Created June 29, 2018 10:17 — forked from mdmsua/default.ctmpl
/etc/nginx/conf.d
server {
listen 80;
{{range services}}
{{if and (ne .Name "consul") (ne .Name "nginx")}}
{{range service .Name}}
location /{{.Name}}/v{{.ID}} {
rewrite /{{.Name}}/v(\d+)\.\d+\.\d+(.*) /{{.Name}}/v$1$2 break;
proxy_pass http://{{.Address}}:{{.Port}};
}
{{end}}