מדריך קלאודפלייר בעברית

תיעוד 66

קנה מידה ומדידת ביצועים

עודכן לאחרונה: 16 באפריל 2026

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

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

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

#סוג מפתח

שרתי מפתחות תומכים גם במפתחות ECDSA וגם במפתחות RSA, אם כי חתימות עבור RSA יקרות יותר בסדר גודל ↗︎ לחישוב, ולכן יש להתחשב בסוג המפתחות שבשימוש כשמתכננים את מספר שרתי המפתחות בפריסה.

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

פרטים נוספים נמצאים בקובץ ה-readme של שרת gokeyless ↗︎.

#מדידות ביצועים

ערכנו מדידות ביצועים באמצעות כלי ה-bench של gokeyless מבית Cloudflare ↗︎ על מופע EC2 מדור שהיה אז עדכני, מותאם לחישוב (c5.xlarge ↗︎). למופע המסוים הזה יש 4 vCPU המופעלים על ידי מעבדי Intel Xeon בתדר 3.0 GHz:

c5$ cat /proc/cpuinfo|grep "model name"
model name	: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
model name	: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
model name	: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
model name	: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz

כברירת מחדל, bench רץ עם goroutine אחת של עובד לכל ליבה (4) ועם מספר מרבי של תהליכי מערכת ההפעלה השווה למספר הליבות הכולל (במקרה הזה, GOMAXPROCS=4). כצפוי וכפי שהוסבר למעלה, ביצועי חתימת ECDSA עולים בהרבה על אלה של RSA. התוצאות מראות שכל ליבה במכונת c5.xl הזו יכולה לבצע יותר מ-10,000 פעולות חתימת ECDSA בשנייה, וכ-200 פעולות חתימת RSA בשנייה.

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

#תוצאות

#ECDSA

c5$ bench -ski $ECDSA_SKI -op ECDSA-SHA256 -bandwidth -duration 60s
Total operations completed: 2661570
Average operation duration: 22.543µs

#RSA

c5$ bench -ski $RSA_SKI -op RSA-SHA256 -bandwidth -duration 60s
Total operations completed: 46560
Average operation duration: 1.288659ms.