GH GambleHub

בדיקת עומס ופרופילי לחץ

תקציר

בדיקת עומס היא מבחן מערכת של ביצועים והתאוששות תחת תרחישים מציאותיים וקיצוניים. הבסיס להצלחה: מודל התנועה הנכון (פתוח נגד סגור), SLO קבוע, מטרי טהור (letency/product/images/rovation), מידע מייצג, אוטומציה וחזרה. התוצאה אינה ”דמות RPS”, אלא פתרון: איפה צווארי הבקבוק, כמה עולה הביצועים, איפה סף הכישלון ואיך להזיז אותו.

SLO/SLI ומדדי המטרה

SLO (דוגמה): p95 API, 250 ms, p99 ms 600 ms; שגיאה ברישום 0. 3 %/30 ימים.
SLI: latency (p50/p95/p99), dirput (RPS/CPS/QPS), רוויה (CPU/Heap/GC/FD/conn), DB (5xx, timeout), DB (מנעולים, שאילתות איטיות), callescue (hit-ratio).
שגיאה ורוויה מעוררים (לדוגמה, CPU> 75% או עומק תור> X # Desgradation).

סוגים של בדיקות

1. Baseline/Benchmark - שירות יחיד/נקודת סוף, תנאים ”אידיאליים”.
2. עומס - ”יום עבודה” מציאותי + רמפה למעלה/רמפה למטה.
3. לחץ - להגביר את העומס להשפלה וקיבעון נקודת שבירה.
4. קפיצה חדה (x2-x10 בשניות/דקות).
5. Soak/Endurance - טווח ארוך (8-72 h): דליפות זיכרון, סחף אחורי.
6. קיבולת - העמסת שלב לעקומת ביצועים ותכנון קיבולת.
7. הידרדרות/מיקס כאוס - עומס + כשלים חלקיים (מסד נתונים איטי, טיפת מטמון, ”קרס” אפלינק).

מודלי תנועה: פתוח נגד סגור

מודל פתוח (יותר מציאותי עבור האינטרנט): משתמשים מגיעים עם עוצמות תורשתיות (Poisson-like stream). אם המערכת מאטה, הבקשות מצטברות, לא ”קפואות”.
מודל סגור - מספר קבוע של משתמשים וירטואליים (VUs) עם זמן חשיבה. כאשר העיכוב גדל, RPS נופל באופן מלאכותי - בזהירות עם מסקנות.
המלצה: עבור APIs front-end משתמשים במודל פתוח (k6.6 &posphale arrival-rate), עבור תסריטים סינכרוניים פנימיים - לשלב עם סגור.

טען פרופילים (תבניות)

”יום רגיל”: רקע בסיסי + תנודות יומיות.
”אירוע שיא”: 10-30 דקות לפני ההתחלה (חימום), קפיצה חדה בהתחלה, הרמה, זנב.
”טורניר/זרם”: שלבי סולם, פסגות חוזרות במרווחים.
”הידלדלות תשתית”: מחצית המטמון ריק, אזור אחד כבוי, PSP Latency גדל.
”כשל”: התנועה זורמת להגנה תוך 1-5 דקות; בודק סופות בקנה מידה אוטומטי/HPA/Retry.

נתוני סביבה והכנה

נתוני מבחן: קרדינליות מציאותית (ספקים, מטבעות, מדינות), שדות מלוכלכים, הפצות שאילתות (Pareto/Zipf).
סודות/PII: אנונימיות; מפתחות/PSP - ארגז חול.
סביבה: עמדה ייעודית, בידוד מאינטגרציה (דקירה/דקירה), גרסאות קבועות.
תצפיות: Metrics (פרומתאוס), logs (לוקי/ELK), עקבות (OTEL). רישום זיהוי מבנה בתגובות.

Antistorm Reprays ו Idempotence

רטריי רק לפעולות אידמפוטנטיות; הגדרת תקצוב מחדש (לדוגמה: 10% מהתנועה).
גיבוי מעריכי + jitter; ”קורסת” גטים זהים.
לתשלומים - מפתחות אידמפוטנטים ומדינות מפורשות.
הגנה מפני עדר רעמים: מנעולי מטמון, SWR, סמפורות מקומיות.

כלים ותבניות

k6 (תסריט, מודל פתוח, דיווח טוב), Locust (תסריטי פייתון), Gatling (סקאלה), JMeter (מגוון רחב של פרוטוקולים).
פרוטוקולים: HTTP/1. 1/2/3, GRPC, WebSocket, TCP/UDP; שרת הדחיפה לא בודק ”כמו לקבל”.
דור תנועה: קנה מידה אופקי של גנרטורים, שליטה על צוואר בקבוק רשת.
הסרת פרופילים: pprof/async-profiler/ebpf תחת עומס, נתיבי OTEL.

דוגמה קטנה k6 (מודל פתוח + ספייק):
javascript import http from 'k6/http';
import {check, sleep} from 'k6';

export const options = {
scenarios: {
warmup: { executor: 'ramping-arrival-rate', startRate: 50, timeUnit: '1s',
preAllocatedVUs: 200, stages: [ { target: 200, duration: '5m' } ] },
spike: { executor: 'constant-arrival-rate', rate: 1200, timeUnit: '1s',
preAllocatedVUs: 2000, startTime: '6m', duration: '3m' }
},
thresholds: {
http_req_failed: ['rate<0. 3%'],
http_req_duration: ['p(95)<250', 'p(99)<600']
}
};

export default function () {
const res = http. get(`${__ENV. BASE_URL}/api/v1/catalog? c=${Math. floor(Math. random()1000)}`);
check(res, { 'status is 200': (r) => r. status === 200 });
sleep(Math. random()0. 9) ;//think time (for closed parts of the script)
}

הליך

1. השערה # אילו צווארי בקבוק הם סביר (מעבד, DB, מטמון, רשת, TLS, GC).
2. תרחישים/מסלולים, מניות תנועה, מודלים (פתוח/סגור), נתונים.
3. חימום מטמון/חיבורים/TLS/מתורגמנים.
4. הגדלה של השלב הבא לעוצמת המטרה.
5. אוסף מישורי של מדדים יציבים ועקבות.
6. לחץ/ירידה = למצוא נקודת שבירה, לצפות בקנה המידה האוטומטי.
7. לנתח מדדים, פלמגרף, לדווח ולשנות תוכנית.
8. Repruf # לחזור דרך צינור CI (Region Perf).

ניתוח תוצאות

טעינת עקום השהייה/שגיאה: מחפש את המרפק (קיבולת).
פירוק latency: רשת (DNS/TLS/connect), פרוקסי, יישום, מסד נתונים, שיחות חיצוניות.
רוויה: CPU> 75-85%, GC pause> p95, I/O מחכה, תור משימה.
אלסטיות: זמן תגובה אוטומטי (HPA/KEDA), התחלה קרה, חימום מטמון.
עלות: 1000 $ RPS ביעד SLO, תחזית תקציב שיא.

פרקטיקות הנדסה

אינדיקטורים של הידרדרות: ”זנבות” p99, צמיחת תור, ירידה ביחס פגע, צמיחה של ניסיונות מגש מחדש.
אל תשתלט על קונפליקטים: גבולות תיאור קבצים, Sysctl, conn-pool, "reusport', שרשראות TLS, OCSP.
DB: אינדקסים/תוכניות/מטמון שאילתות, מאגר חיבור, פעולות אצווה, תרמיל גב על יצרנים.
מטמונים: גודל/מדיניות פינוי, מפתחות חמים, שכפול.
רשת/קצה: HTTP/2/3, חידוש של 70%, ברוטלי, מפתח מטמון CDN, מטמון.

תצפית תחת עומס

מטריצות: מערכת (CPU/Mem/IO), זמן ריצה (GC/Heap), רשת (RTT/loss/ECN), L7 (p95/99, 5xx/429), תורים, אשכולות/מטמון מסד נתונים.
שבילים: כולל דגימה על ”זנבות” (מבוססי זנב), סימונים מזהים/קנריים.
יומנים: צבירה של שגיאות עם מגבלת נפח (כדי לא ”FORDOSOR” log-pipeline).
ניסויים: דגלי תכונה ותצורות יש להקליט בדו "ח.

אוטומציה ו CI/CD

עבודות Perf ב CI (עשן 3-5 דקות, לילה 30-60 דקות, השריה שבועית).
גבולות סובלנות: latency/image/resources # ”לשבור את המבנה” ברגרסיה.
חפצים: גרפים, פלמגרפיים, פרופילים, דו "חות JSON (k6/jtl).
ורסינציה של נתונים ותסריטים, סקירת יחסי ציבור של תסריטי פרף.

iGaming/fintech ספציפי

טורנירים/גפרורים: spike + plateau; TLS/DNS/CDN מתחמם, גבולות בריכה מוגברים, מסלולים אפורים עבור רובוטים.
תשלומים/PSP: גבולות ארגז חול, אידמפוטנטיות, פסקי זמן נוקשים; בדיקת דלגרד-מוד (מטמון ספריה, תורים).
זכרונות/אירועים: אטומיות ועקביות, לא לוקח, עומס על RNG/לוחות מוביל.
נגד הונאה/AML: טען על כללים/ניקוד ML, תרמיל גב, שכפול אירועים.
רגולציה: רישום מדדים וגרסאות בפסגות, דיווחים לביקורת.

שיגור רשימה

[ ] SLO/SLI וקווים אדומים (שגיאה/לאטנסיביות/רוויה).
[ ] תרחישי טעינה ופרופילים מאושרים (פתוח/סגור, ספייק/ספייק/לחץ).
[ ] דאטה ריאליסטי, מח "ש במסכה, ארגז חול/מדומה אינטגרטיבי.
[ ] תצפית מוכנה: מדדים/שבילים/רישומים, תגי שחרור.
[ ] תצורות מערכת (ulimit/sysctl/pols) מתועדות.
[ ] תוכנית חימום אוטומטית/מטמון וקריטריונים גלגול.
[ ] התראות סף ותוכנית תורנית.
[ הוכנה תבנית דיווח ] (תרשימים, מסקנות, פעולות).

שגיאות נפוצות

המבחן בדגם סגור מייצר תוצאה ”ירוקה”, והמוצר יורד (לא ניתן להתעלם מהמודל הפתוח).
נתונים לא מיוצגים (ספק מטבע אחד) = מסקנות שגויות.
אפס הכנה: מטמונים קרים/TLS/חיבורים = איחור מוגזם בהתחלה.
רטריי ללא גבולות * סערה ומפל נופלים.
אותם פרופילים לכל השירותים. מדלגים על ”נקודות חמות” אמיתיות.
היעדר ספוג רץ = דליפות זיכרון וסחף אינם נראים לעין.
תוצאות אטומות: אין עקבות/פלמגרפס = אין אפשרות לאתר צוואר בקבוק.

ספרי משחקים מיני

הגדרת נקודת שבירה

1. צעדים של 10-20% מהעומס כל 5-10 דקות. 2) לתקן את הרגע שבו p95 עולה בחדות ושגיאות> SLO. 3) הסר פרופילי מעבד/DB/מטמון. 4) תוכנית אופטימיזציה וחזרה.

לרטון בסופות מגש מחדש

1. להגביל מחדש תקציב ולאפשר גיבוי + jitter. 2) הזן בקשה קורסת/SWR. 3) לאפשר ”מצב דלגראד” (פונקציונליות מוגבלת). 4) בדיקת אידמפוטנטיות כפולה.

אירוע שיא (טורניר) - תכנית מראש

1. לחמם את CDN/DNS/TLS/בריכות. 2) להגדיל את HPA המטרה, להכין רזרבה. 3) מגבלות קצב נפרדות עבור בוטים. 4) לוחות מחוונים של מצב שיא, גשר תקשורת בכוננות.

לספוג בלילה

1. 8-12 שעות של עומס יציב. 2) צג ערימה/FD/conn/GC-pauses. 3) בדוק את הדלתה p95 והיחס פגע. 4) לתקן דליפות ולהיסחף.

תוצאות

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

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.