gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-grid5k] 57/73: improve wallet script


From: gnunet
Subject: [taler-grid5k] 57/73: improve wallet script
Date: Tue, 14 Dec 2021 15:10:39 +0100

This is an automated email from the git hooks/post-receive script.

marco-boss pushed a commit to branch master
in repository grid5k.

commit 92f2f38bdf3ec26bd2735c90603d0e6cf457c6f8
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Thu Dec 9 16:47:26 2021 +0100

    improve wallet script
---
 experiment/env                  |  4 ++
 experiment/scripts/benchmark.sh |  9 ++---
 experiment/scripts/database.sh  | 19 ++++++----
 experiment/scripts/wallet.sh    | 81 +++++++++++++++++++++++------------------
 4 files changed, 66 insertions(+), 47 deletions(-)

diff --git a/experiment/env b/experiment/env
index 2c9e7dd..096683c 100644
--- a/experiment/env
+++ b/experiment/env
@@ -76,6 +76,10 @@ NUM_EXCHANGE_PROCESSES=1
 # This setting is static, default = 1
 NUM_WIREWATTCH_PROCESSES=1
 
+TALER_WALLET_SYNC_CRYPTO=1
+TALER_WALLET_PRIMITIVE_WORKER=1
+TALER_WALLET_INSECURE_TRUST_EXCHANGE=1
+
 # If prometheus node exporter should be enabled
 # Most certainly this is true, since otherwise no overview
 # of services and running wallets can be generated in grafana.
diff --git a/experiment/scripts/benchmark.sh b/experiment/scripts/benchmark.sh
index cf1aad3..5733eac 100755
--- a/experiment/scripts/benchmark.sh
+++ b/experiment/scripts/benchmark.sh
@@ -2,11 +2,10 @@
 
 LOG_LEVEL=ERROR
 
-case $1 in
-   *logging*)
-   LOG_LEVEL=INFO
-   ;;
-esac
+# Every thenth wallet should log messages
+if ! (($1 % 10)) || [ $1 == "1" ]; then
+  LOG_LEVEL=INFO
+fi
 
 taler-wallet-cli \
     -L ${LOG_LEVEL} \
diff --git a/experiment/scripts/database.sh b/experiment/scripts/database.sh
index f0be778..c07517f 100755
--- a/experiment/scripts/database.sh
+++ b/experiment/scripts/database.sh
@@ -36,7 +36,6 @@ function setup_config() {
   SHARED_MEM=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) / 3 ))
   CACHE_SIZE=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo) * 3/4))
   NUM_CPU=$(lscpu | grep "CPU(s)" | head -n 1 | awk '{print $2}')
-  NUM_PARALLEL_WORKERS=$((${NUM_CPU} / 2))
 
   # Size for huge_pages =~ shared_buffers * 1.25 so that there is enough
   VM_PEAK=$((${SHARED_MEM} * 10/8))
