تحسين أداء AzCopy باستخدام موقع تخزين Azure

AzCopy هو أداة سطر الأوامر التي يمكنك استخدامها لنسخ كائنات ثنائية كبيرة الحجم أو ملفات إلى أو من حساب تخزين. هذه المقالة تعمل على تحسين الأداء.

إشعار

في حالة كنت تبحث عن المحتوى لمساعدتك في بدء استخدام AzCopy، فراجع بدء استخدام AzCopy

تستطيع قياس الأداء، ثم استخدام الأوامر ومتغيرات البيئة للعثور على المفاضلة المثلى بين الأداء واستهلاك الموارد.

تشغيل اختبارات القياس

يمكنك إجراء اختبار مقياس الأداء على حاويات كائن ثنائي كبير الحجم معينة أو مشاركات ملفات لعرض إحصائيات الأداء العامة وتحديد ازدحامات الأداء. يمكنك تشغيل الاختبار عن طريق تحميل البيانات الخاصة بالاختبار التي تم إنشاؤها أو تنزيلها.

استخدم الأمر التالي لتشغيل اختبار قياس الأداء.

بناء الجمله

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

مثال

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'

تلميح

يتضمن هذا المثال الوسيطات الخاصة بالمسار بعلامات اقتباس مفردة (''). استخدم علامات الاقتباس المفردة في كافة أغلفة الأوامر باستثناء shell الأوامر Windows (cmd.exe). في حالة استخدامك Windows Command Shell (cmd.exe)، فقم بإحاطة وسيطات المسار بعلامات اقتباس مزدوجة ("") بدلًا من علامات الاقتباس المفردة ('').

يقوم هذا الأمر بتشغيل مقياس أداء عن طريق تحميل بيانات الاختبار إلى وجهة محددة. يتم إنشاء البيانات الخاصة بالاختبار في الذاكرة، ويتم تحميلها إلى الوجهة، ثم حذفها من الوجهة بعد اكتمال الاختبار. يمكنك تحديد عدد الملفات التي سيتم إنشاءها والحجم الذي تريد أن تكون عليه باستخدام معلمات الأمر الاختيارية.

في حالة كنت تفضل تشغيل هذا الاختبار عن طريق تنزيل البيانات، فقم بتعيين المعلمة mode إلى download. للحصول على وثائق مرجعية مفصلة، راجع مقياس azcopy.

تحسين أعداد كبيرة من الملفات

يمكن أن ينخفض معدل النقل عند نقل أعداد كبيرة من الملفات. تترجم كل عملية نسخ إلى معاملة واحدة أو أكثر يجب تنفيذها في خدمة التخزين. عند نقل عدد كبير من الملفات، ضع في اعتبارك عدد المعاملات التي يجب تنفيذها وأي تأثير محتمل يمكن أن تحدثه هذه المعاملات إذا كانت هناك أنشطة أخرى تحدث في حساب التخزين في نفس الوقت.

لتحقيق أقصى قدر من الأداء، يمكنك تقليل حجم كل مهمة عن طريق الحد من عدد الملفات التي يتم نسخها في مهمة واحدة. لعمليات التنزيل والتحميل، قم بزيادة التزامن حسب الحاجة، وتقليل نشاط السجل، وإيقاف تشغيل الميزات التي تتحمل تكاليف عالية الأداء.

تقليل حجم كل وظيفة

لتحقيق الأداء الأمثل، تأكد من أن كل وظيفة تنقل أقل من 10 ملايين ملف. يمكن أن تؤدي الوظائف التي تنقل أكثر من 50 مليون ملف أداء سيئا لأن آلية تعقب المهام في AzCopy تتحمل قدرا كبيرا من النفقات العامة. لتقليل النفقات العامة، قسم الوظائف الكبيرة إلى وظائف أصغر.

تتمثل إحدى طرق تقليل حجم الوظيفة في الحد من عدد الملفات المتأثرة بالوظيفة. يمكنك استخدام معلمات الأمر للقيام بذلك. على سبيل المثال، يمكن لمهمة نسخ المجموعة الفرعية فقط من الدلائل باستخدام المعلمة include path كجزء من أمر نسخ azcopy .

