הנתב הקודם – OfficeConnect של 3COM אף פעם לא היה טוב במיוחד.
החל מפינגים לא יציבים כאשר אני מתחבר דרך הנתב, וכלה במצב קטטוני עד כדי חוסר תקשורת בין שני המחשבים שמחוברים אליו שדורש אתחול של הנתב.
החלטתי להחליף את העסק, ובהתחלה חשבתי ללכת על נתב אולטימטיבי שיתן לי גם תקשורת אלחוטית מהירה, גם תקשורת מקומית מהירה וגם יכולת חיוג בכבלים ובADSL.
כשלא מצאתי משהו טוב מספיק שממש עשה לי את זה, החלטתי לשנות את האסטרגיה.
שינוי 1:
החלפת התשתית התקשורת שלי מכבלים לADSL.
על הדרך שדרגתי את חבילת התקשורת שלי מ1500/500 ל8000/800,
המחיר הוא 210 שקל לחודש עם התחייבות לשנה, כ90 שקלים יותר ממה ששילמתי קודם, וקו מהיר בהרבה – ויותר חשוב, יציב מאוד בניגוד לתשתית של הכבלים.
כחלק מהעסקה, ביקשתי מבזק לספק נתב. הם סיפקו נתב של ROTAL, לא פאר היצירה אבל מספיק טוב לצרכי התקשורת שלי מבחינת תקשורת אלחוטית ותקשורת אל האינטרנט.
הנתב יציב ולא נתקע כמו ה3COM המחורבן שהיה לי קודם, מה שפתר את הבעיה הזו, אבל לא נתן לי תקשורת יותר מהירה בין המחשבים.
שינוי 2:
כדי לפתור את הבעיה הזו, הזמנתי לי נתב ג'יגביט של Edimax, ושני כבלי רשת CAT6 שמתאימים לתקשורת הזו.
היום הם הגיעו, וחיש מהר התקנתי את הסוויץ', חיברתי אליו את המחשבים ובדקתי את המהירות:
קודם כל העתקת קובץ בין שני המחשבים. היה לי ברור שאני אתקע במגבלה של מהירות הכוננים הקשיחים שהיא נמוכה הרבה יותר מאשר ג'יגביט לשניה.
יצרתי קובץ של 1 ג'יגה, מלא לחלוטין באפסים עם
[code]
dd if=/dev/zero of=bigfile bs=1024 count=1000000
[/code]
שמתי אותו בספריה שחשופה בפרוטוקול HTTP, והורדתי עם WGET:
[code]
wget http://yadan.net/omry/bigfile
–2008-07-24 19:33:13– http://yadan.net/omry/bigfile
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: 1024000000 (977M) [text/plain]
Saving to: `bigfile'
100%[==============================================>] 1,024,000,000
39.6M/s in 25s
2008-07-24 19:33:38 (39.1 MB/s) – `bigfile' saved [1024000000/1024000000]
[/code]
כצפוי, לא מהירות שמרעידה את האדמה, אבל פי 3.5 יותר טוב ממה שנקבל ברשת 100 מגהביט בתאוריה (במעשי זה יותר מהיר פי 4-5).
לבדיקה הבאה רציתי מה המגבלה האמיתית של התשתית, בניטרול גורמים מציקים כמו מהירות הקריאה/הכתיבה של הכוננים.
חיפשתי קצת במאגר החבילות של דביאן, ומצאתי את iperf, תוכנית פשוטה לבדיקת ביצועי רשת.
iperf יודע לבדוק רוחב פס בתקשורת TCP או UDP, והוא עובד בשיטת שרת לקוח:
במחשב אחד מריצים אותו כשרת, במחשב השני כלקוח, ונותנים להם לבדוק את המהירות.
[code]
omry@home:~$ iperf -c 10.0.0.1
————————————————————
Client connecting to 10.0.0.1, TCP port 5001
TCP window size: 16.0 KByte (default)
————————————————————
[ 3] local 10.0.0.2 port 52685 connected with 10.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 940 Mbits/sec
[/code]
הרבה יותר מרשים.
אומנם לא הג'יגביט המובטח, אבל מספיק קרוב בשבילי, במיוחד לאור החומרה הזולה שקניתי לצורך העניין (סוויץ' ב150 שקל, וכבלי רשת של 15 מטר ו3 מטר ב70 ו30 שקל בהתאמה).
מכיוון שווידאו ב1080P הוא די גבולי על המחשב שיש לי בסלון (פנטיום D במהירות 3GHZ), החלטתי לנסות לבדוק איך הרשת סוחבת הזרמת וידאו ב1080P.
כדי לבדוק את זה, התחברתי מהמחשב בסלון אל המחשב בחדר (עם מעבד יותר חזק, Core 2 duo) עם ssh -X, מה שמאפשר לשלוח את הפלט של תוכניות גרפיות מהמחשב בחדר למחשב בסלון.
הפעלתי את mplayer במחשב בחדר על קובץ וידאו ב1080p (בטמן מתחיל), והפלט הוזרם למחשב בסלון.
הווידאו זז חלק לגמרי. אומנם לא שומעים כי הסאונד הולך למחשב הלא נכון, אבל זו בעיה אחרת ואני בטוח שאני אפתור אותה.
מה שלא ברור לי, זה למה בכלל זה עובד:
בהנחה של שכל פיקסל מיוצג ב4 בתים (ARGB), ושיש 25 פריימים לשניה (וכמובן כל בייט הוא 8 בתים), אז:
[code]
1920x1080x4x25x8=1,658,880,000
[/code]
1.6 ג'יגה ביט לשניה.
אפילו אם כל פיקסל הוא רק שלוש בתים (בלי A), ירדנו ל1.2 גיגהביט וזה עדיין לא מספיק.
אז איך בדיוק הסרט זז חלק על רשת של 1 גיגה ביט?
עדכון:
שמתי לב שmplayer מדווח על הפרמטרים המדוייקים של הסרט:
[code]
VIDEO: [avc1] 1920×800 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
1920x800x3x23.976×8=883,851,264
[/code]
שכבר מסתדר מצויין עם מה שראיתי ומדדתי.
לדעתי זה רק נראה לך שזה זז חלק, אבל יש לך פחות פריימים מ25 בפועל.
עדיין עין בלתי מזויינת לא יכולה להגיע להישגים מרשימים..
אני לא בטוח ב-100%, אבל מניח שה-X לא מעביר לך את כל המסך כל פעם מחדש, אלא רק שינויים, מה שכמובן מוריד את הנפח שאתה מעביר. כמו כן, אם תפעיל גם את אפשרות הכיווץ של SSH, אולי תקבל ביצועים טובים יותר (על חשבון עליה בעומס על המעבד).
אנון,
עין בלתי מזויינת מסוגלת לזהות קפיאות בקלות.
ליאור:
לדחוס כ125 מגה בייט בשניה ולפרוס אותם, לא נשמע לי כמו משהו שהמעבד יסחוב תוך כדי פרישה של סרט H264 ברזולוציה הזו.
בכל אופן, תראו את העדכון.
עדיין חסר לי משהו. אם וידאו 1080 הוא גבולי על המחשב, הייתי מצפה שזה לא יעבוד חלק – כי כרטיס הרשת דורש לעצמו זמן CPU. אלא אם זה כרטיס יקר למדי?
עמרי – מתוך סקרנות, המחיר המדובר הוא לתשתית בלבד?
מה שכבד זה הפענוח של הווידאו.
במילים אחרות, להעביר הווידאו מצורה דחוסה בH264 לצורה פרושה של תמונות לא דחוסות שתופסות זכרון בהתאם.
המחיר של לשלוח את התמונות למסך הוא כסף קטן.
כרטיס הרשת בשני המקרים הוא זה שמובנה בלוח האם.
דרור,
לא – זה כולל הכל.
הממם… זה מראה כמה אני לא מוצלח במשא ומתן. אבל טוב לדעת – הגיע הזמן לעוד שיחת טלפון לספק כנראה.
אצלי, אגב, בחיפה, יש יציבות כמעט מוחלטת של חיבור בכבלים (להוציא פעם בחצי שנה-שנה שכנראה שמגיעים לסדר משהו בשכונה ואיכשהו מנתקים לי את החיבור. אבל הטכנאים מגיעים מהר מאוד אלי). כך שלפחות מהצרה הזאת אני פטור.
תבדוק שאתה מעביר jumbo packets.
יפה מאוד עמרי. אני כל פעם מחדש מתפעל מהיכולת שלך לראות את הדברים האלה באופן מערכתי. כלומר, לעשות שינוי ולבדוק את ההשפעה שלו על כלל המערכת באופן מדוד ומדוייק למדי.
דרך אגב, לפחות מבחינת הכבלים, אני לא חושב שצריך להיות הבדל בין כבל זול ליקר, כל עוד הם תקינים פיזית.
ולגבי חיבור ה- ADSL הקודם שהיה לך: שאני אבין: מהירות ההעלאה בחיבור של 1.5 MB היא חצי מגה? כלומר, שליש ולא עשירית?
ובונוס:
אתה _חייב_ לצפות בסירטון הזה:
http://www.youtube.com/watch?v=BcQ7RkyBoBc
אופס, רק עכשיו אני רואה ששידרגת מכבלים ל- ADSL. טוב. אז לפחות דבר אחד הם עושים טוב עם קצב ההעלאה.
דרוש, איך אני בודק?
יונתן, ענק 🙂
אם היה לי רשת gigabit הייתי יודע, אבל כנראה שמתחילים לבדוק במה ה MTU וכו'..