@@ -72,9 +71,14 @@ function setup_config() {
   min_wal_size=4GB
   max_wal_size=8GB
   wal_buffers=16MB
+
+  # Hopefully reduce disk IO 
+  # https://www.postgresql.org/docs/12/wal-configuration.html
+  checkpoint_completion_target=0.9
+  random_page_cost=1.1
   
   max_worker_processes=${NUM_CPU}
-  max_parallel_workers=${NUM_PARALLEL_WORKERS}
+  max_parallel_workers=${NUM_CPU}
   max_connections=500
 
   max_parallel_maintenance_workers=4
@@ -85,7 +89,9 @@ function setup_config() {
   # Increase work mem to lower I/O utilization (max used =~ work_mem * 
max_connections)
   # NOTE: This formula is not completely correct 
   work_mem=256MB
-  # idle_in_transaction_session_timeout=3000
+  maintenance_work_mem=2GB
+  # 2 min
+  idle_in_transaction_session_timeout=120000
   " > /etc/postgresql/13/main/exchange.conf
 
   if ! grep -q "include = 'exchange.conf'" \
@@ -124,10 +130,9 @@ psql -tAc "SELECT 1 FROM pg_database WHERE 
datname='${DB_NAME}'" | \
   createdb -O taler-exchange-httpd "${DB_NAME}"
 EOF
 
-if [[ "$1" == "init" ]]; 
-then
-  sudo -u taler-exchange-httpd taler-exchange-dbinit
-fi
+sudo -u taler-exchange-httpd taler-exchange-dbinit -r || true
+sudo -u taler-exchange-httpd taler-exchange-dbinit -s || true
+sudo -u taler-exchange-httpd taler-exchange-dbinit
 
 su postgres << EOF
 psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='${DB_USER}'" | \
diff --git a/experiment/scripts/wallet.sh b/experiment/scripts/wallet.sh
index 9bfbe66..aa38e98 100755
--- a/experiment/scripts/wallet.sh
+++ b/experiment/scripts/wallet.sh
@@ -1,53 +1,64 @@
 #!/bin/bash
 set -eux
 
-if [[ "$1" == "init" ]];  
-then
+NUM_PROCESSES=${NUM_WALLET_PROCESSES:-10}
+
+function init_wallets() {
   source ~/scripts/helpers.sh
   restart_rsyslog
   wait_for_keys "${PROXY_DOMAIN}"
   sleep 5
+}
+
+function start_wallets() {
+  CPU_USAGE=$[100-$(vmstat 1 2 | tail -1 | awk '{print $15}')]
+  echo "CPU Usage: ${CPU_USAGE}%"
 
-  NUM_PROCESSES=${NUM_WALLET_PROCESSES:-10}
+  # count the running wallets
+  RUNNING=$(ps -aux | grep "[wallet]-cli" | wc -l)
 
-  if [ "$NUM_PROCESSES" -gt "0" ];
-  then
-    # Start one process with logging enabled
-    let "NUM_PROCESSES-=1" || true
-    systemctl restart taler-wallet@logging.service
+  if [ "${CPU_USAGE}" -gt "75" ]; then 
+    echo "Not starting any more wallets"
+    exit 1
   fi
-else
-  NUM_PROCESSES=$2
-fi
 
-# count the running wallets
-RUNNING=$(ps -aux | grep "[wallet]-cli" | wc -l)
+  for i in $(seq ${1}); do
+    let "i+=${RUNNING}"
+    systemctl restart taler-wallet@${i}.service
+    sleep 0.5
+  done
+}
+
+function stop_wallet() {
+  if [[ "$1" == "all" ]]; then
+    systemctl stop taler-wallet@*.service
+  else
+    # Get all running wallet processes,
+    # extract their number, limit by number of 
+    # wallets to stop and stop those
+    N=$(\
+      systemctl status taler-wallet@*.service | \
+      grep -E "taler-wallet@[0-9]+.service -" | \
+      sed 's/[^0-9]*//g' | \
+      sort -n -r | \
+      head -n $1 \
+    )
+    for i in ${N}; do
+      systemctl stop taler-wallet@${i}.service
+    done
+  fi
+}
 
 case "$1" in
+  init)
+    init_wallets
+    start_wallets $NUM_PROCESSES
+    ;;
   stop)
-    if [[ "${NUM_PROCESSES}" = "logging" ]]; then
-      systemctl stop taler-wallet@logging.service
-    else
-      let "START=${RUNNING}-${NUM_PROCESSES}+1"
-      for i in $(seq ${START} ${RUNNING})
-      do
-        systemctl stop taler-wallet@${i}.service
-      done
-    fi
+    stop_wallet $2
     ;;
-  start|init)
-    CPU_USAGE=$[100-$(vmstat 1 2 | tail -1 | awk '{print $15}')]
-    echo "CPU Usage: ${CPU_USAGE}%"
-    if [ "${CPU_USAGE}" -gt "75" ];
-    then 
-      echo "Not starting any more wallets"
-      exit 1
-    fi
-    for i in $(seq ${NUM_PROCESSES})
-    do
-      let "i+=${RUNNING}"
-      systemctl restart taler-wallet@${i}.service
-    done
+  start)
+    start_wallets $2
     ;;
 esac
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]