אופטימיזציה של גישת לקוח NFS ב-Linux לעומסי עבודה של אוטומציה של עיצוב אלקטרוני

דף זה מתאר כיצד למטב את גישת הלקוח של NFS ב-Linux עבור עומסי עבודה של אוטומציה של תכנון אלקטרוני (EDA). מסמך זה מיועד למנהלי אחסון, אדריכלי ענן ומהנדסי מערכת האחראים על הגדרת צמתי מחשוב לינוקס וניהול סביבות EDA בעלות ביצועים גבוהים ב- Google Cloud.

שיטות מומלצות לשימוש בלקוח

צמתי לינוקס ומכונות וירטואליות אינטראקטיביות טעינו אמצעי אחסון של NetApp דרך NFS. כוונון לקוח אינו מגדיל את מגבלות התפוקה של אמצעי האחסון, אך הוא מסייע במניעת סערות מטא-דאטה, עומס יתר על חריצים בנקודת קצה אחסון אחת והתנהגות קריאה רציפה לקויה בספריות גדולות.

הגדר את הלקוחות לפי הסדר הבא:

  1. מקביליות של הליבה (לפני הרכבה): מקביליות של NFS בלינוקס

    עבור תמונות חישוב של Cluster Toolkit ו-Slurm, יש לכלול הגדרות טבלת חריצים בתמונת החישוב או בסקריפטי האתחול לפני הטעינה הראשונה.

  2. אפשרויות הרכבה (במצב ההרכבה): אפשרויות הרכבה של NFS בלינוקס

  3. קריאה מראש (לאחר הרכבה, אופציונלי): קריאה מראש של NFS ב-Linux

למידע נוסף על אופטימיזציה של לקוחות NFS, ראו אופטימיזציה של לקוחות NFS של לינוקס עבור אמצעי אחסון של NetApp.

לפקודות הרכבה ומדיניות ייצוא, ראה חיבור לקוחות NFS. כדי לפזר לקוחות על פני אמצעי אחסון גדולים, ראו חיבור אמצעי אחסון בעלי קיבולת גדולה עם נקודות קצה מרובות של אחסון ודפוסי אדריכלות של EDA.

אופטימיזציה של חוות EDA עם לקוחות רבים

השתמש בהגדרות הבאות עבור פריסות בקנה מידה גדול עם מאות או אלפי צמתי מחשוב שחולקים את אותם פעולות ייצוא. תצורות אלו אינן תואמות להגדרות ביצועים של מכונה וירטואלית יחידה, שבדרך כלל משתמשות באפשרות ההרכבה nconnect=16 על מארח יחיד.

אזור נקודת התחלה מומלצת
פרוטוקול NFSv3 (vers=3) אלא אם כן אתה זקוק לתכונות NFSv4.1
מקביליות (NFSv3) טבלת חריצים נמוכה של RPC לכל לקוח; לדוגמה, 8 ערכים ב-/etc/modprobe.d/sunrpc.conf
חיבורים חיבור TCP אחד לכל לקוח לכל נקודת קצה של אחסון; אין להשתמש ב-nconnect
נפחי קיבולת גדולים טעינה באמצעות DNS או קבוצות סטטיות כדי לפזר צמתים על פני נקודות קצה מרובות של אחסון
גודל ההעברה הגדר את rsize=262144 ואת wsize=262144
אמינות השתמש בהגדרות ברירת המחדל של הקונסולה hard, tcp, timeo=600 או Google Cloud
טעינת מטא-נתונים השתמש ב-noatime בספריות וב-Scratch אם האפליקציה מאפשרת זאת
מנעולים (NFSv3) השתמש ב-nolock אם אינך משתמש במנעולי ייעוץ ו-Network Status Monitor (NSM) אינו מוגדר
קריאה מראש הגדלה עבור ספריות לקריאה בעיקר לאחר הרכבה אם קריאות עוקבות איטיות

אמת את ההגדרה שלך באמצעות הפקודה nfsiostat והמדדים המתוארים בניטור ביצועים תוך כדי הפעלת בדיקת רגרסיה המייצגת את עומס העבודה הטיפוסי שלך בייצור.

אופטימיזציה של לקוחות לפי רמת נתונים

הטבלה הבאה מפרטת את תחומי המיקוד של הלקוחות ואפשרויות הרכבה אופייניות לפי רמת נתונים:

נִדבָּך מיקוד לקוח אפשרויות אופייניות הקשורות להרכבה
ספריות צמצום קריאה רציפה של קבצים גדולים באמצעות GETATTR ומטא-דאטה vers=3, hard, tcp, noatime, rsize ו-wsize; יש לשקול את actimeo=600 ​​ו-nocto רק אם הנתונים ניתנים לקריאה בעיקר וכללי הקוהרנטיות מאפשרים זאת.
לְגַרֵד סופרים רבים; קוהרנטיות חשובה vers=3, hard, tcp ו-noatime; אין להשתמש במטמון אגרסיבי של מאפיינים; יש לשמור על מספר חריצים נמוך לכל צומת
כלים קריאה בעיקר, בדומה לספריות vers=3, hard, tcp, noatime, rsize=262144 ו-wsize=262144; יש לשקול את actimeo=600 ​​ו-nocto רק אם הנתונים הם לקריאה בעיקר וכללי הקוהרנטיות מאפשרים זאת; יש לשמור על אפשרויות הרכבה יציבות בכל תמונת האשכול.
בית קלט/פלט קטן מעורב Google Cloud ברירות מחדל של הקונסולה בדרך כלל מספיקות; השתמשו במשבצות נמוכות אם הבית חולק נקודת קצה עם scratch

השתמש ב-Kerberos ‏ (sec=krb5, krb5i או krb5p) רק כאשר המדיניות דורשת זאת. אין לשלב Kerberos עם nconnect. למידע נוסף, ראו אפשרויות הרכבה של NFS ב-Linux.

המאמרים הבאים