אנא המתינו בזמן שהקובץ מועלה לשרת
פתח תפריט ניווט

קטגוריות ראשיות

מדריך למפתחים: בוסט לביצועים עם WSL2 ו-Docker בווינדוס 11

עובדים עם WSL2 ו-Docker על Windows 11 ומרגישים שהמחשב מגרד? המדריך המלא לאופטימיזציה שיחסוך לכם זיכרון, יאיץ את זמני ה-build ויחזיר לכם את השפיות.
זמן אספקה: 7 ימים , קיימת אפשרות לאיסוף עצמי
למה לקוחות קונים אצלנו:
  • אפשרות לעד 12 תשלומים (ועד 3 תשלומים ללא ריבית) 
  • קניה מאובטחת ושירות לקוחות מעולה 
קניה בטוחה

מידע נוסף

הקדמה: למה המחשב שלי נחנק?

אם אתם מפתחים בסביבת ווינדוס 11, סביר להניח שאתם כבר מכירים ואוהבים את WSL2 (Windows Subsystem for Linux 2). הכלי המדהים הזה מאפשר לנו להריץ סביבת לינוקס מלאה ישירות על ווינדוס, בלי כאב הראש של Dual Boot או מכונות וירטואליות מסורתיות. תוסיפו לזה את Docker Desktop, והנה לכם סט אפ פיתוח מודרני ועוצמתי. אבל... יש קאץ'.

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

שלב 1: ריסון החיה — הגדרת קובץ .wslconfig

כברירת מחדל, WSL2 מרשה לעצמו להשתמש בכמות נדיבה מאוד מהמשאבים של המחשב שלכם. זה נחמד כשהוא צריך את זה, אבל פחות נחמד כשהוא תופס 80% מהזיכרון רק כי "אולי הוא יצטרך". הפתרון הוא ליצור קובץ תצורה גלובלי שיגדיר לו גבולות גזרה ברורים.

פתחו את סייר הקבצים ונווטו לתיקיית המשתמש שלכם. הדרך הקלה להגיע לשם היא להקליד %USERPROFILE% בשורת הכתובת וללחוץ אנטר. בתוך התיקייה הזו, צרו קובץ חדש בשם .wslconfig (שימו לב לנקודה בהתחלה). פתחו אותו עם כל עורך טקסט (אפילו Notepad יעבוד) והדביקו את התוכן הבא:

[wsl2] memory=8GB # הגבילו את ה-RAM ל-8GB, שנו לפי הצורך processors=4 # הגבילו את מספר המעבדים ל-4, שנו לפי המחשב שלכם swap=2GB # הגדירו קובץ SWAP localhostForwarding=true # מאפשר גישה ל-localhost בקלות בין ווינדוס ללינוקס

מה בעצם הגדרנו פה?

  • memory: זו ההגדרה החשובה ביותר. היא קובעת את כמות ה-RAM המקסימלית שהמכונה הווירטואלית של WSL2 תוכל לצרוך. אם יש לכם 16GB RAM במחשב, הגדרה של 6GB-8GB היא נקודת פתיחה טובה. אם יש לכם 32GB, אתם יכולים להיות נדיבים יותר.
  • processors: מגביל את מספר הליבות שה-WSL יכול להשתמש בהן. אם יש לכם מעבד עם 8 ליבות, הגדרה של 4-6 תשאיר מספיק כוח לווינדוס עצמה ותמנע מהמחשב להרגיש איטי.

אחרי ששמרתם את הקובץ, חשוב מאוד להפעיל מחדש את WSL כדי שההגדרות ייכנסו לתוקף. פתחו PowerShell או CMD והקלידו את הפקודה: wsl --shutdown. בפעם הבאה שתפתחו טרמינל של לינוקס, הוא יופעל עם ההגדרות החדשות.

שלב 2: סנכרון עם דוקר — Docker's Resource Management

Docker Desktop בגרסאותיו האחרונות משתמש ב-WSL2 כמנוע ברירת מחדל. זה אומר שההגדרות בקובץ ה-.wslconfig שיצרנו הן בעצם "גג עליון" שגם דוקר כפוף אליו. דוקר לא יכול לצרוך יותר זיכרון או מעבדים ממה שהקצבתם ל-WSL2 כולו.

פתחו את הגדרות Docker Desktop, לכו ללשונית Resources > WSL Integration. ודאו שהאינטגרציה עם הפצת הלינוקס שלכם מופעלת. אין צורך לשנות את הגדרות הזיכרון והמעבד בתוך דוקר עצמו, כיוון שההגדרה הגלובלית ב-.wslconfig כבר מטפלת בזה בצורה יעילה יותר.

שלב 3: עקב אכילס — ביצועי דיסק ואחסון קבצים

כאן נמצא אחד הגורמים המשמעותיים ביותר לאיטיות שחווים מפתחים. חשוב להבין את הארכיטקטורה: ל-WSL2 יש מערכת קבצים משלו (בפורמט ext4 של לינוקס) שפועלת בתוך דיסק וירטואלי (קובץ vhdx). כשאתם ניגשים לקבצים שנמצאים על מערכת הקבצים של ווינדוס (למשל, ב-/mnt/c/Users/YourUser/Projects), כל קריאה וכתיבה עוברת שכבת תרגום שמאטה את התהליך באופן דרמטי.

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

במקום לעשות git clone לפרויקט בתיקיית המסמכים שלכם בווינדוס, פתחו את הטרמינל של WSL, נווטו לתיקיית הבית (עם הפקודה cd ~) ושם תנהלו את הפרויקטים שלכם (למשל, בתוך תיקיית ~/projects).

"אבל איך אני אערוך את הקבצים בנוחות?" אתם שואלים? פשוט מאוד! השתמשו ב-Visual Studio Code עם התוסף הרשמי "Remote - WSL". הוא מאפשר לכם לפתוח תיקיות מתוך סביבת הלינוקס ישירות בעורך הקוד, כאילו הן היו תיקיות מקומיות בווינדוס. כל הפעולות - חיפוש, הרצת טרמינל, דיבאגינג - ירוצו במהירות שיא כי הן מתבצעות ישירות על מערכת הקבצים של לינוקס.

בונוס: ניקיון אביב לדוקר

עם הזמן, דוקר נוטה לצבור המון "זבל" - אימג'ים ישנים, קונטיינרים שעצרתם, ו-volumes מיותמים. כל אלה תופסים מקום יקר על ה-SSD שלכם. מומלץ להריץ מדי פעם את פקודות הניקיון הבאות בטרמינל:

  • docker system prune -a: מוחקת את כל הקונטיינרים, הרשתות והאימג'ים שלא בשימוש. השתמשו בזהירות!
  • docker volume prune: מוחקת volumes שלא מקושרים לאף קונטיינר.

סיכום

סביבת פיתוח מהירה ויציבה היא לא מותרות, היא הכרח. באמצעות הגדרת גבולות ברורים ב-.wslconfig, הבנת מיקום הקבצים הנכון, ושימוש בכלים כמו VS Code Remote, תוכלו להפוך את חווית הפיתוח שלכם על Windows 11 עם WSL2 ו-Docker לחלקה ופרודוקטיבית הרבה יותר. אז קדימה, תנו למחשב שלכם לנשום ותחזרו להתמקד במה שחשוב באמת - לכתוב קוד מעולה.


נכתב על ידי צוות המומחים של אלוף המחשבים.

תודה! נוספתם לרשימת ההמתנה
משהו השתבש, אנא נסו שוב מאוחר יותר
נא למלא פרטים בשדות המתאימים
השאירו פרטים ונעדכן אתכם כשהמוצר יחזור למלאי