DCSIMG
Cache - מאחורי המסך

מאחורי המסך

משה למפרט, על תכנות מתקדם וביצועים ב-Web.

על הבלוג

עוד חדשות

אתרים שיש לי בהם יד ורגל

Browse by Tags

All Tags » Cache (RSS)
Cache עם Lock מבוסס memcached
בעבר כתבתי על הבעיה הלא מאוד לא נפוצה שנגרמת כאשר משום מה מתבצעת פעולת Flush לחלקים גדולים של ה-Cache. מערכת שביום יום מתמודדת בהצלחה עם העומס ונותנת זמני תגובה מצויינים, מגמגמת ואף קורסת לדקות ארוכות בשעה שה-Cache עליו היא מתבססת או חלקים ממנו קרס. לפני קצת פחות משנתיים כתבתי על פתרון פשוט שמטרתו הייתה למנוע הרצת אותה פעולה מאות אלפי פעמים עד שנכנס ל-Cache אחד העותקים לשימוש בפעמים הבאות. הפיתרון עבד מאוד יפה כל עוד נמצאים באותו שרת, ובאותו Proccess של IIS. גם במקרים שלא, הפעולה צומצמה מאלפים של...
דפים כמעט סטטיים זוחלים. למה ?
אחת התופעות שאני נתקל בה לפעמים אלו בעלי אתרים שמודעים לבעיות הביצועים של האתר שלהם, ולכן בדף הבית (או דפים מרכזיים) הם מבצעים אופטימיזציה ובודקים כל שלב בנפרד. מנהל של אתר אחד שראיתי אפילו בנה דף שמכיל רק Includeים לדפים (סטטים) אחרים אותם היה מעדכן לפי דרישה. אבל עדיין דף הבית שלו זחל, ואני נשאלתי – למה! התחברתי לשרת שלו והרצתי DebugDiag , שאימת את ההשערה שלי. הסתבר כי הרבה מאוד בקשות שנתקעו למשך שניות אחדות, כלל לא הגיעו למנגנון של ASP ונתקעו הרבה קודם. אז למה? ל-ASP ול-ASP.net יש בתוך Application...
Cache עבור שאילתות עדכון
English: How to Caching updates to minimize I/O cost of these operations, for example – counting views on forum message. the solution I provided is to create a table/static variable that holds updates "log" and update the main heavy table with timer. For example – for counting forum message views, I add row to some log table (that I can store in somewhere else, like RAM drive or MySQL Memory table) with timer updates main table and empty the log table for fast access later. ה בעיה: שרת...
בעיות (ופתרונות) בשימוש ב-OutputCache לשיפור ביצועים
English: Some Tips for bypass Query Cache problems. First code: simple QueryCache Second code: Add to admin section on the website, and flush cache for URL Last Code: how to force Proxies/Browsers to not store cached content, and return to origin server. I used this technique for set long-time OutputCache, and clear it manually when I know that content changed. In Hebrew I explain why Query Cache fro long times is bad, and why Cache Dependencies is bad and expensive (especially SQLCacheDependency...
מנגנון ניהול Cache בסיסי
English: Simple Cache management function. how to make cache thinks easier. The function below can check if something is in the cache, and also if other Web request, execute the heavy function using SyncLock. לעיתים עולה הצורך לעבוד בתצורה שבה יש משאב (למשל שאילתת SQL כבדה) שיקר לייצר אותו. הפיתרון הפשוט - שומרים אותו בקאש. Cache("name") = value או שצריך לפי מגבלת תאריך ושעה: Cache.Add(Key, Value, Nothing, Expire, Nothing, Priority, Nothing) אבל כל זה מעצבן כל פעם מחדש. אחד החידושים שיצאו...
פרוקסי הפוך: שיפור ביצועים והורדת Downtime
כל מי שעבד פעם עם ASP או ASP.net, נתקל מן הסתם בכותרות ה-HTTP הרלוונטיות עבור שרתי פרוקסי ואחרים. בדרך כלל הבעיה הייתה שהם אוגרים תוכן האמור להתעדכן בזמן אמת. תמונה למשל. הפעם אני רוצה לחשוף כלי שפחות מוכר למפתחי חלונות, ויכול להוריד משמעותית עומסים משרתי ה-Web העמוסים, וגם לסייע בצמצום Downtime בעת מעבר למשל, מחוות שרתים אחת לאחרת. איך זה עובד? פרוקסי הפוך (בדרך כלל Squid על לינוקס) מקשיב לבקשות HTTP, בודק אם קיים אצלו עותק של הדף ואם לא - מפנה לשרת האמיתי שמפעיל את הדף ומעביר את תשובתו לגולש. נניח...