Last active
March 8, 2021 16:49
-
-
Save paralin/c5dcafad3a7ece340ffd8e8166e84bdc to your computer and use it in GitHub Desktop.
Benchmark used for SkiffOS report
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -eo pipefail | |
| set -x | |
| MTPT=$(pwd)/bench-mtpt | |
| if [ ! -d $MTPT ]; then | |
| mkdir $MTPT | |
| fi | |
| if mountpoint -q $MTPT; then | |
| sudo umount $MTPT | |
| fi | |
| # disable swap | |
| sudo swapoff /mnt/persist/primary.swap || true | |
| sudo systemctl stop redis || true | |
| # mount ramdisk | |
| sudo mount -t tmpfs -o size=1024M tmpfs $MTPT | |
| sudo chown -R $(whoami) $MTPT | |
| # unmount on shutdown | |
| REDISPID="" | |
| PGPID="" | |
| function cleanup { | |
| set +e | |
| cd .. | |
| kill ${REDISPID} || true | |
| kill ${PGPID} || true | |
| sync || true | |
| sudo umount $MTPT | |
| sleep 1 | |
| sudo umount $MTPT | |
| sleep 1 | |
| rmdir $MTPT | |
| } | |
| trap cleanup EXIT | |
| STRESS_TMP=$MTPT/stress-tmp | |
| mkdir -p ${STRESS_TMP} | |
| pushd ${STRESS_TMP} | |
| echo "7zip" | |
| P7ZIP=/usr/bin/7zr | |
| if [ ! -f $P7ZIP ]; then | |
| P7ZIP=7z | |
| fi | |
| $P7ZIP b | |
| echo "Cooldown" | |
| sleep 18 | |
| echo "aes256" | |
| openssl speed -evp aes-256-cbc -bytes 8192 | |
| echo "Cooldown" | |
| sleep 18 | |
| echo "Postgres init" | |
| PGDATA=$MTPT/pg-data | |
| PGRUN=$MTPT/pg-run | |
| DATA_DIR=$PGDATA | |
| PATH=$PATH:/usr/lib/postgresql/12/bin | |
| initdb -U $(whoami) -D $PGDATA | |
| echo "Running postgres" | |
| mkdir -p $PGRUN | |
| postgres -D $PGDATA --unix_socket_directories=$PGRUN & | |
| PGPID=$! | |
| sleep 4 | |
| echo "Postgres pgbench init" | |
| PGTMP=$MTPT/pg-tmp | |
| mkdir -p $PGTMP | |
| pushd $PGTMP | |
| createdb --host=$PGRUN | |
| sleep 1 | |
| pgbench --host=$PGRUN -i -s20 || true | |
| echo "Cooldown..." | |
| sleep 20 | |
| echo "Postgres pgbench test" | |
| pgbench --host=$PGRUN -M extended -t2000 -c$(nproc) -j$(nproc) || true | |
| sleep 20 | |
| echo "Postgres complete" | |
| kill -9 $PGPID | |
| popd | |
| rm -rf ${PGDATA} ${PGRUN} | |
| echo "Cooldown..." | |
| sleep 30 | |
| echo "Redis init..." | |
| mkdir -p ${PGDATA} ${PGRUN} | |
| pushd ${PGDATA} | |
| redis-server --save "" --appendonly no --unixsocket ${PGRUN}/redis.sock & | |
| REDISPID=$! | |
| sleep 5 | |
| echo "Redis benchmark..." | |
| sudo redis-benchmark -q -s ${PGRUN}/redis.sock -d 2048 -t LRANGE_500 -n 1000 | |
| kill ${REDISPID} | |
| popd | |
| sleep 5 | |
| rm -rf ${PGDATA} ${PGRUN} | |
| popd |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment