ניהול תשתיות והקשר בין מפתחים לתשתית

יום שלישי, מאי 21, 2013

גדי מאיר, האיש וה-BSOD, כתב על כלים של Microsoft שנועד ליצור קשר בין צוותי הפיתוח  לבין אנשי התשתיות שתפקידם לדאוג שהאפליקציה אכן תעבוד ולא תתעופף לה. בתור מי שעיקר עיסוקו הוא איתור בעיות הוא מן הסתם נתקל בבעיה הנפוצה הזו. בתור מי שנמצא לעיתים משני צידי המתרס (בחלק מהרכיבים מעורב גם בטיפול בתשתית ובאחרים – פשוט מנחה את איש התשתיות מה לעשות), אני חושב שיש נקודה אחת פה שחסרה בהרבה ארגונים: המפתח חייב לדעת מה קורה בריצה של האתר שלו, ולא רק ב-Visual Studio וב-IIS Express המקומי שלו מפתח צריך לדעת (גם אם...
תגובה אחת

שרת קבצים ווידאו: כך חוסכים I/O יקר מפז בעשר דקות עבודה

יום שלישי, נובמבר 6, 2012

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

המצגת מהמפגש ביום שלישי: ביצועים ב-Web

יום שישי, אוגוסט 17, 2012

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

למה אני לא כותב קוד "יפה" ?

יום שבת, אוגוסט 4, 2012

כל פעם שאני קורא על שיטה חדשה לעשות קוד "יפה" ונפלא. אני בעיקר חושב על ההשלכות שלה על.במערכת שמחזיקה אלפי לקוחות (ולעיתים יותר) על שרתים בינוניים ומטה (ובעבר, גם על מה שמכונה בלשון העם "גרוטאות"), אנחנו כל הזמן חייבים לחשוב על המשמעות של כל פעולה שאנחנו עושים, מה המחיר שלה לעומת התועלת. ערוץ 7 למשל, עד היום, למעשה לא משתמש ב-ORM בכלל!. במערכת שבה כל שאילתת SQL קצת כבדה מדי נשלחת לחינוך מחדש - אין אפשרות לתת למערכת צד-שלישי לייצר כאלה בשבילנו. כל חתיכת I/O היא משאב יקר מפז.  נהנתי מכל שורה ! http://jhovgaard.net/how-i-stopped-writing-awesome-code
תגיות: , , , ,
אין תגובות

דפים כמעט סטטיים זוחלים. למה ?

יום שישי, נובמבר 6, 2009

אחת התופעות שאני נתקל בה לפעמים אלו בעלי אתרים שמודעים לבעיות הביצועים של האתר שלהם, ולכן בדף הבית (או דפים מרכזיים) הם מבצעים אופטימיזציה ובודקים כל שלב בנפרד. מנהל של אתר אחד שראיתי אפילו בנה דף שמכיל רק Includeים לדפים (סטטים) אחרים אותם היה מעדכן לפי דרישה. אבל עדיין דף הבית שלו זחל, ואני נשאלתי – למה! התחברתי לשרת שלו והרצתי DebugDiag, שאימת את ההשערה שלי. הסתבר כי הרבה מאוד בקשות שנתקעו למשך שניות אחדות, כלל לא הגיעו למנגנון של ASP ונתקעו הרבה קודם. אז למה? ל-ASP ול-ASP.net יש בתוך Application Pool בסך הכל 25...
4 תגובות

100% CPU ב-IIS

יום שני, ספטמבר 28, 2009

English: how to find what can make your IIS server 100% crazy, and fix it. debugging high CPU usage by w3wp.exe with Microsoft's IIS debugging tools. לעיתים נתקלים בשרת ש"נחנק" ומגיע ל-100% ניצולת מעבד. כמה רעיונות בסיסיים להתחלת פיתרון בבעיה.במקרה כזה דפים מגיבים באיטיות, ומדי פעם נתקעים עם שגיאות כגון Service Unavailable או Server too busy. 1. מה חונק את השרת?Ctrl + Alt + Esc יפעיל את מנהל המשימות. נמיין את "תהליכים" ונחפש מי מתעלל בשרת. בדרך כלל זה יהיה w3wp.exe, (ב-IIS5 זה היה אאל"ט dllhost.exe), אבל ממש לא תמיד.זה יכול להיות גם מסד נתונים (mysqlnt.exe או sqlsrvr.exe ב-MySQL או SQL Server...
אין תגובות

Service Unavailable, וסתם Timeoutים בסביבת ייצור

יום שלישי, יוני 2, 2009

English: Simple ways to find and destroy IIS hangs/timeout's. אחת התופעות המרגיזות ביותר היא אתר שעובד כהלכה, ללא עומסים חריגים נראים לעין ופתאום זורק שגיאות בסגנון של Server Unavailable, Server too Busy וכו'.כשמתחברים לשרת, מגלים את אחד משני הדברים: 1. w3wp צורך 100% CPU או קרוב לזה. לחילופין - 100% ממעבד בודד (למשל 50% במקרה של שני מעבדים לוגיים, 25 בארבעה וכו') 2. הכל "מת".מספר ה-Requestים המעובדים עומד על אפס או קרוב לזה, ה-CPU "ישן" על קרוב ל-0% אבל השרת לא מתפקד. כמובן שישנן עוד סיבות רבות שגורמות לתקלות מהסוג הזה, אבל אני אתחיל בנפוצות שבהן.   100% CPU...
3 תגובות