أفضل ممارسات القراءة المسبقة ل Linux NFS لملفات Azure NetApp
تساعدك هذه المقالة على فهم أفضل ممارسات ذاكرة التخزين المؤقت لنظام الملفات لملفات Azure NetApp.
تطلب قراءة NFS بشكل متوقع الكتل من ملف قبل طلبات الإدخال/الإخراج بواسطة التطبيق. تم تصميمه لتحسين معدل نقل القراءة التسلسلي للعميل. حتى وقت قريب، تعين جميع توزيعات Linux الحديثة قيمة القراءة المسبقة لتكون مكافئة 15 مرة أنظمة الملفات المثبتة rsize
.
يعرض الجدول التالي قيم القراءة المسبقة الافتراضية لكل خيار تحميل معين rsize
.
نظام الملفات المحملة rsize |
حظر القراءة المسبقة |
---|---|
64 كيبيبايت | 960 كيبيبايت |
256 كيبيبايت | 3,840 كيبيبايت |
1024 كيبيبايت | 360 15 كيبيبايت |
قدم RHEL 8.3 وUbuntu 18.04 تغييرات قد تؤثر سلبا على أداء القراءة التسلسلي للعميل. على عكس الإصدارات السابقة، تعين هذه التوزيعات القراءة المسبقة إلى 128 KiB افتراضيا بغض النظر عن rsize
خيار التحميل المستخدم. الترقية من الإصدارات ذات القيمة الأكبر للقراءة المسبقة إلى الإصدارات ذات التجربة الافتراضية 128-KiB تقل في أداء القراءة التسلسلي. ومع ذلك، قد يتم ضبط قيم القراءة المسبقة لأعلى بشكل ديناميكي ومستمر. على سبيل المثال، عثر الاختبار مع SAS GRID على القيمة المثلى للقراءة 15360-KiB مقارنة ب 3840 KiB و960 KiB و128 KiB. لم يتم إجراء اختبارات كافية تتجاوز 15,360 كيبيبايت لتحديد التأثير الإيجابي أو السلبي.
يعرض الجدول التالي قيم القراءة المسبقة الافتراضية لكل توزيع متوفر حاليا.
التوزيع | الإصدار | حظر القراءة المسبقة |
---|---|---|
RHEL | 8.3 | 128 كيبيبايت |
RHEL | 7.X، 8.0، 8.1، 8.2 | 15 × rsize |
SLES | 12.X – 15SP2 على الأقل | 15 × rsize |
Ubuntu | 18.04 – على الأقل 20.04 | 128 كيبيبايت |
Ubuntu | 16.04 | 15 × rsize |
Debian | ما يصل إلى 10 على الأقل | 15 × rsize |
كيفية العمل مع القراءة المسبقة لكل نظام ملفات NFS
يتم تعريف القراءة المسبقة ل NFS عند نقطة التحميل لنظام ملفات NFS. يمكن عرض الإعداد الافتراضي وتعيينه بشكل ديناميكي ومستمر. للراحة، تم توفير البرنامج النصي bash التالي المكتوب بواسطة Red Hat لعرض أو إعداد القراءة المسبقة ديناميكيا لنظام ملفات NFS المقدار.
يمكن تعريف القراءة المسبقة إما ديناميكيا لكل تحميل NFS باستخدام البرنامج النصي التالي أو باستمرار باستخدام udev
القواعد كما هو موضح في هذا القسم. لعرض أو تعيين القراءة المسبقة لنظام ملفات NFS مثبت، يمكنك حفظ البرنامج النصي التالي كملف bash، وتعديل أذونات الملف لجعله قابلا للتنفيذ (chmod 544 readahead.sh
)، وتشغيله كما هو موضح.
كيفية إظهار قيم القراءة المسبقة أو تعيينها
لإظهار قيمة القراءة المسبقة الحالية (القيمة التي تم إرجاعها في KiB)، قم بتشغيل الأمر التالي:
./readahead.sh show <mount-point>
لتعيين قيمة جديدة للقراءة المسبقة، قم بتشغيل الأمر التالي:
./readahead.sh set <mount-point> [read-ahead-kb]
مثال
#!/bin/bash
# set | show readahead for a specific mount point
# Useful for things like NFS and if you do not know / care about the backing device
#
# To the extent possible under law, Red Hat, Inc. has dedicated all copyright
# to this software to the public domain worldwide, pursuant to the
# CC0 Public Domain Dedication. This software is distributed without any warranty.
# For more information, see the [CC0 1.0 Public Domain Dedication](http://creativecommons.org/publicdomain/zero/1.0/).
E_BADARGS=22
function myusage() {
echo "Usage: `basename $0` set|show <mount-point> [read-ahead-kb]"
}
if [ $# -gt 3 -o $# -lt 2 ]; then
myusage
exit $E_BADARGS
fi
MNT=${2%/}
BDEV=$(grep $MNT /proc/self/mountinfo | awk '{ print $3 }')
if [ $# -eq 3 -a $1 == "set" ]; then
echo $3 > /sys/class/bdi/$BDEV/read_ahead_kb
elif [ $# -eq 2 -a $1 == "show" ]; then
echo "$MNT $BDEV /sys/class/bdi/$BDEV/read_ahead_kb = "$(cat /sys/class/bdi/$BDEV/read_ahead_kb)
else
myusage
exit $E_BADARGS
fi
كيفية تعيين القراءة المسبقة باستمرار لتركيبات NFS
لتعيين القراءة المسبقة باستمرار لتركيب NFS، udev
يمكن كتابة القواعد على النحو التالي:
إنشاء واختبار
/etc/udev/rules.d/99-nfs.rules
:SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="<absolute_path>/awk -v bdi=$kernel 'BEGIN{ret=1} {if ($4 == bdi) {ret=0}} END{exit ret}' /proc/fs/nfsfs/volumes", ATTR{read_ahead_kb}="15380"
udev
تطبيق القاعدة:sudo udevadm control --reload
الخطوات التالية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