استخدم المعلمة include-pattern لنسخ الملفات التي لها ملحق معين (على سبيل المثال: *.pdf). في وظيفة منفصلة، استخدم المعلمة exclude-pattern لنسخ كافة الملفات التي ليس لها *.pdf ملحق. راجع تحميل الملفات المحددة وتنزيل كائن ثنائي كبير الحجم محدد للحصول على أمثلة.

بعد أن تقرر طريقة تقسيم الوظائف الكبيرة إلى وظائف أصغر، فكر في تشغيل الوظائف على أكثر من جهاز ظاهري (VM).

عملية زيادة التزامن

في حالة كنت تقوم بتحميل الملفات أو تنزيلها، فاستخدم AZCOPY_CONCURRENCY_VALUE متغير البيئة لزيادة عدد الطلبات المتزامنة التي يمكن أن تحدث على جهازك. اضبط هذا المتغير على أعلى مستوى ممكن دون المساس بالأداء الخاص بجهازك. لمعرفة المزيد حول هذا المتغير، راجع القسم الخاص بزيادة عدد الطلبات المتزامنة من هذه المقالة.

إذا كنت تقوم بنسخ كائنات ثنائية كبيرة الحجم بين حسابات التخزين، ففكر في تعيين قيمة AZCOPY_CONCURRENCY_VALUE متغير البيئة إلى قيمة أكبر من 1000. يمكنك تعيين هذا المتغير عاليا لأن AzCopy يستخدم واجهات برمجة التطبيقات من خادم إلى خادم، بحيث يتم نسخ البيانات مباشرة بين خوادم التخزين وتجنب استخدام قوة معالجة جهازك.

عملية تقليل عدد السجلات التي تم إنشاؤها

يمكنك تحسين الأداء عن طريق تقليل عدد إدخالات السجل التي يقوم AzCopy بإنشائها أثناء إتمام عملية. بشكل افتراضي، يقوم AzCopy بتسجيل جميع الأنشطة المتعلقة بعملية. لتحقيق الأداء الأمثل، ضع في عين الاعتبار تعيين --log-level معلمة الأمر النسخ أو المزامنة أو الإزالة إلى ERROR. بتلك الطريقة، يسجل AzCopy الأخطاء فقط. افتراضيا، يتم تعيين مستوى سجل القيمة إلى INFO .

إيقاف تشغيل التحقق الخاص بالطول

في حالة كنت تقوم بتحميل الملفات أو تنزيلها، ففكر في --check-length تعيين أوامر النسخ والمزامنة إلى false. يمنع هذا AzCopy من التحقق من طول ملف بعد عملية النقل. بشكل افتراضي، يتحقق AzCopy من الطول للتأكد من تطابق ملفات المصدر والوجهة بعد اكتمال عملية النقل. يقوم AzCopy بإجراء هذا الفحص بعد كل عملية نقل للملفات. يمكن أن يؤدي هذا الفحص إلى تدهور الأداء عند نقل الوظائف لأعداد كبيرة من الملفات الصغيرة.

تشغيل مسح ضوئي محلي متزامن (Linux)

لا يتم تنفيذ عمليات الفحص الخاصة بالملفات على بعض أنظمة Linux بسرعة كافية لتشبع جميع اتصالات الشبكة المتوازية. في هذه الحالات، تستطيع تعيين الرقمAZCOPY_CONCURRENT_SCAN إلى رقم أعلى.

قم بزيادة عدد الطلبات المتزامنة

يمكنك زيادة معدل النقل عن طريق تعيينAZCOPY_CONCURRENCY_VALUE متغير البيئة. يحدد هذا المتغير عدد الطلبات المتزامنة التي يمكن أن تحدث.

إذا كان الكمبيوتر يحتوي على عدد أقل من 5 وحدات معالجة مركزية، إذن ستُعيّن قيمة هذا المتغير إلى 32. وإلا، القيمة الافتراضية تساوي 16 مضروباً في عدد CPUs. الحد الأقصى للقيمة الافتراضية لهذا المتغير هو 3000، ولكن يمكنك تعيين هذه القيمة يدويًا إلى قيمة أعلى أو أقل.

