
20-07-2010, 06:56
|
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,778
|
|
לרוב הבעיות האלה באמת קשורות לחיבור ל DB. משהו שקשור לאיזה Connection Pool (אגב, זה לא רק "אצלנו", ראיתי את זה בהמון מקומות. חיפוש הודעת השגיאה בגוגל מביא מאות מליוני מראי מקומות...). כיוון שאני רק ניסיתי לעזור מנקודת מבט של IT (כמתכנת הצעתי להם לעבור לסביבה שבטוח לא תעשה להם בעייה באתר שגולשים בו מקסימום 4 גולשים בו זמנית - ועל שרת בעוצמה הזו - גם לא עם 4000 גולשים בו זמנית...), על ידי הגדלת ה Connection Pool Size, או איך שזה נקרא (שכחתי כבר) למשהו אסטרונומי. וזה הרחיק את הבעייה (מ"כל יומיים" ל"כל שבועיים-שלושה"). בטוח שזו לא בעייה ב DB, כי אתרים אחרים, שיושבים על אותו שרת, ועל אותו שרת DB, לא חוו את הבעייה הזו. ולפני שתגיד שזו בעייה באתר הספיציפי, אז לא, זה לא. זה קורה גם באחרים, בזמנים אחרים. אני מהמר שיש "Connection Pool" נפרד לכל אתר. אולי ב PHP זה עובד כי לא משתמשים בבריכות, אז לא נרטבים. שם מתחברים ל DB בלי Pool-ים, אלא פשוט מתחברים (הא! קונספט מעניין!).
אז כן, GC דפוק. אם אחרי סיום ריצה נשארים חיבורים תפוסים, משהו דפוק קשות בטכנולוגיה. צר לי, לא תשכנע אותי אחרת.
* וכן, אני יודע שב PHP יש גם אפשרות להשאיר חיבורים פתוחים בין סקריפטים שונים, וזאת באמצעות mysql_pconnect. אבל נחש מה: כשעושים את זה, PHP משתמשת בחיבור הקיים (!) גם בריצה הבאה של הסקריפט. אין ערימת חיבורים גדלה, כי לא יווצר חיבור נוסף לאותו סט הוסט/משתמש/סיסמה קיים (כן כן, אני יודע, שוב קונספט מדהים, איך לא חשבו עליו קודם!) - ולכן ב PHP מדובר בפיצ'ר שמעלה את הביצועים (חוסך זמן Connect ל DB). בדוט נט ה"פיצ'ר" הזה (אני משער שזה פיצ'ר. הכל בדוט נט זה פיצ'רים, לא?) דורש לשכור מציל לבריכה, שישגיח 24/7 על "המתרחצים", ויוציא את המופרעים מהבריכה (על ידי כך שהוא ירוקן וימלא אותה מחדש - כמה חבל שאתחול לוקח ב Windows Server מספר דקות תמימות...)
|