Assume you have already deployed PD, TiKV, Prometheus and Grafana.
PD: 127.0.0.1:2379 TiKV: 127.0.0.1:20181, 127.0.0.1:20182, 127.0.0.1:20183 Prometheus: 127.0.0.1:9090 Grafana: 127.0.0.1:3000
#!/usr/bin/python | |
# | |
# memleak Trace and display outstanding allocations to detect | |
# memory leaks in user-mode processes and the kernel. | |
# | |
# USAGE: memleak [-h] [-p PID] [-t] [-a] [-o OLDER] [-c COMMAND] | |
# [--combined-only] [-s SAMPLE_RATE] [-T TOP] [-z MIN_SIZE] | |
# [-Z MAX_SIZE] [-O OBJ] | |
# [interval] [count] | |
# |
extern crate backtrace; | |
extern crate libc; | |
use backtrace::BytesOrWideString; | |
use std::alloc::{System, GlobalAlloc, Layout}; | |
use std::sync::atomic::{AtomicUsize, Ordering::SeqCst}; | |
struct Counter; | |
static ALLOCATED: AtomicUsize = AtomicUsize::new(0); |
package main | |
import ( | |
"bufio" | |
"bytes" | |
"encoding/json" | |
"flag" | |
"fmt" | |
"io" | |
"net/http" |
ROOT=$PWD/build | |
rm -rf $ROOT | |
mkdir -p $ROOT | |
cd $ROOT | |
# Go | |
if which go >/dev/null; then | |
echo "go installed, skip" | |
else |
# TiKV root | |
dir="." | |
output="./Dockerfile" | |
if [ "$#" -eq 1 ]; then | |
output=$1 | |
fi | |
cat <<EOT > ${output} | |
FROM pingcap/rust as builder |
+--------------------+--------------------------+---------------------+--------------------------+ | |
| Workload | Operations | Record selection | Application example | | |
+--------------------+--------------------------+---------------------+--------------------------+ | |
| A — Update heavy | Read: 50%, Update: 50% | Zipfian | User Session | | |
| B — Read heavy | Read: 95%, Update: 5% | Zipfian | Photo tagging | | |
| C — Read only | Read: 100% | Zipfian | User profile cache | | |
| D — Read latest | Read: 95%, Insert: 5% | Latest | User status updates | | |
| E — Short range | Scan: 95%, Insert: 5% | Zipfian / Uniform | Threaded conversations | | |
+--------------------+--------------------------+---------------------+--------------------------+ |
go run tikv-assembly.go -f "port 20160" -i lo0 | |
2018/12/29 20:17:17 Starting capture on interface "lo0" | |
2018/12/29 20:17:17 reading in packets | |
2018/12/29 20:17:26 127.0.0.1:64989 -> 127.0.0.1:20160 /tikvpb.Tikv/KvPrewrite context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > mutations:<key:"usertable:a" value:"\010\000\002\0020" > primary_lock:"usertable:a" start_version:405297128206237697 lock_ttl:3000 | |
2018/12/29 20:17:26 127.0.0.1:20160 -> 127.0.0.1:64989 /tikvpb.Tikv/KvPrewrite | |
2018/12/29 20:17:26 127.0.0.1:64995 -> 127.0.0.1:20160 /tikvpb.Tikv/KvCommit context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > start_version:405297128206237697 keys:"usertable:a" commit_version:405297128206237698 | |
2018/12/29 20:17:26 127.0.0.1:20160 -> 127.0.0.1:64995 /tikvpb.Tikv/KvCommit | |
2018/12/29 20:17:29 127.0.0.1:64999 -> 127.0.0.1:20160 /tikvpb.Tikv/KvGet context:<region_id:2 region_epoch:<conf_ver:1 version:1 > peer:<id:3 store_id:1 > > key:"usertable:a" version:4 |