Bagikan melalui


Artikel ini membantu Anda mengoptimalkan performa AzCopy v10 dengan Azure Storage

AzCopy adalah utilitas baris perintah yang dapat Anda gunakan untuk menyalin gumpalan atau file ke atau dari akun penyimpanan. Artikel ini membantu Anda mengoptimalkan performa.

Catatan

Jika Anda mencari konten untuk membantu Anda memulai AzCopy, lihat Mulai menggunakan AzCopy

Anda dapat menjadi tolok ukur performa, lalu menggunakan perintah dan variabel lingkungan untuk menemukan tradeoff yang optimal antara performa dan konsumsi sumber daya.

Jalankan pengujian tolok ukur

Anda dapat menjalankan pengujian tolok ukur performa pada kontainer blob tertentu atau berbagi file untuk melihat statistik performa umum dan untuk mengidentifikasi hambatan performa. Anda dapat menjalankan pengujian dengan mengunggah atau mengunduh data pengujian yang dihasilkan.

Gunakan perintah berikut untuk menjalankan pengujian tolok ukur performa.

Sintaks

azcopy benchmark 'https://<storage-account-name>.blob.core.windows.net/<container-name>'

Contoh

azcopy benchmark 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D'

Tip

Contoh ini menyertakan argumen jalur dengan tanda kutip tunggal (''). Gunakan tanda kutip tunggal di semua shell perintah kecuali Windows Command Shell (cmd.exe). Jika Anda menggunakan Windows Command Shell (cmd.exe), sertakan argumen jalur dengan tanda kutip ganda ("") dan bukan tanda kutip tunggal ('').

Perintah ini menjalankan tolok ukur performa dengan mengunggah data pengujian ke tujuan tertentu. Data pengujian dihasilkan dalam memori, diunggah ke tujuan, kemudian dihapus dari tujuan setelah pengujian selesai. Anda dapat menentukan berapa banyak file yang dihasilkan dan berapa ukuran yang Anda inginkan dengan menggunakan parameter perintah opsional.

Jika Anda lebih suka menjalankan pengujian ini dengan mengunduh data, atur parameter mode ke download. Untuk dokumen referensi mendetail, lihat azcopy benchmark.

Optimalkan untuk sejumlah besar file

Throughput dapat berkurang saat mentransfer file dalam jumlah besar. Setiap operasi salin diterjemahkan ke satu atau beberapa transaksi yang harus dijalankan dalam layanan penyimpanan. Ketika Anda mentransfer sejumlah besar file, pertimbangkan jumlah transaksi yang perlu dijalankan dan dampak potensial yang dapat dialami transaksi tersebut jika aktivitas lain terjadi di akun penyimpanan secara bersamaan.

Untuk memaksimalkan performa, Anda dapat mengurangi ukuran setiap pekerjaan dengan membatasi jumlah file yang disalin dalam satu pekerjaan. Untuk operasi pengunduhan dan pengunggahan, tingkatkan konkurensi sesuai kebutuhan, kurangi aktivitas log, dan nonaktifkan fitur yang dikenakan biaya performa tinggi.

Mengurangi ukuran setiap pekerjaan

Untuk mencapai performa yang optimal, pastikan setiap pekerjaan mentransfer kurang dari 10 juta file. Pekerjaan yang mentransfer lebih dari 50 juta file dapat berperforma buruk karena mekanisme pelacakan pekerjaan AzCopy menimbulkan sejumlah besar overhead. Untuk mengurangi overhead, pertimbangkan untuk membagi pekerjaan besar menjadi yang lebih kecil.

Salah satu cara untuk mengurangi ukuran pekerjaan adalah dengan membatasi jumlah file yang terpengaruh oleh pekerjaan. Anda dapat menggunakan parameter perintah untuk melakukannya. Misalnya, pekerjaan hanya dapat menyalin subnet direktori dengan menggunakan parameter include path sebagai bagian dari perintah azcopy copy.

Gunakan parameter include-pattern untuk menyalin file yang memiliki ekstensi tertentu (misalnya: *.pdf). Dalam pekerjaan terpisah, gunakan parameter exclude-pattern untuk menyalin semua file yang tidak memiliki ekstensi *.pdf. Lihat Unggah file tertentu dan Unduh blob tertentu, misalnya.

Setelah Anda memutuskan cara membagi pekerjaan besar menjadi pekerjaan yang lebih kecil, pertimbangkan untuk menjalankan pekerjaan di lebih dari satu Virtual Machine (VM).

Menambah konkurensi

Jika Anda mengunggah atau mengunduh file, gunakan variabel lingkungan AZCOPY_CONCURRENCY_VALUE untuk menambah jumlah permintaan bersamaan yang dapat terjadi pada komputer Anda. Atur variabel ini setinggi mungkin tanpa mengorbankan performa komputer Anda. Untuk mempelajari selengkapnya tentang variabel ini, lihat bagian Menambah jumlah permintaan bersamaan dari artikel ini.

Jika Anda menyalin blob antar akun penyimpanan, pertimbangkan untuk mengatur nilai variabel lingkungan AZCOPY_CONCURRENCY_VALUE ke nilai yang lebih besar dari 1000. Anda dapat mengatur variabel ini tinggi karena AzCopy menggunakan API server-ke-server, sehingga data disalin langsung antara server penyimpanan dan tidak menggunakan daya pemrosesan komputer Anda.

Mengurangi jumlah log yang dihasilkan

