Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

שימוש מתקדם בלינוקס - האצת THROUGHPUT של rsync במחשב ישן

מייקי - 02/05/2018 - 06:48
נושא ההודעה: האצת THROUGHPUT של rsync במחשב ישן
שלום,
בעת טיולים אני משתמש בנייד ישן וחלש (מעבד ATOM N270 התומך רק ב 32 סיביות) להעתקת קבצי תמונות (אני צלם) מקורא כרטיסים לכונן חיצוני (שניהם בחיבורי USB והמחשב תומך רק ב USB 2). המחשב מריץ ארץ' (גרסת 32..) XFCE, ואני משתמש ב rsync לבצוע בגיבוי.

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

ללא שדרוג החומרה, האם יש דרך להאצת קצב הגיבויים (לרב כ 60-100GB ליום), בין אם ע"י הגדלת ה BUFFER שבו rsync עושה שימוש, הגדלת הבלוקים, או שימוש בפקודה אחרת.


תודה מראש

מיקי
Anonymous - 02/05/2018 - 11:06
נושא ההודעה:
אתה בטוח שהבעיה במחשב? כרטיסי זכרון נוטים להיות איטיים (קצב ברירת מחדל של כרטיס SD סטנדרטי הוא 12.5 מב"ש). גם בקורא הייתי חושד לפני המחשב.
מייקי - 02/05/2018 - 21:56
נושא ההודעה: תודה,
תודה, בטוח.

אותם כרטיסים וקורא עובדים הרבה הרבה יותר מהר במחשב חזק...
Anonymous - 03/05/2018 - 08:22
נושא ההודעה: Re: האצת THROUGHPUT של rsync במחשב ישן
מייקי :

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

מיקי


מי שכנראה אשם זה ה usb controller ולא המעבד, תראה אם אתה מחבר hub עם מתח חיצוני אתה מקבל שיפור.
מייקי - 03/05/2018 - 08:51
נושא ההודעה: תודה
תודה, זה רעיון

אבדוק אחרי שאשיג HUB
Anonymous - 04/05/2018 - 15:03
נושא ההודעה:
אני לא הייתי משתמש ב-RSYNC פשוט.
הייתי משתמש בכלים כמו BSYNC או syncthing שמשתמשים ב-HOOK-ים של הקרנל כדי לזהות שינויים ואז לסנכרן אותם.
Anonymous - 04/05/2018 - 20:49
נושא ההודעה:
אני לא יודע לאיזהbsync התכוונת. החיפוש שלי העלה תוצאה רלוונטית אחת (bdirectional sync) שמשתמשת ב־rsync.

לא ברור לי למה הכוונה בהוק של הקרנל: אם אני מבית נכון, לא מדובר על איתור השינויים וסנכרון בזמן עדכון הקבצים. במקרה הזה משהו שמבוסס על inotify ושות’ היה מועיל. אבל כאן השינויים נעשים מראש במכשיר אחר שכותב לכרטיס הזכרון.

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

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

לעניין rsync: כשהוא מעתיק,הוא משווה בין תוכן הקובץ במקור לתוכן הקובץ ביעד ומנסה להעתיק ביעילות רק את השינויים. אם הגישה לקובצי המקור איטית יחסית, שווה לנסות להשתמש באפשרות ‎-W כדי לנסות להימנע מכך. אולי זה יעזור. יכול להיות שיש דרכים נוספות להימנע מקריאות מיותרות של קובצי מקור.
Anonymous - 04/05/2018 - 20:56
נושא ההודעה:
הזכרת את האפשרות של שימוש בתוכנה אחרת. rsync עושה יותר מתוכנות אחרות. אם אתה חושד בעודפים של מה שהוא עושה, לא יזיק לנסות משהו יותר פשוט, ולו לשם ההשוואה.

צור (ידנית או בעזרת find - החדשים יותר? או חיסור רשימות) את רשימת הקבצים שאתה צריך להעתיק והעתק אותם בפקודת cp אחת. השווה את הזמנים לזמן הפעולה המקבילה של rsync. תזכורת למי שבמקרה שכח: הדרך הפשוטה למדוד את זמן פעולתה של פקודה: time.

חשוב לחזור על המדידה (הן של cp והן של rsync) מספר פעמים בגלל ההשפעה של חוצצים וכדומה.
מייקי - 05/05/2018 - 14:03
נושא ההודעה: תודה
תודה לכולם על ההצעות המענינות

אבדוק
כל הזמנים הם GMT + 2 שעות