نظام التشغيل الأمر
Windows set AZCOPY_CONCURRENCY_VALUE=<value>
Linux export AZCOPY_CONCURRENCY_VALUE=<value>
ماك export AZCOPY_CONCURRENCY_VALUE=<value>

استخدم azcopy env للتحقق من القيمة الحالية لهذا المتغير. إذا كانت القيمة فارغة، فيمكنك قراءة القيمة التي يتم استخدامها من خلال النظر إلى بداية أي ملف سجل AzCopy. يتم الإبلاغ عن القيمة المحددة وسبب تحديدها هناك.

قبل تعيين هذا المتغير، نوصي بتشغيل اختبار معياري. ستقوم عملية الاختبار القياسي بالإبلاغ عن قيمة التزامن الموصى بها. بدلا من ذلك، إذا كانت شروط الشبكة والحمولات تختلف، قم بتعيين هذا المتغير إلى الكلمةAUTO بدلا من رقم معين. سيؤدي ذلك إلى تشغيل AzCopy دائماً نفس عملية الضبط التلقائي التي يستخدمها في اختبارات قياس الأداء.

الحد من معدل النقل الخاص بالبيانات

يمكنك استخدام العلامة فيcap-mbps الأوامر لوضع سقف على معدل نقل البيانات . على سبيل المثال، يستأنف الأمر التالي الوظيفة ويحدد الحد الأقصى لمعدل النقل إلى10 ميغابت (Mb) في الثانية.

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

عملية تحسين استخدام الذاكرة

تعيينAZCOPY_BUFFER_GB متغير البيئة لتحديد الحد الأقصى لذاكرة النظام التي تريد استخدامها من أجل التخزين المؤقت عند تنزيل الملفات وتحميلها. التعبير عن هذه القيمة بالغيغابايت (GB).

نظام التشغيل الأمر
Windows set AZCOPY_BUFFER_GB=<value>
Linux export AZCOPY_BUFFER_GB=<value>
ماك export AZCOPY_BUFFER_GB=<value>

إشعار

تعقب الوظيفة دوما يتحمل حمل إضافية في استخدام الذاكرة. يتغير المبلغ بناء على عدد التحويلات في الوظيفة. تعد المخازن المؤقتة هي أكبر مكون لاستخدام الذاكرة. يمكنك المساعدة في التحكم في الحمل باستخدامAZCOPY_BUFFER_GB لتلبية المتطلبات الخاصة بك تقريبا، ولكن لا توجد علامة متوفرة للحد من استخدام الذاكرة بشكل عام.

تحسين المزامنة الخاصة بالملفات

يعرف الأمرالمزامنة كافة الملفات في الوجهة، ثم يقارن أسماء الملفات والطوابع الزمنية المعدلة الأخيرة قبل بدء تشغيل عملية المزامنة. في حالة كان لديك عدد كبير من الملفات، فيمكنك تحسين الأداء عن طريق القضاء على هذه المعالجة المقدمة.

لإنجاز ذلك، استخدم الأمرنسخة azcopy بدلا من ذلك، ثم تعيين--overwrite العلامة إلىifSourceNewer. سيقوم AzCopy بمقارنة الملفات كما يتم نسخها دون إجراء أي عمليات مسح ومقارنات مقدما. يتيح هذا ميزة أداء في الحالات التي يوجد فيها عدد كبير من الملفات للمقارنة.

لا يقوم أمرنسخة azcopy بحذف الملفات من الوجهة، لذلك في حالة كنت تريد حذف الملفات في الوجهة عندما لم تعد موجودة في المصدر، فاستخدم أمر مزامنة azcopy مع--delete-destination تعيين العلامة إلى قيمة true أوprompt.

استخدام عملاء متعددين لتشغيل المهام بالتوازي

يعمل AzCopy بشكل أفضل عند تشغيل مثيل واحد فقط على العميل. إذا كنت ترغب في نقل الملفات بالتوازي، فاستخدم عملاء متعددين وقم بتشغيل مثيل واحد فقط من AzCopy على كل واحد.

(راجع أيضًا )