From d2e6ded594c26119988bb48b52480667e51d41f3 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:02:01 +0000 Subject: [PATCH 01/13] print size of firewall image when generating it --- Sources/FirewallPrefabricator/Main.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sources/FirewallPrefabricator/Main.swift b/Sources/FirewallPrefabricator/Main.swift index f6eb3cc..b218f4d 100644 --- a/Sources/FirewallPrefabricator/Main.swift +++ b/Sources/FirewallPrefabricator/Main.swift @@ -4,8 +4,6 @@ import FoundationEssentials import Foundation #endif -// $ docker run --rm -it -p 8443:8443 --network=unidoc-test --memory 20m -v ~/swift:/swift -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 -w /swift/swiftinit tayloraswift/ubuntu:latest /bin/bash - import ArgumentParser import BSON import Firewalls @@ -82,6 +80,9 @@ extension Main try image.colorByClaimant(claims) let bson:BSON.Document = .init(encoding: image) + + print("Successfully built firewall image (\(bson.bytes.count / 1_000) KB)") + try Data.init(bson.bytes).write(to: URL.init(fileURLWithPath: self.output)) } } From d4142575c5402a739f74998571dde02ee2256ad7 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:02:24 +0000 Subject: [PATCH 02/13] first attempt at testing memory consumption --- .github/workflows/Benchmark.yml | 55 +++++++++++++++++++++++++++++++++ Benchmarks/Memory/Dockerfile | 2 ++ 2 files changed, 57 insertions(+) create mode 100644 .github/workflows/Benchmark.yml create mode 100644 Benchmarks/Memory/Dockerfile diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml new file mode 100644 index 0000000..80442b4 --- /dev/null +++ b/.github/workflows/Benchmark.yml @@ -0,0 +1,55 @@ +name: benchmark + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + linux: + runs-on: ubuntu-24.04 + name: Ubuntu 24.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Build environment + run: | + docker build -f Benchmarks/Memory/Dockerfile -t benchmark . + + - name: Build test application + run: | + docker run --rm -v=$PWD:/swift -w=/swift \ + benchmark \ + swift build -c release --product FirewallUsage + + - name: Build firewall + run: | + docker run --rm -v=$PWD:/swift -w=/swift \ + benchmark \ + Scripts/Package + + - name: Run test application (200MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 200m \ + benchmark \ + .build/release/FirewallUsage + + - name: Run test application (150MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 150m \ + benchmark \ + .build/release/FirewallUsage + + - name: Run test application (100MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 100m \ + benchmark \ + .build/release/FirewallUsage + + - name: Run test application (80MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 80m \ + benchmark \ + .build/release/FirewallUsage diff --git a/Benchmarks/Memory/Dockerfile b/Benchmarks/Memory/Dockerfile new file mode 100644 index 0000000..fbe4fc0 --- /dev/null +++ b/Benchmarks/Memory/Dockerfile @@ -0,0 +1,2 @@ +FROM swift:6.0.2-noble +RUN apt -y install libjemalloc2 From 2d0a800006dba4a96dc9ee09e4dbea297af51ed0 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:04:16 +0000 Subject: [PATCH 03/13] jemalloc --- .github/workflows/Benchmark.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index 80442b4..8175fff 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -33,23 +33,27 @@ jobs: - name: Run test application (200MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift --memory 200m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage - name: Run test application (150MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift --memory 150m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage - name: Run test application (100MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift --memory 100m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage - name: Run test application (80MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift --memory 80m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage From 86198d3b092a0aedb711c94636c580217147a37d Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:06:18 +0000 Subject: [PATCH 04/13] apt update --- Benchmarks/Memory/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Benchmarks/Memory/Dockerfile b/Benchmarks/Memory/Dockerfile index fbe4fc0..8173e9f 100644 --- a/Benchmarks/Memory/Dockerfile +++ b/Benchmarks/Memory/Dockerfile @@ -1,2 +1,4 @@ FROM swift:6.0.2-noble + +RUN apt update RUN apt -y install libjemalloc2 From 02efd67a5471cc8439a92db5748dfc27c160e492 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:10:26 +0000 Subject: [PATCH 05/13] IPINFO_TOKEN --- .github/workflows/Benchmark.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index 8175fff..90c470c 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -9,7 +9,7 @@ on: jobs: linux: runs-on: ubuntu-24.04 - name: Ubuntu 24.04 + name: Benchmark memory consumption steps: - name: Checkout repository uses: actions/checkout@v3 @@ -27,6 +27,7 @@ jobs: - name: Build firewall run: | docker run --rm -v=$PWD:/swift -w=/swift \ + -e IPINFO_TOKEN=${{ secrets.IPINFO_TOKEN }} \ benchmark \ Scripts/Package From 2d84a8bedcfaa7f38dc40273bc93160e03d1ccb2 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:14:27 +0000 Subject: [PATCH 06/13] install curl and gzip --- Benchmarks/Memory/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Benchmarks/Memory/Dockerfile b/Benchmarks/Memory/Dockerfile index 8173e9f..c762671 100644 --- a/Benchmarks/Memory/Dockerfile +++ b/Benchmarks/Memory/Dockerfile @@ -1,4 +1,4 @@ FROM swift:6.0.2-noble RUN apt update -RUN apt -y install libjemalloc2 +RUN apt -y install libjemalloc2 curl gzip From c37740d006e93c2af0678275516e92a65d349400 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:20:28 +0000 Subject: [PATCH 07/13] =?UTF-8?q?we=20weren=E2=80=99t=20invoking=20the=20s?= =?UTF-8?q?cript=20correctly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/Benchmark.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index 90c470c..eb29653 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -9,7 +9,7 @@ on: jobs: linux: runs-on: ubuntu-24.04 - name: Benchmark memory consumption + name: memory consumption steps: - name: Checkout repository uses: actions/checkout@v3 @@ -31,30 +31,30 @@ jobs: benchmark \ Scripts/Package - - name: Run test application (200MB memory limit) + - name: Run test application (300MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 200m \ + docker run --rm -v=$PWD:/swift -w=/swift --memory 300m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ - .build/release/FirewallUsage + .build/release/FirewallUsage 66.249.66.169 - - name: Run test application (150MB memory limit) + - name: Run test application (200MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 150m \ + docker run --rm -v=$PWD:/swift -w=/swift --memory 200m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ - .build/release/FirewallUsage + .build/release/FirewallUsage 66.249.66.169 - - name: Run test application (100MB memory limit) + - name: Run test application (160MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 100m \ + docker run --rm -v=$PWD:/swift -w=/swift --memory 160m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ - .build/release/FirewallUsage + .build/release/FirewallUsage 66.249.66.169 - - name: Run test application (80MB memory limit) + - name: Run test application (140MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 80m \ + docker run --rm -v=$PWD:/swift -w=/swift --memory 140m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ - .build/release/FirewallUsage + .build/release/FirewallUsage 66.249.66.169 From 36e8fb3cb0d8397368f806caf887e10588122437 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:25:48 +0000 Subject: [PATCH 08/13] add snippet markers --- Snippets/FirewallUsage.swift | 39 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Snippets/FirewallUsage.swift b/Snippets/FirewallUsage.swift index 879b422..a4b9f84 100644 --- a/Snippets/FirewallUsage.swift +++ b/Snippets/FirewallUsage.swift @@ -30,33 +30,34 @@ else fatalError("Invalid IP address") } +// snippet.LOAD_FIREWALL let data:Data = try .init(contentsOf: URL.init(fileURLWithPath: "firewall.bson")) let bson:BSON.Document = .init(bytes: [UInt8].init(data)[...]) let firewall:IP.Firewall = .load(from: try IP.Firewall.Image.init(bson: bson)) -guard -let country:ISO.Country = firewall.country[v6: ip] -else +// snippet.LOOKUP_COUNTRY +let country:ISO.Country? = firewall.country[v6: ip] +// snippet.end +if let country:ISO.Country { - fatalError("No Country found for \(ip)") + print("Country: \(country)") } -print(""" - Address: \(ip) - Country: \(country) - """) - -let (system, _):(IP.AS?, IP.Claimant?) = firewall.lookup(v6: ip) - -guard -let system:IP.AS -else +// snippet.LOOKUP_ASN +let (system, claimant):(IP.AS?, IP.Claimant?) = firewall.lookup(v6: ip) +// snippet.end +if let system:IP.AS { - fatalError("No ASN found for \(ip)") + print(""" + ASN: \(system.number) + AS: \(system.domain) (\(system.name)) + """) } -print(""" - ASN: \(system.number) - AS: \(system.domain) (\(system.name)) - """) +if let claimant:IP.Claimant +{ + print(""" + Claimant: \(claimant) + """) +} From 58f0c5eeaa5ea92235dbdb81ca207a1f0f0ddfdb Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:25:57 +0000 Subject: [PATCH 09/13] see how low we can go --- .github/workflows/Benchmark.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index eb29653..a99e8a0 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -58,3 +58,17 @@ jobs: -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 + + - name: Run test application (130MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 130m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ + benchmark \ + .build/release/FirewallUsage 66.249.66.169 + + - name: Run test application (120MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 120m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ + benchmark \ + .build/release/FirewallUsage 66.249.66.169 From 27858086724779d7c984694a76e86c57cc861a1f Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:30:13 +0000 Subject: [PATCH 10/13] ditto --- .github/workflows/Benchmark.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index a99e8a0..cf975d6 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -72,3 +72,24 @@ jobs: -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 + + - name: Run test application (100MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 100m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ + benchmark \ + .build/release/FirewallUsage 66.249.66.169 + + - name: Run test application (80MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 80m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ + benchmark \ + .build/release/FirewallUsage 66.249.66.169 + + - name: Run test application (60MB memory limit) + run: | + docker run --rm -v=$PWD:/swift -w=/swift --memory 60m \ + -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ + benchmark \ + .build/release/FirewallUsage 66.249.66.169 From c466c2e86549c466ca0e8e2fbec68e86554b8247 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:34:21 +0000 Subject: [PATCH 11/13] i think we also need to turn off swap --- .github/workflows/Benchmark.yml | 36 ++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index cf975d6..8b87829 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -33,63 +33,81 @@ jobs: - name: Run test application (300MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 300m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 300m \ + --memory 300m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (200MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 200m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 200m \ + --memory 200m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (160MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 160m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 160m \ + --memory 160m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (140MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 140m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 140m \ + --memory 140m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (130MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 130m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 130m \ + --memory 130m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (120MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 120m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 120m \ + --memory 120m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (100MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 100m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 100m \ + --memory 100m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (80MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 80m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 80m \ + --memory 80m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - name: Run test application (60MB memory limit) run: | - docker run --rm -v=$PWD:/swift -w=/swift --memory 60m \ + docker run --rm -v=$PWD:/swift -w=/swift \ + --memory-swap 60m \ + --memory 60m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 From c5242e1c586676528cfb102db65b017333366ae5 Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:38:44 +0000 Subject: [PATCH 12/13] these numbers make a lot more sense --- .github/workflows/Benchmark.yml | 48 +++++---------------------------- 1 file changed, 6 insertions(+), 42 deletions(-) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index 8b87829..5f33e27 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -58,56 +58,20 @@ jobs: benchmark \ .build/release/FirewallUsage 66.249.66.169 - - name: Run test application (140MB memory limit) + - name: Run test application (155MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 140m \ - --memory 140m \ + --memory-swap 155m \ + --memory 155m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - - name: Run test application (130MB memory limit) + - name: Run test application (150MB memory limit) run: | docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 130m \ - --memory 130m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (120MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 120m \ - --memory 120m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (100MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 100m \ - --memory 100m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (80MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 80m \ - --memory 80m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (60MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 60m \ - --memory 60m \ + --memory-swap 150m \ + --memory 150m \ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 From 003f356467c431fa21c763683132e8f86dddaa4a Mon Sep 17 00:00:00 2001 From: Dianna Ma Date: Sun, 8 Dec 2024 00:49:42 +0000 Subject: [PATCH 13/13] 160 MB is the lower limit --- .github/workflows/Benchmark.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index 5f33e27..b66a9dc 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -57,21 +57,3 @@ jobs: -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ benchmark \ .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (155MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 155m \ - --memory 155m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169 - - - name: Run test application (150MB memory limit) - run: | - docker run --rm -v=$PWD:/swift -w=/swift \ - --memory-swap 150m \ - --memory 150m \ - -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 \ - benchmark \ - .build/release/FirewallUsage 66.249.66.169