האצת ביצועי Reverse proxy ע"י SSH Tunnel

לפני מספר ימים כתבתי על האצת אפליקציה על גבי שימוש ב-Reverse Proxy, הפתרון יעיל כמו CDN (ועולה רבע מהעלות של CDN) ומאפשר לשמור על גמישות מבחינת הפעלת המערכת (לדוגמא – הטמעת Memcached בעתיד),

בפרויקט אני משתמש ב-Nginx (הלחם מילים של Engine-X), אבל ל-Nginx יש חיסרון אחד כ-Reverse Proxy, הוא לא תומך ב-KeepAlive, ולכן כל פניה לשרת המקור, דורש פתיחת חיבור TCP חדש וככל שהמרחק הפיזי בין שרת ה-Reverse Proxy לשרת המקור גדל כך זמן פתיחת חיבור ה-TCP.

כדי לתאר איך עובד KeepAlive – תחשבו על צינור מים של 10 מטר:

  • ללא KeepAlive – הצינור מתרוקן בין פעילות לפעילות ועוברות מספר שניות מרגע פתיחת הזרם (פתיחת החיבור) עד ליציאת המים בקצה הצינור (תחילת הגעת המידע – TTFB).
  • עם KeepAlive – בין פעילות לפעילות עוברים בצינור כמות מזערית של מים, כדי שבעת פתיחת הברז מיד יצאו המים.
כדי לייעל את ה-Reverse Proxy, הקמתי SSH Tunnel בין ה-Reverse Proxy לשרת המקור, SSH Tunnel יוצר חיבור (מוצפן) בין שני השרתים והחיבור הזה מתפקד (במקרה הזה) כתחליף ל-KeepAlive, כאשר ה-Reverse Proxy משתמש בחיבור הקיים של ה-SSH Tunnel ומעביר דרכו את הבקשות לשרת המקור.
כדי להציג את ההבדלים בין SSH Tunnel לחיבור ישיר, הקמתי שרת Reverse Proxy ע"ג Nginx בשרת בקנדה ופתחתי SSH Tunnel בין השרת בקנדה לשרת נוסף בישראל כאשר ה-Caching מבוטל (כל בקשה מועברת לשרת המקור בישראל):  
הערה: מדובר ב-2 בקשות זהות, לקובץ במשקל של 5Kb, בקשה אחת ב-HTTP והנוספת ב-HTTPS SSL
באמצעות חיבור ישיר:

  • הזמן שעובר משליחת הבקשה עד לקבלת הביט הראשון (TTFB) בבקשת HTTP רגילה: 660MS.
  • הזמן שעובר משליחת הבקשה עד לקבלת הביט הראשון (TTFB) בבקשת HTTPS מוצפנת: 760MS.
Reverse Proxy Over SSH Tunnel:

  • הזמן שעובר משליחת הבקשה עד לקבלת הביט הראשון (TTFB) בבקשת HTTP רגילה: 310MS.
  • הזמן שעובר משליחת הבקשה עד לקבלת הביט הראשון (TTFB) בבקשת HTTPS מוצפנת: 400MS.

שימו לב להבדל, בזמני ה-TTFB:

  • ב-HTTP, שימוש ב-SSH Tunnel השיג שיפור של 350MS, שיפור של 53%!
  • ב-HTTPS, שימוש ב-SSH Tunnel השיג שיפור של 360MS, שיפור של 52%!

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

כתיבת תגובה

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