mirror of
https://github.com/minio/minio.git
synced 2024-12-25 14:45:54 -05:00
9ccc483df6
major performance improvements in range GETs to avoid large read amplification when ranges are tiny and random ``` ------------------- Operation: GET Operations: 142014 -> 339421 Duration: 4m50s -> 4m56s * Average: +139.41% (+1177.3 MiB/s) throughput, +139.11% (+658.4) obj/s * Fastest: +125.24% (+1207.4 MiB/s) throughput, +132.32% (+612.9) obj/s * 50% Median: +139.06% (+1175.7 MiB/s) throughput, +133.46% (+660.9) obj/s * Slowest: +203.40% (+1267.9 MiB/s) throughput, +198.59% (+753.5) obj/s ``` TTFB from 10MiB BlockSize ``` * First Access TTFB: Avg: 81ms, Median: 61ms, Best: 20ms, Worst: 2.056s ``` TTFB from 1MiB BlockSize ``` * First Access TTFB: Avg: 22ms, Median: 21ms, Best: 8ms, Worst: 91ms ``` Full object reads however do see a slight change which won't be noticeable in real world, so not doing any comparisons TTFB still had improvements with full object reads with 1MiB ``` * First Access TTFB: Avg: 68ms, Median: 35ms, Best: 11ms, Worst: 1.16s ``` v/s TTFB with 10MiB ``` * First Access TTFB: Avg: 388ms, Median: 98ms, Best: 20ms, Worst: 4.156s ``` This change should affect all new uploads, previous uploads should continue to work with business as usual. But dramatic improvements can be seen with these changes.
42 lines
1.3 KiB
Docker
42 lines
1.3 KiB
Docker
FROM golang:1.16-alpine as builder
|
|
|
|
LABEL maintainer="MinIO Inc <dev@min.io>"
|
|
|
|
ENV GOPATH /go
|
|
ENV CGO_ENABLED 0
|
|
ENV GO111MODULE on
|
|
|
|
RUN \
|
|
apk add --no-cache git && \
|
|
git clone https://github.com/minio/minio && cd minio && \
|
|
git checkout master && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)"
|
|
|
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
|
|
|
|
ENV MINIO_ACCESS_KEY_FILE=access_key \
|
|
MINIO_SECRET_KEY_FILE=secret_key \
|
|
MINIO_ROOT_USER_FILE=access_key \
|
|
MINIO_ROOT_PASSWORD_FILE=secret_key \
|
|
MINIO_KMS_MASTER_KEY_FILE=kms_master_key \
|
|
MINIO_SSE_MASTER_KEY_FILE=sse_master_key \
|
|
MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav"
|
|
|
|
EXPOSE 9000
|
|
|
|
COPY --from=builder /go/bin/minio /usr/bin/minio
|
|
COPY --from=builder /go/minio/CREDITS /licenses/CREDITS
|
|
COPY --from=builder /go/minio/LICENSE /licenses/LICENSE
|
|
COPY --from=builder /go/minio/dockerscripts/docker-entrypoint.sh /usr/bin/
|
|
|
|
RUN \
|
|
microdnf update --nodocs && \
|
|
microdnf install curl ca-certificates shadow-utils util-linux --nodocs && \
|
|
microdnf clean all && \
|
|
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
|
|
|
|
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
|
|
|
|
VOLUME ["/data"]
|
|
|
|
CMD ["minio"]
|