إرشادات ضبط الأداء لاستخدام PowerShell مع Azure Data Lake Storage Gen1

توضح هذه المقالة الخصائص التي يمكنك ضبطها للحصول على أداء أفضل أثناء استخدام PowerShell للعمل مع Data Lake Storage Gen1.

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

الخاصية افتراضي الوصف
PerFileThreadCount 10 تمكنك هذه المعلمة من اختيار عدد مؤشرات الترابط المتوازية لتحميل كل ملف أو تنزيله. يمثل هذا الرقم الحد الأقصى من مؤشرات الترابط التي يمكن تخصيصها لكل ملف، ولكن قد تحصل على عدد أقل من مؤشرات الترابط اعتمادا على السيناريو الخاص بك (على سبيل المثال، إذا كنت تقوم بتحميل ملف 1 كيلوبايت، فستحصل على مؤشر ترابط واحد حتى إذا طلبت 20 مؤشر ترابط).
ConcurrentFileCount 10 هذه المعلمة مخصصة تحديدا لتحميل المجلدات أو تنزيلها. تحدد هذه المعلمة عدد الملفات المتزامنة التي يمكن تحميلها أو تنزيلها. يمثل هذا الرقم الحد الأقصى لعدد الملفات المتزامنة التي يمكن تحميلها أو تنزيلها في وقت واحد، ولكن قد تحصل على تزامن أقل اعتمادا على السيناريو الخاص بك (على سبيل المثال، إذا كنت تقوم بتحميل ملفين، فستحصل على ملفين متزامنين تحميل حتى إذا طلبت 15).

مثال:

يقوم هذا الأمر بتنزيل الملفات من Data Lake Storage Gen1 إلى محرك الأقراص المحلي للمستخدم باستخدام 20 مؤشر ترابط لكل ملف و100 ملف متزامن.

Export-AzDataLakeStoreItem -AccountName "Data Lake Storage Gen1 account name" `
    -PerFileThreadCount 20 `
	-ConcurrentFileCount 100 `
	-Path /Powershell/100GB `
	-Destination C:\Performance\ `
	-Force `
	-Recurse

كيفية تحديد قيم الخصائص

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

  • الخطوة 1: تحديد إجمالي عدد مؤشرات الترابط - ابدأ بحساب إجمالي عدد مؤشرات الترابط المراد استخدامها. كإرشادات عامة، يجب عليك استخدام ستة مؤشرات ترابط لكل نواة فعلية.

    Total thread count = total physical cores * 6

    مثال:

    بافتراض أنك تقوم بتشغيل أوامر PowerShell من جهاز ظاهري D14 يحتوي على 16 نواة

    Total thread count = 16 cores * 6 = 96 threads

  • الخطوة 2: حساب PerFileThreadCount - نحسب PerFileThreadCount استنادا إلى حجم الملفات. بالنسبة للملفات الأصغر من 2.5 غيغابايت، ليست هناك حاجة لتغيير هذه المعلمة لأن الافتراضي 10 كاف. بالنسبة للملفات التي يزيد حجمها عن 2.5 غيغابايت، يجب استخدام 10 مؤشرات ترابط كأساس لأول 2.5 غيغابايت وإضافة مؤشر ترابط واحد لكل زيادة إضافية بمقدار 256 ميغابايت في حجم الملف. إذا كنت تقوم بنسخ مجلد به نطاق كبير من أحجام الملفات، ففكر في تجميعها في أحجام ملفات مماثلة. قد يؤدي وجود أحجام ملفات غير مختلفة إلى أداء غير مثالي. إذا لم يكن ذلك ممكنا لتجميع أحجام ملفات مماثلة، فيجب عليك تعيين PerFileThreadCount استنادا إلى أكبر حجم للملف.

    PerFileThreadCount = 10 threads for the first 2.5 GB + 1 thread for each additional 256 MB increase in file size

    مثال:

    بافتراض أن لديك 100 ملف تتراوح من 1 غيغابايت إلى 10 غيغابايت، فإننا نستخدم 10 غيغابايت كأكبر حجم ملف للمعادلة، والذي سيقرأ كما يلي.

    PerFileThreadCount = 10 + ((10 GB - 2.5 GB) / 256 MB) = 40 threads

  • الخطوة 3: حساب ConcurrentFilecount - استخدم إجمالي عدد مؤشرات الترابط و PerFileThreadCount لحساب ConcurrentFileCount استنادا إلى المعادلة التالية:

    Total thread count = PerFileThreadCount * ConcurrentFileCount

    مثال:

    استنادا إلى قيم المثال التي كنا نستخدمها

    96 = 40 * ConcurrentFileCount

    لذلك، ConcurrentFileCount هو 2.4، والذي يمكننا تقريبه إلى 2.

مزيد من الضبط

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

PerFileThreadCount = 10 + ((5 GB - 2.5 GB) / 256 MB) = 20

لذلك، يصبح ConcurrentFileCount 96/20، وهو 4.8، مقربا إلى 4.

يمكنك الاستمرار في ضبط هذه الإعدادات عن طريق تغيير PerFileThreadCount لأعلى ولأسفل اعتمادا على توزيع أحجام الملفات.

القيود

  • عدد الملفات أقل من ConcurrentFileCount: إذا كان عدد الملفات التي تقوم بتحميلها أصغر من ConcurrentFileCount الذي قمت بحسابه، فيجب عليك تقليل ConcurrentFileCount ليكون مساويا لعدد الملفات. يمكنك استخدام أي مؤشرات ترابط متبقية لزيادة PerFileThreadCount.

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

  • عدم كفاية التزامن: إذا لم يكن التزامن كافيا، فقد تكون مجموعتك صغيرة جدا. يمكنك زيادة عدد العقد في نظام المجموعة الخاص بك، ما يمنحك المزيد من التزامن.

  • أخطاء التقييد: قد ترى أخطاء تقييد إذا كان التزامن مرتفعا جدا. إذا كنت ترى أخطاء تقييد، فيجب عليك إما تقليل التزامن أو الاتصال بنا.

الخطوات التالية