Недавно команда gcloud storage вышла в GA и я решил проверить насколько ее производительность отличается от gsutil. Для тестов нашелся GCS бакет с примерно 21k мелких объектов (средний размер 24kB), которые сжаты gzip.
Запускать тесты буду в e2-standard-2 VM (2 vCPU / 8 GB). Текущая версия Google SDK:
$ gcloud version Google Cloud SDK 403.0.0 alpha 2022.09.20 beta 2022.09.20 bq 2.0.77 bundled-python3-unix 3.9.12 core 2022.09.20 gcloud-crc32c 1.0.0 gsutil 5.13
Чтобы не зависеть от скорости работы блочного устройства тесты буду выполнять на ramfs.
$ sudo mkdir /mnt/ramdisk $ sudo mount -t ramfs none /mnt/ramdisk $ sudo chmod 777 /mnt/ramdisk $ cd /mnt/ramdisk $ mkdir test1 test2
Копирование данных через gcloud storage cp
$ cd /mnt/ramdisk/test1/ $ time gcloud storage cp -r gs://BUCKET/SAMPLE/DATA/* . [skipped output] Completed files 21000/21000 | 448.9MiB/448.9MiB | 1.5MiB/s Average throughput: 1.5MiB/s real 4m54.065s user 9m4.797s sys 0m30.854s
Копирование данных через gsutil cp
(используется многопоточность)
$ cd /mnt/ramdisk/test2/ $ time gsutil -m cp -r gs://BUCKET/SAMPLE/DATA/* . [skipped output] Operation completed over 21.0k objects/448.9 MiB. real 5m58.861s user 10m8.143s sys 1m18.350s
В моем тесте копирование мелких объектов c использованием gcloud storage
быстрее gsutil
примерно на 18%. Пока что gcloud storage
не заменит полностью gsutil
, но для простых операций стоит использовать её.
Комментариев нет:
Отправить комментарий