Browse Source

Docker scripts for Floram

Ian Goldberg 1 year ago
parent
commit
61bdc29579
6 changed files with 70 additions and 0 deletions
  1. 3 0
      build-docker
  2. 35 0
      run-experiment-reads
  3. 14 0
      set-networking
  4. 8 0
      start-docker
  5. 5 0
      stop-docker
  6. 5 0
      unset-networking

+ 3 - 0
build-docker

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+docker build $* -t floram -f Dockerfile .

+ 35 - 0
run-experiment-reads

@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Get the IP addresses
+p0addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' floram_p0)
+p1addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' floram_p1)
+
+# The ORAM size
+size=26
+iters=128
+if [ "$1" != "" ]; then
+    size="$1"
+fi
+if [ "$2" != "" ]; then
+    iters="$2"
+fi
+
+items=$((1<<size))
+
+echo ===== Running floram $size $iters
+date "+===== Start %s %F %T"
+
+# Run, saving the output
+savefilep0=$$.p0.out
+savefilep1=$$.p1.out
+docker exec -w /root/floram-floram-release/build/tests floram_p0 bash -c "$FLORAM_NUMA_P0 stdbuf -o 0  ./bench_oram_read -p 3000 -s 8 -o fssl_cprg -e $items -i $iters > $savefilep0 2>&1" &
+sleep 2
+docker exec -w /root/floram-floram-release/build/tests floram_p1 bash -c "$FLORAM_NUMA_P1 stdbuf -o 0  ./bench_oram_read -c $p0addr -p 3000 -s 8 -o fssl_cprg -e $items -i $iters > $savefilep1 2>&1" &
+wait
+echo ===== P0 output
+docker exec -w /root/floram-floram-release/build/tests floram_p0 cat $savefilep0
+docker exec -w /root/floram-floram-release/build/tests floram_p0 rm -f $savefilep0
+echo ===== P1 output
+docker exec -w /root/floram-floram-release/build/tests floram_p1 cat $savefilep1
+docker exec -w /root/floram-floram-release/build/tests floram_p1 rm -f $savefilep1
+date "+===== End %s %F %T"

+ 14 - 0
set-networking

@@ -0,0 +1,14 @@
+#!/bin/bash
+
+latency=30ms
+bw=100mbit
+
+if [ "$1" != "" ]; then
+    latency="$1"
+fi
+if [ "$2" != "" ]; then
+    bw="$2"
+fi
+./unset-networking
+docker exec --privileged floram_p0 tc qdisc add dev eth0 root netem delay $latency rate $bw
+docker exec --privileged floram_p1 tc qdisc add dev eth0 root netem delay $latency rate $bw

+ 8 - 0
start-docker

@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# The SYS_NICE capability allows you to use numactl to pin processes to
+# NUMA nodes and/or individual cores
+
+docker run -d --cap-add SYS_NICE --rm --name floram_p0 -h floram_p0 -t floram
+docker run -d --cap-add SYS_NICE --rm --name floram_p1 -h floram_p1 -t floram
+echo "All dockers launched"

+ 5 - 0
stop-docker

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+docker stop floram_p0 &
+docker stop floram_p1 &
+wait

+ 5 - 0
unset-networking

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+for ctnr in floram_p1 floram_p1; do
+    docker exec --privileged $ctnr bash -c "if tc qdisc list dev eth0 | grep -q netem; then tc qdisc del dev eth0 root; fi"
+done