اعتبارات أداء نظام ملفات الشبكة 3.0 (NFS) في تخزين Azure Blob
يدعم تخزين Blob الآن بروتوكول لنظام ملفات الشبكة 3.0 (NFS). تحتوي هذه المقالة على توصيات تساعدك على تحسين أداء طلبات التخزين الخاصة بك. لمعرفة المزيد حول دعم NFS 3.0 لتخزين Azure Blob، راجع دعم بروتوكول للنظام ملفات الشبكة 3.0 (NFS) لتخزين Azure Blob.
إضافة عملاء لزيادة معدل النقل
يتم قياس Azure Blob Storage خطيًا حتى يصل إلى الحد الأقصى لخروج حساب التخزين ودخوله. لذلك، يمكن تحقيق التطبيقات الخاصة بك معدل نقل أعلى باستخدام عملاء أكثر. لعرض حدود الخروج والدخول لحساب التخزين، راجع أهداف قابلية التوسع والأداء لحسابات التخزين القياسية.
يوضح المخطط التالي كيفية زيادة النطاق الترددي عند إضافة المزيد من العملاء. في هذا المخطط، عميل هو جهاز ظاهري (VM) ولديه حساب تخزين v2 للأغراض العامة القياسية.
يظهر المخطط التالي هذا التأثير نفسه عند تطبيقه على حساب تخزين كتلة كائن ثنائي كبير الحجم ممتاز.
استخدام حسابات تخزين كتلة كائن ثنائي كبير الحجم المميزة للتطبيقات الصغيرة الحجم
لا يمكن توسيع نطاق كافة التطبيقات بإضافة المزيد من العملاء. بالنسبة إلى هذه التطبيقات، يوفر حساب تخزين كتلة كائن ثنائي كبير الحجم المميز من Azure معدلات معاملات منخفضة وعالية متناسقة. يمكن أن يصل حساب تخزين كتلة الكائن الثنائي كبير الحجم الممتاز إلى أقصى حد من عرض نطاق ترددي مع عدد أقل من المحادثات النصية والعملاء. على سبيل المثال، مع عميل واحد، يمكن لحساب تخزين كتلة الكائن الثنائي كبير الحجم الممتاز تحقيق عرض نطاق ترددي 2.3x مقارنة بنفس الإعداد المستخدم مع حساب تخزين v2 للأغراض العامة القياسي للأداء.
يوضح كل شريط في المخطط التالي الفرق في عرض النطاق الترددي المحقق بين حسابات التخزين ذات الأداء المتميز والقياسي. مع زيادة عدد العملاء، ينخفض هذا الفرق.
تحسين حجم القراءة قبل القراءة لزيادة معدل نقل قراءة الملفات الكبيرة
تمثل معلمة kernel read_ahead_kb مقدار البيانات الإضافية التي يجب قراءتها بعد تلبية طلب قراءة معين. يمكنك زيادة هذه المعلمة إلى 16 ميغابايت لتحسين معدل نقل قراءة الملفات الكبيرة.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
تجنب الكتابة فوق البيانات بشكل متكرر
يستغرق إكمال عملية الكتابة فوق وقتًا أطول من عملية الكتابة الجديدة. وذلك لأن عملية الكتابة فوق NFS، وخاصة التحرير الجزئي للملف الموضعي، هي مزيج من العديد من عمليات الكائن الثنائي كبير الحجم الأساسية: قراءة، وتعديل، وكتابة. لذلك، فإن التطبيق الذي يتطلب تعديلات متكررة في مكانها غير مناسب لحسابات تخزين الكائن الثنائي كبير الحجم التي تدعم NFS.
نشر ذاكرة التخزين المؤقت لـAzure HPC للتطبيقات الحساسة لزمن الانتقال
قد تتطلب بعض التطبيقات زمن انتقال منخفض بالإضافة إلى معدل نقل عالٍ. يمكنك نشر ذاكرة التخزين المؤقت لـAzure HPC لتحسين زمن الانتقال بشكل كبير. تعرف على المزيد حول زمن الانتقال في تخزين Blob.
زيادة عدد اتصالات TCP
يمكنك استخدام nconnect
خيار التحميل للحصول على أداء قراءة وكتابة إجمالي أعلى من جهاز ظاهري واحد ولكن فقط إذا كانت نواة Linux الخاصة بك تحتوي على دعم Azure nconnect.
nconnect
هو خيار تحميل Linux من جانب العميل يسمح لك باستخدام اتصالات TCP متعددة بين العميل ونقطة نهاية خدمة Blob. يمكنك استخدام الخيار في nconnect
أمر التحميل لتحديد عدد اتصالات TCP التي تريد إنشاؤها (على سبيل المثال: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain
).
هام
بينما تدعم أحدث توزيعات Linux nconnect بشكل كامل، يجب عليك استخدام هذا الخيار فقط إذا كانت النواة الخاصة بك تحتوي على دعم Azure nconnect.
nconnect
سيؤدي استخدام خيار التحميل بدون دعم Azure nconnect إلى تقليل معدل النقل، والتسبب في مهلات متعددة، والتسبب في عمل أوامر مثل READDIR
و READIRPLUS
بشكل غير صحيح.
يتوفر دعم Azure nconnect مع معظم Kernals Ubuntu الأخيرة التي يمكن استخدامها مع أجهزة Azure الظاهرية. لمعرفة ما إذا كان دعم Azure nconnect متوفرا لنواتك، قم بتشغيل الأمر التالي.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
إذا كان دعم Azure nconnect متوفرا للنواة الخاصة بك، فستطبع Yes
إلى وحدة التحكم. وإلا، 'No
تتم طباعة إلى وحدة التحكم.
إذا كان دعم Azure nconnect متوفرا، فمكنه عن طريق تشغيل الأمر التالي.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
توصيات أخرى بشأن أفضل الممارسات
استخدام VMs مع عرض نطاق تردد شبكة كافٍ.
استخدم نقاط تحميل متعددة عندما تسمح أحمال العمل بذلك.
استخدم أكبر عدد ممكن من مؤشرات الترابط.
استخدم أحجام كتل كبيرة.
قم بإجراء طلبات تخزين من عميل موجود في نفس منطقة حساب التخزين. يمكن لهذا أن يحسن زمن انتقال الشبكة.
الخطوات التالية
لمعرفة المزيد حول دعم NFS 3.0 لتخزين Azure Blob، راجع دعم بروتوكول للنظام ملفات الشبكة 3.0 (NFS) لتخزين Azure Blob.
للبدء، راجع تخزين Mount Blob باستخدام بروتوكول نظام ملفات الشبكة 3.0 (NFS).