הרשם | שאלות ותשובות | רשימת חברים | לוח שנה | הודעות מהיום | חיפוש |
|
|
כלים לאשכול | תצורת הצגה |
10-01-15, 17:05 | # 1 |
עסק רשום [?]
|
בעיות עם Scalability ומחשבים חלשים
היי.
אני אשמח לקבל ייעוץ לגבי בעיה חמורה שאני חווה בעת שימוש בAngular. כיוון שהשרת שלי כבר לא מעורב יותר בrender של התוכן, ומהווה רק ככלי תקשורת API בין הclient למסד הנתונים, כל העומס של עיבוד הנתונים עובר ללקוח. אז זה הופך להיות הרבה יותר חכם ומודרני לעבוד ככה, אבל כשמדובר על לקוחות ישראלים עם מחשבים לפני 8 שנים עם ליבה אחת וחצי ראם, העניינים מסתבכים. הבעיה היא בעיקר העומס שהולך למעבד עם כמות סקריפטים מטורפת (23 סקריפטים נפרדים, מאוד ארוכים), 19 styles, שרת db עם המון המון התפצלויות (אתר -> שפה עם הגדרות מיוחדות שנשלפות מטבלה אחרת -> עמוד -> שדות עריכה -> תוכן שדות ||| פריטים שנמצאים בתוך אותו עמוד -> שדות עריכה לכל פריט -> תוכן כל שדה לכל פריט). יש מסחר אלקטרוני ומלאי ומיליון ואחד פונקציות ואפשרויות. אני מודע לכך שבmongodb היה אפשר לתכנן את צורת אחסון המידע בצורה הרבה יותר חכמה, אך שורש המערכת (במיוחד המסד) נבנה לפני 10 שנים. אני רק משדרג את מה שאני יכול לרמה מודרנית ונוחה בעזרת שכתוב של ליבת המערכת כמעט בלי לגעת במסד. אין אפשרות לשנות את המסד, אלפי לקוחות משתמשים בזה בproduction environment. וכאן נמצאת הבעיה הרצינית. במחשב Macbook Pro 15' החדש עם 4 ליבות כמובן הכל רץ כמו טיל. אבל כשאני בודק את זה במחשב חלש מאוד, זה כמעט לא זז. 8 שניות לטעינה של עמוד, 4 שניות כל scope change. אני משתמש בMySQL Joins, בשרת ב-Pagespeed ו-gzip דרך Nginx, סביבת פיתוח Codengine (http://www.codengine.net/). שרת Ubuntu גרסא אחרונה עם php 5.6. אני שקלתי להתחיל לעבוד עם memcache, ואני חושב שזה יהיה בזבוז זמן יקר (רוב התוכן מאוד דינמי ומשתנה בתדירות גבוהה מדי..). אני עובד באנגיולר עם bindonce איפה שאפשר (one way binding בשביל לחסוך ב-watchers), לא משתמש כמעט אף פעם ב-$watch - תמיד בng-change. מעדכן מודלים עם delay ביניהם, אני עושה מיניפיקציה של כל תוכן הhtml שהphp מדפיס (עם ob_start). האם דרך הפתרון היחידה היא להעביר את עיבוד הנתונים לשרת? (במקום לשלוח לscope תכנים מהשרת כ-api ולתת למשתמש להריץ הכל, לתת לשרת כבר לעשות את הexecution ולשלוח למשתמש את התוצאה - old school) אני כבר נפטרתי מהשגיאה שהייתה קודם לאותם מחשבים ישנים (an unresponsive script) בעזרת צמצום משאבים נרחב והגעתי לתוצאה של טעינה ארוכה. זה מאוד מתסכל המחשבים של פעם
__________________
דניאל גולוב. |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|