From 7882e45cc61699f7c430f314c459abe23cda8df6 Mon Sep 17 00:00:00 2001 From: n0vad3v Date: Wed, 31 May 2023 16:39:59 +0800 Subject: [PATCH 1/2] Add libjemalloc2 and libtcmalloc-minimal4 to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4439fa2cf..10a79a75b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN cd /build && sed -i "s|.\/pics|${IMG_PATH}|g" config.json \ FROM debian:bullseye-slim -RUN apt update && apt install --no-install-recommends libvips ca-certificates -y && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/apt/archives/* +RUN apt update && apt install --no-install-recommends libvips ca-certificates libjemalloc2 libtcmalloc-minimal4 -y && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/apt/archives/* COPY --from=builder /build/webp-server /usr/bin/webp-server COPY --from=builder /build/config.json /etc/config.json From 08a00973393fd9440834a59f57f4aaf97a75f3ed Mon Sep 17 00:00:00 2001 From: n0vad3v Date: Wed, 31 May 2023 17:25:11 +0800 Subject: [PATCH 2/2] Add integration tests --- .github/workflows/integration-test.yaml | 68 +++++++++++++++++++++++++ tests/glib_malloc/docker-compose.yml | 13 +++++ tests/jemalloc/docker-compose.yml | 14 +++++ 3 files changed, 95 insertions(+) create mode 100644 .github/workflows/integration-test.yaml create mode 100644 tests/glib_malloc/docker-compose.yml create mode 100644 tests/jemalloc/docker-compose.yml diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml new file mode 100644 index 000000000..49691ab02 --- /dev/null +++ b/.github/workflows/integration-test.yaml @@ -0,0 +1,68 @@ +name: Integration Tests +on: + pull_request: + branches: + - master + paths-ignore: + - '**.md' + - 'Makefile' + - 'config.json' + +jobs: + glib_malloc: + name: Glib malloc RAM usage test + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build image + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64 + push: false + tags: ghcr.io/webp-sh/webp_server_go + + - name: Start the container + run: | + cp tests/glib_malloc/docker-compose.yml ./ + docker-compose up -d + + - name: Send Requests to Server + run: | + cd pics + find * -type f -print | xargs -I {} curl -H "User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/98.0" http://localhost:3333/{} + + - name: Get container RAM stats + run: | + docker stats --no-stream + + jemalloc: + name: jemalloc RAM usage test + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Build image + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64 + push: false + tags: ghcr.io/webp-sh/webp_server_go + + - name: Start the container + run: | + cp tests/jemalloc/docker-compose.yml ./ + docker-compose up -d + + - name: Send Requests to Server + run: | + cd pics + find * -type f -print | xargs -I {} curl -H "User-Agent: Mozilla/5.0 Gecko/20100101 Firefox/98.0" http://localhost:3333/{} + + - name: Get container RAM stats + run: | + docker stats --no-stream \ No newline at end of file diff --git a/tests/glib_malloc/docker-compose.yml b/tests/glib_malloc/docker-compose.yml new file mode 100644 index 000000000..d0c62c13e --- /dev/null +++ b/tests/glib_malloc/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3' + +services: + webp: + image: webpsh/webp-server-go + restart: always + environment: + - MALLOC_ARENA_MAX=1 + volumes: + - ./pics:/opt/pics + - ./exhaust:/opt/exhaust + ports: + - 127.0.0.1:3333:3333 \ No newline at end of file diff --git a/tests/jemalloc/docker-compose.yml b/tests/jemalloc/docker-compose.yml new file mode 100644 index 000000000..c820535a1 --- /dev/null +++ b/tests/jemalloc/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3' + +services: + webp: + image: webpsh/webp-server-go + restart: always + environment: + - MALLOC_ARENA_MAX=1 + - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 + volumes: + - ./pics:/opt/pics + - ./exhaust:/opt/exhaust + ports: + - 127.0.0.1:3333:3333 \ No newline at end of file