הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 10-01-15, 17:05   # 1
DCaptain
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Apr 2012
מיקום: מרכז
הודעות: 134
Send a message via Skype™ to DCaptain

DCaptain לא מחובר  

בעיות עם 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) בעזרת צמצום משאבים נרחב והגעתי לתוצאה של טעינה ארוכה.

זה מאוד מתסכל המחשבים של פעם
__________________
דניאל גולוב.
  Reply With Quote
ישן 10-01-15, 17:44   # 2
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

אם במחשב חזק זה עולה מהר ובמחשב חלש זה עולה לאט - הבעיה בקליאנט וכל מה שסיפרת על הסרבר מיותר ולא משנה. לכן גם אופטימיזציות לסרבר כמו memcache לא יועילו לך במצב הנוכחי, הרי זאת לא הבעיה.

בעניין הקליאנט:
1. אתה באמת צריך לטעון את כל הקבצים האלו תמיד? אם כן, תחבר אותם לקובץ אחד. אם לא, תטען אותם רק כשהם נחוצים.
2. תעשה profiling, תבין מה הכי קריטי לשפר ותתחיל משם. עם לשפר סתם דברים לא תגיע רחוק, לפחות לא כל כך מהר.
3. יש פעולות שאתה עושה כרגע בקליאנט וניתן להעביר אותן לסרבר? אם כן, כדאי? (פילטורים, חישובים וכד')
4. פעולות כבדות שאתה עושה בקליאנט וצריכות להשאר שם - ניתן לשפר אותן?
5. יחסית לשאר הספריות בקטגוריה הזו, אנגולר נחשבת קצת פחות יעילה בכל מה שקשור לעבודה עם ה- DOM ול- bindings שלה - למה בחרת דווקא בה? יכול להיות שספריה אחרת תעבוד טוב יותר עבורך?
6. התצורה הזו בהגדרה מעבירה חלק מהפעולות שיש לבצע מהסרבר לקליאנט. אם הקליאנטים שלך לא מסוגלים להתמודד עם זה - אולי זה לא הפתרון הנכון?
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 09:50.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