Cache עם Lock מבוסס memcached

יום שבת, מאי 28, 2011

בעבר כתבתי על הבעיה הלא מאוד לא נפוצה שנגרמת כאשר משום מה מתבצעת פעולת Flush לחלקים גדולים של ה-Cache. מערכת שביום יום מתמודדת בהצלחה עם העומס ונותנת זמני תגובה מצויינים, מגמגמת ואף קורסת לדקות ארוכות בשעה שה-Cache עליו היא מתבססת או חלקים ממנו קרס. לפני קצת פחות משנתיים כתבתי על פתרון פשוט שמטרתו הייתה למנוע הרצת אותה פעולה מאות אלפי פעמים עד שנכנס ל-Cache אחד העותקים לשימוש בפעמים הבאות. הפיתרון עבד מאוד יפה כל עוד נמצאים באותו שרת, ובאותו Proccess של IIS. גם במקרים שלא, הפעולה צומצמה מאלפים של בקשות מקבילות לכמה עשרות, בתלות...
אין תגובות

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

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

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

Cache עבור שאילתות עדכון

יום רביעי, אוקטובר 28, 2009

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. הבעיה: שרת SQL Server 2005 של מערכת Web. ניתוח...
אין תגובות

בעיות (ופתרונות) בשימוש ב-OutputCache לשיפור ביצועים

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

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 on heavy SQL Server), but often useless. אחת הבעיות הקשות (אך החיוביות) איתם מתמודדים מנהלי פרוייקטים, או מתכנתים בודדים,...
תגובה אחת

מנגנון ניהול Cache בסיסי

יום שבת, יולי 11, 2009

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) אבל כל זה מעצבן כל פעם מחדש.אחד החידושים שיצאו בגירסא 3.5 של הסביבה, הינה האפשרות להעביר פונקציות אנונימיות (Lambda), כמשתנה לפונקציה. ישבתי חמש דקות וכתבתי את הפונקציה הבאה:Public Shared Function GetFromCache(Of T)(ByVal Name As...
תגובה אחת

פרוקסי הפוך: שיפור ביצועים והורדת Downtime

יום שני, נובמבר 12, 2007

כל מי שעבד פעם עם ASP או ASP.net, נתקל מן הסתם בכותרות ה-HTTP הרלוונטיות עבור שרתי פרוקסי ואחרים. בדרך כלל הבעיה הייתה שהם אוגרים תוכן האמור להתעדכן בזמן אמת. תמונה למשל. הפעם אני רוצה לחשוף כלי שפחות מוכר למפתחי חלונות, ויכול להוריד משמעותית עומסים משרתי ה-Web העמוסים, וגם לסייע בצמצום Downtime בעת מעבר למשל, מחוות שרתים אחת לאחרת. איך זה עובד? פרוקסי הפוך (בדרך כלל Squid על לינוקס) מקשיב לבקשות HTTP, בודק אם קיים אצלו עותק של הדף ואם לא - מפנה לשרת האמיתי שמפעיל את הדף ומעביר את תשובתו לגולש. נניח שיש לנו שרת HTTP עמוס למדיי שמריץ אתר שכתוב ב-ASP.net, שמכיל הרבה...
תגיות: , ,
אין תגובות