Anda dapat meningkatkan performa dengan mengurangi jumlah entri log yang dibuat AzCopy saat menyelesaikan operasi. Secara default, AzCopy mencatat semua aktivitas yang terkait dengan operasi. Untuk mencapai performa optimal, pertimbangkan untuk mengatur parameter --log-level dari salinan, sinkronisasi, atau perintah hapus Anda ke ERROR. Dengan begitu, AzCopy hanya mencatat kesalahan. Secara default, tingkat log nilai diatur ke INFO.

Mematikan pemeriksaan panjang

Jika Anda mengunggah atau mengunduh file, pertimbangkan untuk mengatur --check-length dari perintah salin dan sinkronisasi Anda ke false. Cara ini mencegah AzCopy memverifikasi panjang file setelah transfer. Secara default, AzCopy memeriksa panjang untuk memastikan bahwa file sumber dan tujuan cocok setelah transfer selesai. AzCopy melakukan pemeriksaan ini setelah setiap transfer file. Pemeriksaan ini dapat menurunkan performa ketika pekerjaan mentransfer sejumlah besar file kecil.

Mengaktifkan pemindaian lokal bersamaan (Linux)

Pemindaian file pada beberapa sistem Linux tidak berjalan cukup cepat untuk menjenuhkan semua koneksi jaringan paralel. Dalam kasus ini, Anda dapat mengatur AZCOPY_CONCURRENT_SCAN ke angka yang lebih tinggi.

Menambah jumlah permintaan bersamaan

Anda dapat meningkatkan throughput dengan mengatur variabel lingkungan AZCOPY_CONCURRENCY_VALUE. Variabel ini menentukan jumlah permintaan bersamaan yang dapat terjadi.

Jika komputer Anda memiliki kurang dari 5 CPU, maka nilai variabel ini diatur ke 32. Jika tidak, nilai default sama dengan 16 dikalikan dengan jumlah CPU. Nilai default maksimum dari variabel ini adalah 3000, tetapi Anda dapat mengatur nilai ini lebih tinggi atau lebih rendah secara manual.

Sistem operasi Perintah
Windows set AZCOPY_CONCURRENCY_VALUE=<value>
Linux export AZCOPY_CONCURRENCY_VALUE=<value>
macOS export AZCOPY_CONCURRENCY_VALUE=<value>

Gunakan azcopy env untuk memeriksa nilai saat ini dari variabel ini. Jika nilainya kosong, maka Anda dapat membaca nilai mana yang sedang digunakan dengan melihat bagian awal file log AzCopy apa pun. Nilai yang dipilih, dan alasan nilai dipilih, dilaporkan di sana.

Sebelum Anda menetapkan variabel ini, kami sarankan Anda menjalankan pengujian tolok ukur. Proses pengujian tolok ukur akan melaporkan nilai konkurensi yang direkomendasikan. Atau, jika kondisi dan payload jaringan Anda bervariasi, atur variabel ini ke kata AUTO, bukan ke angka tertentu. Hal itu akan menyebabkan AzCopy selalu menjalankan proses penyesuaian otomatis yang sama yang digunakannya dalam pengujian tolok ukur.

Membatasi laju data throughput

Anda dapat menggunakan bendera cap-mbps untuk menempatkan ceiling pada laju data throughput. Misalnya, perintah berikut melanjutkan pekerjaan dan menutup throughput hingga 10 megabit (MB) per detik.

azcopy jobs resume <job-id> --cap-mbps 10

Mengoptimalkan penggunaan memori

Atur variabel lingkungan AZCOPY_BUFFER_GB untuk menentukan jumlah maksimum memori sistem yang ingin AzCopy Anda gunakan untuk mem-buffer ketika mengunduh dan mengunggah file. Nyatakan nilai ini dalam gigabyte (GB).

Sistem operasi Perintah
Windows set AZCOPY_BUFFER_GB=<value>
Linux export AZCOPY_BUFFER_GB=<value>
macOS export AZCOPY_BUFFER_GB=<value>

Catatan

Pelacakan pekerjaan selalu menimbulkan overhead tambahan dalam penggunaan memori. Jumlahnya bervariasi berdasarkan jumlah transfer dalam pekerjaan. Buffer adalah komponen terbesar penggunaan memori. Anda dapat membantu mengontrol overhead dengan menggunakan AZCOPY_BUFFER_GB untuk kira-kira memenuhi persyaratan Anda, tetapi tidak ada bendera yang tersedia untuk secara ketat menutup penggunaan memori secara keseluruhan.

Mengoptimalkan sinkronisasi file

Perintah sinkronisasi mengidentifikasi semua file di tujuan, lalu membandingkan nama file dan tanda waktu terakhir yang dimodifikasi sebelum memulai operasi sinkronisasi. Jika Anda memiliki sejumlah besar file, maka Anda dapat meningkatkan performa dengan menghilangkan pemrosesan di muka ini.

Untuk mencapai ini, gunakan perintah azcopy copy sebagai gantinya, dan atur bendera --overwrite ke ifSourceNewer. AzCopy akan membandingkan file saat disalin tanpa melakukan pemindaian dan perbandingan di muka. Ini memberikan keunggulan performa dalam kasus tempat terdapat sejumlah besar file untuk dibandingkan.

Perintah azcopy copy tidak menghapus file dari tujuan, jadi jika Anda ingin menghapus file di tujuan saat tidak lagi ada di sumber, maka gunakan perintah sinkronisasi azcopy dengan bendera --delete-destination yang diatur ke nilai true atau prompt.

Menggunakan beberapa klien untuk menjalankan pekerjaan secara paralel

AzCopy berkinerja terbaik ketika hanya satu instans yang berjalan pada klien. Jika Anda ingin mentransfer file secara paralel, gunakan beberapa klien dan jalankan hanya satu instans AzCopy pada masing-masing.

Baca juga