הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   תחזוק שרתים ושירותי רשת נוספים (https://hosts.co.il/forums/forumdisplay.php?f=29)
-   -   הורדות משרת משתמשות במעבד? (https://hosts.co.il/forums/showthread.php?t=93806)

Tal. 03-12-11 00:23

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


אשמח לפירוט

תודה

אדיר 03-12-11 00:44

כל תהליך משתמש במעבד ובזכרון,
באופן תיאורתי - ככל שיש לך יותר משאבים זמינים תוכל לספק יותר בקשות בזמן נתון,
הכלל אומר שהחוליה החלשה ביותר בשרשרת היא שקובעת את רמת הביצועים הסופית (עיין ערך: צוואר בקבוק).

למקרה שאתה מתאר, סביר להניח שבשלב מסויים הדברים הראשונים שיגבילו אותך יהיו I/O לדיסק הקשיח ורוחב הפס (בתיאוריה שהחומרה מאוזנת בצורה סבירה),
בפועל, זה בלתי אפשרי להעריך בצורה מדוייקת כל עוד אנחנו לא יודעים מהי בדיוק החומרה שבה אתה משתמש וכל עוד לא ביצענו פרופילינג ובדיקות מאמץ למערכת.

"שרת יחסית חלש"" ו- "מעבד חזק" אלו הגדרות שניתן לפרש בהמון צורות שונות.

yonatan 03-12-11 01:33

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

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

דניאל 03-12-11 02:35

כל הפעולה שהשרת עושה זה הורדת קבצים בלבד?

כלומר, (לדוגמא) - יש על השרת Nginx בלבד? ללא Mysql או php-cgi או apache וכו'?

התשובה היא כן,
מעבד חלש בהחלט יתאים לנושא.

עדיף אגב מעבד עם כמה שיותר threads.

Tal. 03-12-11 03:24

הבנתי תודה. אני אנסח את הבעיה שלי:
האתר שלי התחיל לעבוד לאט בשעות עומס והתחלתי לקבל הרבה הודעות על טעינה ארוכה של דפים.
רציתי לדעת מה גורם לעומסים? האם זה כמות ההורדות או בקשות php?
שקלתי להשכיר שרת נפרד שינהל את ההורדות, אבל לפי מה שהבנתי זה לא ההורדות שאחראים על העומס.

לפי דעתי הפתרון הכי נכון בשבילי זה שרת יותר חזק, יותר מעבדים יותר זכרון, nginx + eAccelerator וכו׳
או שאולי עדיף לעבוד עם 2 שרתים בינוניים במקום אחד חזק?

תודה!

yonatan 03-12-11 05:44

ציטוט:

נכתב במקור על ידי Youtube4Down.com (פרסם 826901)
הבנתי תודה. אני אנסח את הבעיה שלי:
האתר שלי התחיל לעבוד לאט בשעות עומס והתחלתי לקבל הרבה הודעות על טעינה ארוכה של דפים.
רציתי לדעת מה גורם לעומסים? האם זה כמות ההורדות או בקשות php?
שקלתי להשכיר שרת נפרד שינהל את ההורדות, אבל לפי מה שהבנתי זה לא ההורדות שאחראים על העומס.

לפי דעתי הפתרון הכי נכון בשבילי זה שרת יותר חזק, יותר מעבדים יותר זכרון, nginx + eAccelerator וכו׳
או שאולי עדיף לעבוד עם 2 שרתים בינוניים במקום אחד חזק?

תודה!

אני הייתי הולך על תצורה של 2 שרתים , ככה יש לך פי 2 כוח I/O של דיסקים , ופי 2 חיבור רשת.
( בעצם לכל שרת כרטיס רשת משלו עם חיבור משלו ועומס על הורדה בשרת אחד לא יפריע לשני להגיש קבצים ).

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

מכר קנדי שלי, בעל אתר פופולרי סיפר לי שבמקרה שלו מ nginx + fcgi האתר שלו התחיל ליצר הודעות 500 מידי פעם בשעות הלחץ( שבעקרון היו oom segfault של ה core של nginx ),וכשעבר ל apache+ fcgi כמו שחפרתי לו במשך חודש שלם לעשות הכל הסתדר לגמרי.
המערך שלו נחשב OVERKILL לדעתי( וגם לדעתו ) , לאתר שלו יש 3 שרתים 2 WEB ואחד SQL.
אבל הכל שאלה של תקציב, תעשה חישוב באיזו תצורה תוכל להפיק יותר משאבים ביחס למחיר ותלך על הפתרון שיתן לך תמורה מירבית ( מבחינת משאבים ).

מה שחשוב בשבילך זה 2 דברים עיקריים
I/O + BANDWIDTH
אופטמיזציה לקוד תמיד תוכל לעשות, ואם האתר שלך מבוסס SQL תמיד תוכל להפריד בינו לבין שרתי הקבצים.

אדיר 03-12-11 13:30

איך האתר שלך עובד, הוא מוריד מיוטוב + מקודד בזמן אמת כל קובץ שהמשתמש מבקש ואז מציע לו אותו להורדה כקובץ MP3?
אם כן, סביר מאוד להניח שזה מה שמעמיס לך על השרת.

יכול מאוד להיות גם שאתה עובד מול מסד הנתונים בצורה לא יעילה, או שאולי מסד הנתונים עצמו לא מתוכנן בצורה יעילה ואז לוקח לו הרבה זמן לענות על בקשות.

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


אתן לך דוגמה למקרה שניתקלתי בו לא מזמן:
אתר גדול שאני מתחזק התלונן על זמן טעינה ארוך (כ- 5 עד 10 שניות!) בדף הראשי,
בעל האתר התייעץ עם כמה אנשים, כמעט כולם אמרו לו לעבור ל- 2 שרתים, אמרו לו: "זהו עבר זמנו של האתר על שרת בודד".

מה באמת היה?
בוצעה שליפה "מורכבת" מאחת הטבלאות, טבלה שמכילה אלפי רשומות (כאשר בכל רשומה יש הרבה שדות והרבה מידע),
הטבלה לא הייתה בנוייה כראו - סוגי השדות לא היו אידיאלים ביחס לתוכן ועל אינדקסים אין בכלל על מה לדבר.

לאחר ייעול של מבנה הטבלה-
הדף הראשי חזר לעלות כמו שצריך ולאתר כבר לא לוקח 5 שניות (במקרה הטוב) להיטען.
שום 2 שרתים, שום הפרדה בין WEB ל- SQL, נטו קוד ומבנה מסד לא יעילים.


אז כדי לענות לך בצורה סופית על השאלה, אחזור על מה שאמרתי למעלה:
"כל עוד לא ביצענו פרופילינג ובדיקות מאמץ למערכת, הכל בגדר ניחושים של בעיות פוטנציאליות."

Kernel 03-12-11 13:37

קצת נסחפתם עם I/O,

כונן SATA יכול לספק 200mbit קבוע,
אתה מגיע ל-200MBIT?


לדעתי אתה צריך להעביר את ההורדות לכל דבר אחר שהוא לא APACHE,
או לשים את APACHE ב-REVERSE PROXY ל-NGINX.


אבי.

Tal. 03-12-11 14:43

אני לא מגיע ל200mbit.. הקבצים שוקלים ממש קצת כך שההורדות מהירות..

אני לא יכול להשתמש בapache גם בגלל ההורדות וגם בגלל כל התהליכים שהוא פותח.
עכשיו אני עם apache ותמיד יש מעל 100 תהליכים פתוחים רק על דפי php, אני מאמין שזה גם מה שעושה את העומס.

אני אעבור לשרת חזק יותר, עם רוחב פס גדול יותר, אתקין עליו nginx ואני מקווה שלא יהיו תקלות..

דניאל 03-12-11 14:47

ציטוט:

נכתב במקור על ידי Kernel (פרסם 826924)
קצת נסחפתם עם I/O,

כונן SATA יכול לספק 200mbit קבוע,
אתה מגיע ל-200MBIT?

מה עם seek time?

אדיר 03-12-11 15:17

ציטוט:

נכתב במקור על ידי Youtube4Down.com (פרסם 826930)
אני לא מגיע ל200mbit.. הקבצים שוקלים ממש קצת כך שההורדות מהירות..

אני לא יכול להשתמש בapache גם בגלל ההורדות וגם בגלל כל התהליכים שהוא פותח.
עכשיו אני עם apache ותמיד יש מעל 100 תהליכים פתוחים רק על דפי php, אני מאמין שזה גם מה שעושה את העומס.

אני אעבור לשרת חזק יותר, עם רוחב פס גדול יותר, אתקין עליו nginx ואני מקווה שלא יהיו תקלות..

אתה קופץ למסקנות לא מבוססות וחבל..
ואם עכשיו אני אגיד לך שזה בסדר גמור שיש לך X תהליכים רצים של APACHE בזמן נתון - אפילו אם אין כרגע שום בקשה לשרת, מה אז?

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

אתה לא יכול לתקן בעיה בלי לדעת ממה היא נובעת,
זה לא אחראי לתכנן שדרוג בלי לדעת מה מגביל אותך מלכתחילה.

yonatan 03-12-11 15:29

ציטוט:

נכתב במקור על ידי דניאל (פרסם 826931)
מה עם seek time?

+1 זה בדיוק צוואר הבקבוק ב I/O.

Tal. 03-12-11 15:36

גם את רוחב הפס אני משדרג מ100mbit ל1gbit, אבל אני לא חושב שזאת הבעיה.
עד שפתחתי את האשכול באמת לא ידעתי מה גורם לעומסים, האם זה התוכן הסטטי או הדינאמי.
אבל עכשיו אני די בטוח שזה החלק הדינאמי.
רוחב פס זה לא הבעיה גם בשעות העומס ההורדות יורדות במהירות מקסימלית.
גם זכרון, בדקתי עכשיו אני בקושי ב3gb כל השאר מוקדש לקאש..

אני אחד שכן מקפיד על יעילות וכל הזמן דואג לשפר ולייעל את הקוד.
ככה שזה לא שאני משדרג מבלי לדעת, אני די בטוח שמעבדים יותר חזקים + nginx יפתור את הבעיות.

בקשר למה שאמרת שמסד גדול יכול לגרום לבעיות, האמת שלא הייתי מודע לזה ובאמת יש לי מסד שמן מאד.
אני אבדוק את זה אבל קשה לי להאמין שזה הבעיה כי הייתי שם לב.

אדיר 03-12-11 16:28

ציטוט:

נכתב במקור על ידי Youtube4Down.com (פרסם 826939)
גם את רוחב הפס אני משדרג מ100mbit ל1gbit, אבל אני לא חושב שזאת הבעיה.
עד שפתחתי את האשכול באמת לא ידעתי מה גורם לעומסים, האם זה התוכן הסטטי או הדינאמי.
אבל עכשיו אני די בטוח שזה החלק הדינאמי.
רוחב פס זה לא הבעיה גם בשעות העומס ההורדות יורדות במהירות מקסימלית.
גם זכרון, בדקתי עכשיו אני בקושי ב3gb כל השאר מוקדש לקאש..

אני אחד שכן מקפיד על יעילות וכל הזמן דואג לשפר ולייעל את הקוד.
ככה שזה לא שאני משדרג מבלי לדעת, אני די בטוח שמעבדים יותר חזקים + nginx יפתור את הבעיות.

בקשר למה שאמרת שמסד גדול יכול לגרום לבעיות, האמת שלא הייתי מודע לזה ובאמת יש לי מסד שמן מאד.
אני אבדוק את זה אבל קשה לי להאמין שזה הבעיה כי הייתי שם לב.

תבדוק את זה, אל תשדרג סתם..
ציטוט:

נכתב במקור על ידי xPerfection (פרסם 826933)
אתה קופץ למסקנות לא מבוססות וחבל..
[...]
אתה לא יכול לתקן בעיה בלי לדעת ממה היא נובעת,
זה לא אחראי לתכנן שדרוג בלי לדעת מה מגביל אותך מלכתחילה.

ציינתי בהודעה הראשונה שלי דרך הפעולה סבירה של המערכת שלך (כמשתמש מבקש להוריד קובץ אז המערכת מורידה אותו מיוטוב + מקודדת אותו בזמן אמת ואז מגישה אותו למשתמש?),
אם זה באמת המצב, אולי זה מה שבעצם מעמיס לך על השרת, או אולי זה בעצם המסד, או אולי, או אולי..

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

Kernel 03-12-11 23:56

יש לך קבצים מאוד מאוד מבוקשים?
אתה משתמש בphp כדי להוריד קבצים(לא ליצור אותם)?

Tal. 04-12-11 00:36

כן, קבצים מבוקשים.
וכן עד עכשיו השתמשתי בPHP כדי להוריד קבצים, אבל בNGINX אני אשתמש בX-Accel-Redirect.

Kernel 04-12-11 00:57

את עשרת הקבצים המאוד מבוקשים (יותר מ100 הורדות ביום לקובץ - לדוגמא), אפשר להעביר לזכרון המטמון וכבר ״חסכת״ 1000 קריאות מהhd.

דבר נוסף ולדעתי העיקרי שמעמיס לך על המערכת. היא ההורדה באמצעות php.
אתה ״ממציא את הגלגל מחדש וזה לא נעשה בצורה מיטבית בד״כ, לדוגמא, אם מוסיפים traffic shaping חלק מהמתכנתים כותבים קוד שקורא כל פעם קטע מסויים ושולח אותו ואז קורא שוב קטע וכך הלאה. זה לא יעיל ולא חכם (לעומת לטעון כל פעם Xkb ולשלוח X/50 - תלוי במשאבי השרת), אתה מבזבז המון משאבי מעבד על php ופה נגרם רוב העומס.

היום אפשר למנוע גניבת תעבורה ולהפעיל חוקים של traffic shaping, על nginx ודומיו, כלומר. במקום 100 פרוססים של apache, רק הפרוססים של התוכן הדינאמי מטופלים ע״י apache והיתר ע״י nginx.

גם שימוש בaccel-redirect הוא לא חכם כי אתה משתמש בקוד php מאשר ליצור כתובת url עם ttl.

Tal. 04-12-11 01:28

למה accel redirect לא חכם? :S
גם לו יש TTL והגבלת IP והכל..

לא מבין מה ההבדל.. הרבה יותר נוח לי עם redirect מאובטח

Kernel 04-12-11 01:41

Redirect:

אתה יוצר קישור בדף לסקריפט
הסקריפט מנתח את הבקשה (!!!)
במידה וחיובי. מעביר אותך לעמוד.

Secure link:
אתה יוצר קישור בדף לקובץ בsecure link.
המשתמש מוריד ישירות מnginx.


בשימוש בsecure link אתה חוסך שלב, סקריפט php. מקצר ttfb וזמן מעבד.

Tal. 04-12-11 03:32

גם בsecure link מתבצע בדיקה של הזמן והאייפי בדיוק כמו בphp
והקובץ יורד ישירות מnginx גם בredirect


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

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