S3 Performance Test Tool

Неплохая утилита для тестирования производительности AWS S3 или S3 совместимого объектного хранилища типа Ceph.
Так же ее можно использовать для нагрузочных тестов имитируя различную нагрузку.

Код проекта: https://github.com/jenshadlich/S3-Performance-Test
Утилита написана на Java и если вам как и мне не хочется возиться с Java то есть готовый Docker image: https://hub.docker.com/r/javamaster/s3pt/ Только есть одна мелочь — образ не пригоден к использованию так как не один из примеров не работает(на дату статьи перепроверил и таки да, не работает ничего 🙁 )

Поэтому я любезно пересобрал утилиту и образ в котором в отличии от оригинала все работает 🙂 https://hub.docker.com/r/fatruden/s3pt/

Пример запуска теста напротив S3-совместимого объектного хранилища:

$ docker run --rm -ti \
    --add-host=test-bucket.storage.cloud.croc.ru:81.23.10.24 \
    fatruden/s3pt \
    --endpointUrl storage.cloud.croc.ru \
    --signerOverride S3Signer \
    --accessKey {access_key} \
    --secretKey {secret_key} \
    --keepAlive \
    --bucketName test-bucket -t 8 -n 320 --size 10

Тут я специально добавляю запись в /etc/hosts (--add-host=test-bucket.storage.cloud.croc.ru:81.23.10.24) дабы исключить DNS-резолвинг и --keepAlive тоже для максимальной производительности сети. Ну и --size 10 у меня минимальный, для оценки операций в секунду.

Пример результата:

INFO [main] de.jeha.s3pt.Main Total time = 27510 ms
INFO [main] de.jeha.s3pt.TestResult Result summary:
INFO [main] de.jeha.s3pt.TestResult min = 18 ms
INFO [main] de.jeha.s3pt.TestResult max = 658 ms
INFO [main] de.jeha.s3pt.TestResult avg = 65 ms
INFO [main] de.jeha.s3pt.TestResult p50 = 65 ms
INFO [main] de.jeha.s3pt.TestResult p75 = 87 ms
INFO [main] de.jeha.s3pt.TestResult p95 = 152 ms
INFO [main] de.jeha.s3pt.TestResult p98 = 213 ms
INFO [main] de.jeha.s3pt.TestResult p99 = 296 ms
INFO [main] de.jeha.s3pt.TestResult throughput = 105 operations/s