השפעת מספר הגולשים על זמן התגובה של השרת

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

בגלל שנושא הביצועים מאוד חשוב באפליקציה מהסוג הזה, אני מבצע מספר בדיקות ביצועים בצד ה-Backend לבדיקת תפקוד השרת בזמנים עמוסים כחלק מכתיבת האפיון. צד השרת רץ על VPS בארה"ב, באמצעות Nginx עם Secure links (שימוש באסימון – Token) כאשר כל הנתונים נמשכים באמצעות Reverse proxy משרת Apache בישראל ונשמרים ב-Cache ל-8 שעות.

הנתונים שמוצגים בגרף הם טעינה של 18 אלמנטים, כולם ב-Cache, ב-3 מצבים שונים (מימין לשמאל):

  • כאשר יש פנייה מגולש אחד מהאפליקציה לשרת.
  • כאשר יש פנייה מ-100 גולשים באפליקציה לשרת.
  • כאשר יש פנייה מ-250 גולשים באפליקציה לשרת.

מפל המים מורכב ממספר אלמנטים:

  • האלמנט הראשון הוא קובץ טקסט שמכיל 17 קישורים שונים לאותו הקובץ, קריאה אחת ב-HTTP, קריאה שאחריה ב-HTTPS וחוזר חלילה.
  • אלמנטים 2-17 הם אותו הקובץ שנטען כל פעם מחדש.
  • אלמנט 18 הוא קובץ favicon.ico.

שימו לב למסקנות המפתיעות:

  • בקפיצה ממשתמש 1 ל-100, זמן הקריאה ב-HTTP גדל ב-100MS בממוצע, זמן הקריאה ב-HTTPS גדל פי 2 בממוצע.
  • בקפיצה מ-100 משתמשים ל-250 משתמשים, זמן הקריאה ב-HTTP גדל ב-30MS בממוצע, זמן הקריאה ב-HTTPS גדל ב-30MS בממוצע. – גידול של פי 1.5 בכמות הבקשות, אך זמן הקריאה גדל ב-30MS בממוצע.
  • בקפיצה ממשתמש 1 ל-250, זמן הקריאה ב-HTTP גדל פי 1.2 בממוצע, זמן הקריאה ב-HTTPS גדל פי 2.1 בממוצע.
  • Nginx בקושי העמיס על ה-VPS, לא ניצל את כל המעבד, וזה דיי מפתיע, עדיף NGINX מעמיס ומהיר מאשר NGINX קליל ואיטי.

הערה: בדיקות מפלי המים בוצעו באמצעות Webpagetest.org, בדיקות העומס בוצעו באמצעות Blitz.io.

אבי ק.

פורסם בקטגוריה לינוקס. אפשר להגיע לכאן עם קישור ישיר.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *