ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
ארתיום ת.הצטרפות: 15/07/2005 · הודעות: 4433 ·
 

הודעה פורסם: 02/06/2011 - 18:37
נושא ההודעה: מניעה מתהליך לזלול את כל הזכרון של המחשב

לעתים תוך כדי פיתוח (במיוחד בכלים כמו Matlab או Octave) קל מאוד ליצור מצב (בטעות) שהתכנה תצרך יותר מידי זיכרון. למשל ב־matlab מספיק לכתוב zeros(n)‎ במקום zeros(1,n)‎ כשרוצים וליצור מטריצה בגודל n על n במקום וקטור בגודל n.

כדי למנוע מצב לא נעים בו המחשב נתקע בגלל matlab או octave אכלו את כל הזכרון הפנוי אפשר להגדיר מגבלה על זכרון וירטואלי לפני שמריצים אותם בעזרת פקודת ulimit:

למשל: להגביל את זכרון ל־2G:

קוד:
$ ulimit -v 2097152
$ octave


זה ימנע מצב בו המחשב תקוע כמעט לחלוטין בגלל טעות קטנה.

_________________
קזית 3 - קנופיקס עברי.
BiDiTeX - תמיכה בכיווניות ל-LaTeX.
CppCMS - פיתוח ל־web ב־++C.

גם לי יש בלוג Neutral
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
avishaiלא בפורום כעת ת.הצטרפות: 26/12/2010 · הודעות: 43 ·
 

הודעה פורסם: 02/06/2011 - 23:15
נושא ההודעה: Re: מניעה מתהליך לזלול את כל הזכרון של המחשב

נכון, אצלי אני מגביל בbashrc גם את מספר התהליכים ואת כמות הזיכרון הרגיל שתוכנה יכולה לצרוך (ulimit -m, ulimit -u)

עוד שיטה שימושית מאוד היא עבודה עם cgroups.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 03/06/2011 - 17:23
נושא ההודעה:

מנושא לאותו נושא...

מה האלטרנטיבה השפוייה לשימוש ב-ulimit s?
אם אני משתמש בתוכנית שיש לה המון threads ה-default של 8 מגה ל-thread הוא מעיק. בינתיים אני מפעיל ulimit -s 2000 וזה מספיק טוב, אבל אני מחפש משהו יותר "תכנותי" מאשר להפעיל פקודת system()‎ באמצע יישום C.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
avishaiלא בפורום כעת ת.הצטרפות: 26/12/2010 · הודעות: 43 ·
 

הודעה פורסם: 03/06/2011 - 18:02
נושא ההודעה:

elcuco :
מנושא לאותו נושא...

מה האלטרנטיבה השפוייה לשימוש ב-ulimit s?
אם אני משתמש בתוכנית שיש לה המון threads ה-default של 8 מגה ל-thread הוא מעיק. בינתיים אני מפעיל ulimit -s 2000 וזה מספיק טוב, אבל אני מחפש משהו יותר "תכנותי" מאשר להפעיל פקודת system()‎ באמצע יישום C.

אם אתה עובד עם C אז פשוט תקרא לפונקציה ()setrlimit
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 03/06/2011 - 19:59
נושא ההודעה:

זה לא ממש מתאים לי... האמת, מה שאני מחפש זה להגביל את הגודל של ה-stack של על pthread באופן עצמאי.

יש לי threadi-ים שאני יכול להקצות להם 500 bytes, כי הם כולה עושים קוראים וכותבים אל קבצים, ויש לי אחרים שאני צריך להקצות להם יותר (נניח שני מגה). ובנוסף, אני משתמש בספריות שבמקום לעשות callbacks הם מפעילות בעצמן threads מאחורי הגב שלי כדי לבצע עבודה, אז אני מעוניין להגביל גם אותן...

(תוכנות עם ספריות סגורות זה כזה איחסה, אין לך מושג מה באמת קורה...)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
LemonLimeלא בפורום כעת ת.הצטרפות: 04/08/2008 · הודעות: 663 · מיקום: גורגוניה
 

הודעה פורסם: 04/06/2011 - 10:17
נושא ההודעה:

לתרדים שלך אתה יכול לעשות עם pthread_attr_setstack()...
לא נראה לי שיש אפשרות לשלוט על דברים מספריות עצמאיות, אלא אם אתה רוצה להתחיל לדרוס פונקציות של libc...
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. ארתיום
  2. avishai
  3. elcuco
  4. avishai
  5. elcuco
  6. LemonLime