111 lines
3.0 KiB
Bash
Executable File
111 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
PGHOME=/var/lib/pgsql
|
|
PGUSER=postgres
|
|
PGPATH=/usr/pgsql-15/bin
|
|
PGLIBPATH=/usr/pgsql-15/lib
|
|
|
|
export PGDATA=$PGHOME/15/data
|
|
export PATH=$PGPATH:$PATH
|
|
export LD_LIBRARY_PATH=$PGLIBPATH:$LD_LIBRARY_PATH
|
|
export BMSQL_HOME=./benchmarksql-5.0/run/
|
|
|
|
function runTPCC()
|
|
{
|
|
|
|
[[ -f $LOGDIR ]] && mv $LOGDIR $LOGDIR_bak
|
|
mkdir -p $LOGDIR
|
|
|
|
genConf $1
|
|
time_str=$(date "+%Y%m%d%H%M%S")
|
|
|
|
logfile=$LOGDIR/test.$1.out.$time_str
|
|
echo "runDatabaseDestroy..."
|
|
#numactl --interleave=all bash ./runDatabaseDestroy.sh props.vb > $logfile
|
|
bash ./runDatabaseDestroy.sh props.vb > $logfile
|
|
sleep 10
|
|
|
|
echo "Stop Database..."
|
|
su - $PGUSER -c "$PGPATH/pg_ctl stop -D $PGDATA" >> $logfile
|
|
sleep 20
|
|
|
|
echo 3 > /proc/sys/vm/drop_caches
|
|
sleep 30
|
|
|
|
echo "Start Database..."
|
|
#su - $PGUSER -c "numactl --interleave=all pg_ctl start" >> $logfile
|
|
su - $PGUSER -c "$PGPATH/pg_ctl start -D $PGDATA" >> $logfile
|
|
|
|
sleep 30
|
|
echo "runDatabaseBuild..."
|
|
bash ./runDatabaseBuild.sh props.vb >> $logfile
|
|
su - $PGUSER -c "$PGPATH/psql postgres -Upostgres -c \"checkpoint;\""
|
|
|
|
sleep 180
|
|
echo "runBenchmark..."
|
|
bash ./runBenchmark.sh props.vb >> $logfile
|
|
}
|
|
|
|
function genConf()
|
|
{
|
|
echo "db=postgres" > props.vb
|
|
echo "driver=org.postgresql.Driver" >> props.vb
|
|
echo "conn=jdbc:postgresql://localhost:5432/benchmark?ApplicationName=benchmark&prepareThreshold=1&batchMode=on&fetchsize=10" >> props.vb
|
|
echo "user=benchmark" >> props.vb
|
|
echo "password=123456" >> props.vb
|
|
echo "warehouses=100" >> props.vb
|
|
echo "loadWorkers=${cpuCount}" >> props.vb
|
|
echo "terminals=$1" >> props.vb
|
|
echo "runTxnsPerTerminal=0" >> props.vb
|
|
echo "runMins=5" >> props.vb
|
|
echo "limitTxnsPerMin=0" >> props.vb
|
|
echo "terminalWarehouseFixed=false" >> props.vb
|
|
echo "newOrderWeight=45" >> props.vb
|
|
echo "paymentWeight=43" >> props.vb
|
|
echo "orderStatusWeight=4" >> props.vb
|
|
echo "deliveryWeight=4" >> props.vb
|
|
echo "stockLevelWeight=4" >> props.vb
|
|
}
|
|
|
|
# 默认数据集是100仓
|
|
# 测试 100, 300, 500 并发
|
|
function RunAll()
|
|
{
|
|
runTPCC 100
|
|
runTPCC 300
|
|
runTPCC 500
|
|
}
|
|
|
|
cpuCount=$(cat /proc/cpuinfo | grep processor | wc -l)
|
|
cd $BMSQL_HOME
|
|
|
|
# 磁盘测试
|
|
cp -f sql.common/tableCreates.sql.bak sql.common/tableCreates.sql
|
|
LOGDIR=log/disk_log
|
|
RunAll
|
|
|
|
# unlog 表测试
|
|
#cp -f sql.common/tableCreates.sql.unlog sql.common/tableCreates.sql
|
|
#LOGDIR=log/disk_unlog
|
|
#RunAll
|
|
|
|
# 内存盘测试
|
|
#su - $PGUSER -c "$PGPATH/pg_ctl stop -D $PGDATA" >> $logfile
|
|
|
|
#sleep 10
|
|
#echo 3 > /proc/sys/vm/drop_caches
|
|
#sleep 10
|
|
|
|
#su - $PGUSER -c "mv $PGDATA /dev/shm/; ln -s /dev/shm/data $PGDATA"
|
|
#su - $PGUSER -c "$PGPATH/pg_ctl start -D $PGDATA" >> $logfile
|
|
#cp -f sql.common/tableCreates.sql.bak sql.common/tableCreates.sql
|
|
#LOGDIR=log/mem_log
|
|
#RunAll
|
|
|
|
# 内存盘unlog测试
|
|
#cp -f sql.common/tableCreates.sql.unlog sql.common/tableCreates.sql
|
|
#LOGDIR=log/mem_unlog
|
|
#RunAll
|
|
|
|
#su - $PGUSER -c "rm -rf $PGHOME/15/data ; mv /dev/shm/data $PGHOME/15/"
|