איכשהו משהו נשבר בבלוג למרות שלא שיניתי כלום.
תיקנתי את זה, אם יש עדיין בעיות ספרו לי (אפשר גם במייל – omry ay yadan dot net).
קצרים
השרת שמריץ את הבלוג ואת firestats.cc היה למטה במשך 24 שעות.
הבעיה התחילה בנסיון לטפל במהירות בחור האבטחה שהתגלה בלינוקס 2.6 שמאפשר למשתמשים מקומיים רגילים לקבל בקלות גישת root בלינוקס 2.6 שקומפל עם מודול מסויים (שכלול כברירת מחדל בהרבה מאוד הפצות).
הנסיון הסתבך, והיה צריך שאחד ממנהלי המערכת יגיע פיזית למתקן האירוח של השרת, ובגלל זה לקח כל כך הרבה זמן לפתור את הבעיה.
קניתי אוטו, פיג'ו 206 XS, שלוש דלתות עם גג שמש.
כדי להשלים את חויית הנסיעה, הזמנתי נגן MP3 לרכב שתומך בUSB, כניסת Aux דיבורית Bluetooth ועוד.
מקווה לא להתאכזב כשהוא יגיע.
בהמשך לשאלון הדיוידי מהפוסט הקודם, החלטתי לשמוע בעצת העם ולוותר על דיוידי.
במקום, הזמנתי צורב DVD של Asus (הפרש המחירים מכונן DVD רגיל הוא כל כך נמוך שאין שום הגיון בקניית כונן שלא מסוגל לצרוב).
על הדרך הזמנתי עוד כונן קשיח, Seagate Barracuda 500GB SATA II ST3500320AS 32MB ב600 שקל (שזה קצת יותר משקל לג'יגה, מי היה מאמין).
הפוסט המשעשע על הנוסחא לשלום עם איראן מעורר עניין מחודש פה ופה.
נראה שיש גם כמה תגובות חדשות מאיראן 🙂
עברית או אנגלית?
הבלוג הזה טכני ברובו, ויקרא על ידי יותר אנשים אם הוא יהיה כתוב באנגלית.
השאלה היא מה דעתכם בנדון, קוראי היקרים מפז.
(תסלחו לי על העימוד של הסקר, יכול להיות שהוא יהיה לא רלוונטי בקרוב 🙂 )
![Loading ... Loading ...](https://firefang.net/blog/wp-content/plugins/wp-polls/images/loading.gif)
שרת חדש
אם אתם קוראים את זה, הבלוג רץ על שרת חדש.
האח, הידד!
רובכם שמתם לב לריבוי התקלות בבלוג לאחרונה:
התקלות נבעו מעומס מוגבר על השרת הישן של hcoop, שעדיין משרת נאמנה את רוב משתמשי hcoop.
במהלך החודשים האחרונים, מנהלי המערכת בנו חווה חדשה שמאוכסנת בPeer1, שהוא אחד מספקי האכסון האיכותיים ביותר.
החווה מכילה מספר שרתים, ותוכל לשרת כמות הרבה יותר גדולה של משתמשים ממה שהמערכת הישנה סיפקה.
בשבוע האחרון התחלתי להעביר את האתרים שלי לחווה החדשה, והיום סיימתי ושיניתי את הגדרת הDNS בgodaddy שתצביע לשרתי הDNS החדשים. (מה שכבר נכנס לתוקף כשאתם קוראים את זה).
המעבר כלל העברה של firefang.net, שכולל שני בלוגים (הבלוג הזה והבלוג באנגלית), וכמובן של firestats.cc, שהוא סיפור הרבה יותר מורכב:
firestats.cc מריץ trac.
demo.firestats.cc מריץ בלוג וורדפרס, וכן התקנת הדגמה של FireStats.
blog.firestats.cc מריץ את הבלוג של FireStats.
svn.firestats.cc מריץ שרת apache וsvn.
files.firestats.cc מכיל את הקבצים להורדה של FireStats.
והרשימה ממשיכה וממשיכה.
בקרוב מאוד תפתח מחדשה ההרשמה לHCOOP (היא נסגרה כדי לאפשר למנהלי הרשת להתרכז בהכנה של החווה החדשה), ותתחיל הגירה המונית של המשתמשים מהשרת הישן אל החווה החדשה.
שנתיים
הבלוג בן שנתיים, פוסט ראשון היה בדיוק היום ב2005.
מתנות נא לשלוח אלי באימייל.
מה היינו עושים בלי פוסטים מתוזמנים?
חבל שאי אפשר לאחל למישהו אמיתי מזל טוב ככה, או שאולי כן… הממ.
פוסטים שלמים בRSS
החלטתי לשחרר פוסטים שלמים בRSS, לא חושב שיש טעם בלמשוך אנשים באף לפה. מי שרוצה לקרוא יכול לקרוא גם בקורא רסיסים.
זו הזדמנות מעניינת לראות מה זה יעשה לרמת הכניסות פה, שנעה כרגע בין 150 ל200 מבקרים בימים רגילים.
ערכה חדשה – מנדיגו
למי שלא שם לב (אהם), פיירפנג קיבל בגדים חדשים.
הערכה נקראת מנדיגו, ואיך שראיתי אותה אמרתי וואלה.
פניתי למפתח, טום, כדי לברר אם הוא רוצה תמיכה בעברית, הוא רצה, נתתי לו קובץ תרגום ואחרי כמה סבבים של בדיקות עידכונים ותיקונים הערכה די מוכנה.
תודה לאח"י דקר על העזרה בתיקון תחלואי העברית ולטום שהסכים להשקיע זמן בתמיכה בעמי המזרח התיכון.
הערכה החדשה יותר קלה על המחשב שלכם, ויותר ידידותית לדפדפנים עויינים כמו אקספלורר.
אני אשמח לקבל הערות, תגובות ודרישות להחזרת הערכה הקודמת לאלתר (דרישות שיענו במקרה הטוב בבעיטה לראש, ובמקרה הרע בהוספה של Theme switcher שיאפשר לכם לבחור).
כמובן, לא לשכוח שניצלתי את ההזדמנות כדי לשדרג את וורדפרס לגרסא האחרונה, וכן כדי להתקין תוסף שיאפשר לכם לקבל עדכונים בדואר על תגובות לפוסטים שהגבתם אליהם.
הפיד שבער
כמו שהבטחתי, הפסקתי להשתמש בFeedburner, מה שאומר שכל מי שמנוי על הרסס צריך לוודא שהוא מנוי על הפיד הנכון, שהוא:
http://firefang.net/blog/feed/
ולא על הרסס של Feedburner.
טריקל
מי שניסה להגדיר בלינוקס מנגנון 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
בעיות רשת מוזרות
בעיות רשת מוזרות יכולות לחרפן גם את המתכנת/טכנאי הסבלני ביותר.
הנה מספר בעיות רשת מוזרות שנתקלתי בהן לאחרונה, וניתוח מלא של הפתרון והדרך להגיע אליו.
הפוסט טכני, ולא מומלץ לרכי הלבב.
בעיית רשת מוזרה מספר 1:
BattleField 2142, משחק רשת מרובה משתתפים עובד היטב, עד שיום בהיר אחד הוא מפסיק לראות שרתים ברשת.
פניתי לתמיכה של EA, שהציעו להסיר ולהתקין מחדש, תוך מחיקה של כל רמז לספריות נוספות שהמשחק שומר (במילים אחרון, אין להם מושג והם יורים באפלה).
עקבתי אחרי ההוראות, וכמובן שהבעיה לא נפתרה.
בצר לי, הורדתי את WireShark (לשעבר Ethereal), שהוא Network sniffer רב עוצמה, והפעלתי אותו לפני ההפעלה של המשחק.
די בקלות זיהיתי את הבעיה: המשחק שולח בקשת DNS למציאת כתובת הIP של השרת שמחזיק את רשימת השרתים, מקבל שגיאה מהDNS ומתעלם ממנה ומפסיק לנסות בלי למסור הודעת שגיאה למשתמש.
ברגע שהחלפתי את שרת הDNS שלי הבעיה נפתרה.
בעית רשת מוזרה מספר 2:
Call of duty 2, עוד משחק רשת משובח, עובד היטב ברשת המשרדית, עד שיום בהיר אחד הוא מפסיק לראות שרתים אחרים.
במילים אחרות, עמרי לא יכול להצטרף לשרתי המשחק ברשת, ונאלץ לעבוד בעבודה.
לאחר הטחת האשמות סרק ברשת, בסוויץ' במערכת הפעלה ובאלוהים, הפעלתי את WireShark על שני מחשבים, אחד בו אין בעיה, וזה שלי.
לאחר שהפעלתי את המשחק בשניהם, בחנתי את תעבורת הרשת, וגיליתי את הדבר הבא:
המשחק שולח בBroadcast פקטת UDP לכל הרשת כשהוא מחפש שרתים, והשרתים אמורים לענות לו ולמסור לו מידע על עצמם. (כדי לשלוח Broadcast צריך לשלוח את הפקטה לכתובת 255.255.255.255).
עד פה הכל טוב, רק שראיתי משהו מוזר במחשב שלי. במקום לצאת מכתובת הIP הרגילה שלי הוא יצא מכתובת IP אחרת, שבכלל לא נראית כאילו היא ברשת הפנימית שלנו.
מסתבר שהכתובת הנ"ל (192.168.40.1) שייכת למתאם רשת וירטואלי של VMWare, ומסיבה עלומה המשחק שלח את חבילת הUDP כאשר הכתובת של המתאם היא כתובת המקור של החבילה. השרת ניסה לענות, אבל מכיוון שהכתובת לא ברשת לא קיבלתי את התשובה.
אחרי ביטול של מתאמי הרשת של VMWare הבעיה נפתרה.
בעיית רשת מוזרה מספר 3:
תוכנה שאנחנו מפתחים בעבודה מקבלת זרם של חבילות UDP משרת.
התוכנה עובדת טוב מול שרת אחד, ומאוד לאט מול שרת שני, שני השרתים מריצים את אותה תוכנה בדיוק.
הפעלה של WireShark על השרת והמכונה שמריצה את הלקוח מראה שהשרת שולח את החבילות בקצב הנכון, והחבילות מגיעות למכונת היעד באותו קצב, ובכל זאת לאפליקציית הלקוח החבילות מגיעות מאוד לאט.
הלקוח רץ על WTK, שהוא אמולטור של סביבות ג'אווה של פלאפונים. לWTK יש כלי Profiling פנימי, שמאפשר להגיד איפה האפליקציה משחיתה את זמנה.
הפעלתי את הפרופיילר, והסתבר שהיא משחיתה את מיטב זמנה בפונקציית מערכת בשם getHostByName.
תפקידה של הפונקציה הזו הוא בעצם לקבל כתובת שמית ולהמיר אותה לכתובת IP מספרית, במילים אחרות – לקרוא לDNS.
מסיבה לא ברורה הפונקציה לקחה הרבה זמן, ומסיבה לא ברורה היא נקראה עבוד כל חבילת UDP שהגיעה לאמולטור (באג באמולטור לדעתי, אבל שיהיה).
לחלונות יש קובץ בשם hosts בספריית החלונות, שדומה מאוד לאותו קובץ במערכות יוניקס (זה מראה על הקשר בין חלונות ליוניקסים), הקובץ משמש להוספה ידנית של רשומות לDNS המקומי.
ברגע שהוספתי את כתובת הIP של השרת לקובץ ההוסטים הבעיה נפתרה.
עד כאן פינתנו, בעיות רשת מוזרות.