diff --git a/debezium/perf/.env b/debezium/perf/.env index 3cc780a9c4e..dd728781204 100644 --- a/debezium/perf/.env +++ b/debezium/perf/.env @@ -10,7 +10,7 @@ REDPANDA_MEMORY=6G REDPANDA_SMP=4 REDPANDA_DISK=12G MATERIALIZE_VERSION=v0.20.0 -MATERIALIZE_WORKERS=8 +MATERIALIZE_WORKERS=2 KAFKA_PRODUCER_ACKS=0 KAFKA_BATCH_SIZE=1048576 MAX_PARALLEL_PURCHASES=4 diff --git a/debezium/perf/docker-compose.yml b/debezium/perf/docker-compose.yml index 4fd30251423..1fede60aba8 100644 --- a/debezium/perf/docker-compose.yml +++ b/debezium/perf/docker-compose.yml @@ -8,10 +8,18 @@ services: extends: file: ../../docker-compose-common.yml service: server + # For jprofiler, uncomment the next line. + # build: ../../jprofiler-server environment: - JAVA_TOOL_OPTIONS=-Xmx${DEEPHAVEN_HEAP} -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} + # For jprofiler sessions (if you tweaked the jprofiler version in jprofiler-server/Dockerfile you need to tweak the path below): + # Then use this startup options: + # - JAVA_TOOL_OPTIONS=-agentpath:/opt/jprofiler13.0/bin/linux-x64/libjprofilerti.so=port=8849,nowait -Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} volumes: - ../scripts:/scripts + # For jprofiler sessions: (change if using different port) + # ports: + # - '8849:8849' web: extends: @@ -45,7 +53,7 @@ services: # We build a tweaked version of redpanda's docker image to # change the configuration towards production defaults. build: - context: redpanda + context: ./redpanda args: - REDPANDA_VERSION=${REDPANDA_VERSION} command: diff --git a/docker-compose-common.yml b/docker-compose-common.yml index f1913251a95..71e5afaa9ea 100644 --- a/docker-compose-common.yml +++ b/docker-compose-common.yml @@ -3,7 +3,11 @@ version: "3.4" services: server: image: ${DEEPHAVEN_SERVER_IMAGE} - + # For jprofiler, replace the line before this comment block with the line below: + #build: + # context: ./jprofiler-server + # args: + # - DEEPHAVEN_SERVER_IMAGE=${DEEPHAVEN_SERVER_IMAGE} environment: # https://bugs.openjdk.java.net/browse/JDK-8230305 # cgroups v2 resource reservations only work w/ java 15+ ATM, so it's best for our java processes to be explicit @@ -11,14 +15,21 @@ services: # # To turn on debug logging, add: -Dlogback.configurationFile=logback-debug.xml - JAVA_TOOL_OPTIONS=-Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} + # # For remote debugging switch the line above for the one below (and also change the ports below) # - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} - + # + # For jprofiler sessions (if you tweaked the jprofiler version in jprofiler-server/Dockerfile you need to tweak path) + # - JAVA_TOOL_OPTIONS=-agentpath:/opt/jprofiler13.0/bin/linux-x64/libjprofilerti.so=port=8849,nowait -Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} expose: - '8080' +# For remote debugging (change if using different port) +# ports: +# - '5005:5005' +# For jprofiler (change if using different port) # ports: -# - '5005:5005' # For remote debugging (change if using different port) +# - '8849:8849' # Note: using old-style volume mounts, so that the directories get created if they don't exist # See https://docs.docker.com/storage/bind-mounts/#differences-between--v-and---mount-behavior diff --git a/jprofiler-server/Dockerfile b/jprofiler-server/Dockerfile new file mode 100644 index 00000000000..6dfe63dcc53 --- /dev/null +++ b/jprofiler-server/Dockerfile @@ -0,0 +1,8 @@ +ARG DEEPHAVEN_SERVER_IMAGE +FROM ${DEEPHAVEN_SERVER_IMAGE} + +# Replace with the desired version of jprofiler below. +RUN set -eux; \ + curl -o /tmp/jprofiler.tgz https://download-gcdn.ej-technologies.com/jprofiler/jprofiler_linux_13_0.tar.gz; \ + tar -xzf /tmp/jprofiler.tgz -C /opt; \ + rm -f /tmp/jprofiler.tgz