Неплохая утилита для тестирования производительности 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 _x000D_ --add-host=test-bucket.storage.cloud.croc.ru:81.23.10.24 _x000D_ fatruden/s3pt _x000D_ --endpointUrl storage.cloud.croc.ru _x000D_ --signerOverride S3Signer _x000D_ --accessKey {access_key} _x000D_ --secretKey {secret_key} _x000D_ --keepAlive _x000D_ --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_x000D_ INFO [main] de.jeha.s3pt.TestResult Result summary:_x000D_ INFO [main] de.jeha.s3pt.TestResult min = 18 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult max = 658 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult avg = 65 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult p50 = 65 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult p75 = 87 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult p95 = 152 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult p98 = 213 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult p99 = 296 ms_x000D_ INFO [main] de.jeha.s3pt.TestResult throughput = 105 operations/s
Помогла ли вам статья?