טריקל

מי שניסה להגדיר בלינוקס מנגנון Traffic shaping יודע שלא מדובר במשימה לרכי לבב.
trickle הוא פתרון פשוט, שעובד עבור ישומים שמשתמשים בחיבור TCP בלבד.
טריקל עובד במרחב המשתמש ולא צריך מודולים בקרנל או משהו מורכב אחר.

ככה זה נראה בלי טריקל:

$ wget http://yadan.net/bulk.dat
–22:01:39– http://yadan.net/bulk.dat
=> `bulk.dat'
Resolving yadan.net… 10.0.0.2
Connecting to yadan.net|10.0.0.2|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 20,480,000 (20M) [chemical/x-mopac-input]
14% [=============> ] 6,966,584 11.07M/s

וככה עם:

$ trickle -d 50k wget http://yadan.net/bulk.dat
trickle: Could not reach trickled, working independently: No such file or directory
–22:04:33– http://yadan.net/bulk.dat
=> `bulk.dat.2'
Resolving yadan.net… 10.0.0.2
Connecting to yadan.net|10.0.0.2|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 20,480,000 (20M) [chemical/x-mopac-input]

1% [> ] 278,528 52.48K/s ETA 06:15

Facebook Comments

13 תגובות בנושא “טריקל”

  1. יפה מאוד. ההבחנה בין מרחב משתמש לקרנל ידוע לי, אך לא מוכרת לי. לא ברור לי מה ההבדל מבחינת המשתמש (בתוכנה).

    אני אנצל את הפוסט לשאלה תיאורית:

    אני לא עובד עם נתב, אבל זה מעניין:
    האם לנתבים יש מנגנון שמאפשר למנהל להגדיר שכתובת IP איקס ברשת הפנימית לא תקבל רוחב פס של יותר מ Y1 להעלאה ו- Y2 להורדה?

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

    (אני מציג את השאלה בצורה פשטנית בכוונה, הרי אם יש לך שלושה משתמשים מחוברים ברשת, תרצה, למשל, לתת לכל משתמש מאה אחוזים אם הוא כרגע המשתמש היחיד, או למשל לבטל את ההגבלה אם אינה מפריע למשתמשים אחרים, וכ').

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

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

  3. Wondershaper זה מה שאני משתמש בו בשמחה היום. הורדות כבדות מאוד של טורנטים לא מזיזות לי את הצ'ופצ'יק בסשנים של SSH, שיחות סקייפ וכמובן גלישת HTTP רגילה.

  4. אוקיי עמרי, תודה.

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

  5. סליחה על השאלה הלא קשורה, אבל יש לך קישור לפלאגאין שמציג לך מערכת הפעלה + דפדפן של מי שמגיב?

    שחר

  6. עירא, בזמנו הגדרתי משהו די מתוחכם בעצמי, שעשה חלוקה דינמית בין HTTP לבין כל השאר (ככה שכשמישהו הוריד HTTP הוא קיבל עדיפות, ואחרת העדיפות הלכה לביטטורנט), ובנוסף תעדוף חבילות של SSH.
    אם אתה רוצה להציץ בסקריפט אני אעלה אותו.

  7. נראה לי שאתם סתם לא מבינים בזה, והיום אפשר די בקלות לעשות QOS נוח ופשוט עם הרבה תוכנות לינוקס (וכל ראוטר נורמלי היום תומך בזה).

    לגבי TRICKLE, ממבט מהיר מאוד, זה לא עושה משהו מיוחד בכלל, פשוט עושה PRELOAD לפני שהתוכנה שאתה רוצה מופעלת וחושף לה סט משלו של פקודות I/O כמו READ ו WRITE ודואג לעשות השהייה בין הקריאות השונות כדי להאיט את הקצב (זה גם מסביר למה זה עובד רק על TCP שם יש CONGESTION CONTROL).

סגור לתגובות.