מחשבון גודל למסד וקטורים ב-RAG: זיכרון ודיסק

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

נתונים
וקטור אחד לכל chunk: מסמכים × chunks למסמך. chunk של 1,000 טוקנים הוא בערך 4 KB של טקסט באנגלית.
הממד נלקח מהתיעוד של הספק. בחרו מודל אחר כדי להקליד אותו.

הממד של text-embedding-3-small: התיעוד של הספק (2026-10-16)

אורך הווקטורים שהמודל מחזיר. במודלים שמאפשרים פלט קצר יותר (Matryoshka), זה מה שביקשתם.
המטא-דאטה, והטקסט של ה-chunk אם שומרים אותו יחד עם הווקטור. 0 כשהטקסט נשמר במקום אחר.
אינדקס ואחסון
16 היא ברירת המחדל של Qdrant. יותר קישורים מעלים את ה-recall ואת הזיכרון; בשכבה התחתונה יש m × 2 קישורים לווקטור.
ב-int8 וב-binary עותק דחוס נשאר ב-RAM, ווקטורי ה-float32 המקוריים נשמרים בדיסק ל-rescoring.
עותקים של כל וקטור באשכול. 1 לשרת יחיד; 2 ומעלה לזמינות גבוהה.

תוצאה

RAM
5.91 GiB עד 7.1 GiB
דיסק
7.34 GiB עד 8.81 GiB
RAM לווקטור, עותק אחד
6,349.6 B
פירוט
שורהערךהנחות בשימוש
וקטורים (RAM ודיסק)5.72 GiB
  • בתים לממד, float32
גרף HNSW (RAM ודיסק)146.48 MiB
  • בתים לקישור HNSW
  • שכבות עליונות ותחזוקה של HNSW
ID tracker (RAM ודיסק)49.59 MiB
  • ID tracker לנקודה
Payload (דיסק)1.43 GiB
  • תקורת אחסון ה-payload
RAM לפני מרווח5.91 GiB
  • בתים לממד, float32
  • בתים לקישור HNSW
  • שכבות עליונות ותחזוקה של HNSW
  • ID tracker לנקודה
דיסק לפני מרווח7.34 GiB
  • בתים לממד, float32
  • בתים לקישור HNSW
  • שכבות עליונות ותחזוקה של HNSW
  • ID tracker לנקודה
  • תקורת אחסון ה-payload

מחשבון vector-db 1.0.0 · מנוע @anaroq/calc 1.4.0 · תמונת נתונים 2026.10.4 · איך המחשבונים עובדים

הנחות

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

  • בתים לממד, float32
    4 B (הגדרה קבועה)

    רכיב float32 תופס 4 בתים: ברירת המחדל של Qdrant לסוג הווקטור.

    מקור ·
  • בתים לקישור HNSW
    4 B (הגדרה קבועה)מקור ·
  • המקדם של Qdrant על הקישורים של השכבה התחתונה, עבור השכבות העליונות והתחזוקה.

    מקור ·
  • ID tracker לנקודה
    52 B (הגדרה קבועה)

    Qdrant שומרת 52 בתים לנקודה שממפים מזהים למיקומים פנימיים, ונשארים ב-RAM תמיד.

    מקור ·
  • המקדם של Qdrant על ה-payload הגולמי עבור מנגנון האחסון. ה-payload נשאר בדיסק (שכבת cold, ברירת המחדל של Qdrant).

    מקור ·
  • %

    מתווסף לסכומי ה-RAM והדיסק עבור ה-page cache, זמן הריצה וה-optimizer (RAM) וה-WAL, ה-snapshots והסגמנטים הזמניים (דיסק). הקצה העליון של כל טווח.

    מקור ·

מה שהזנתם וההנחות ששיניתם נשמרים בקישור של העמוד, אחרי ה-#.

קחו את התוצאה איתכם

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

vector-db-size.md
# מחשבון גודל למסד וקטורים ב-RAG: זיכרון ודיסק

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

## מה שהזנתם

- וקטורים (chunks): 1,000,000
- מודל embedding: OpenAI text-embedding-3-small (https://developers.openai.com/api/docs/guides/embeddings)
- ממדים: 1,536
- אינדקס: HNSW (גרף)
- קישורי HNSW לצומת (m): 16
- אחסון הווקטורים: float32 (בלי quantization)
- payload ממוצע לווקטור (בתים): 1,024
- מקדם שכפול (replication factor): 1

## תוצאה

- RAM: 5.91 GiB עד 7.1 GiB
- דיסק: 7.34 GiB עד 8.81 GiB
- RAM לווקטור, עותק אחד: 6,349.6 B

## פירוט

| שורה | ערך | הנחות בשימוש |
| --- | --- | --- |
| וקטורים (RAM ודיסק) | 5.72 GiB | בתים לממד, float32 |
| גרף HNSW (RAM ודיסק) | 146.48 MiB | בתים לקישור HNSW, שכבות עליונות ותחזוקה של HNSW |
| ID tracker (RAM ודיסק) | 49.59 MiB | ID tracker לנקודה |
| Payload (דיסק) | 1.43 GiB | תקורת אחסון ה-payload |
| RAM לפני מרווח | 5.91 GiB | בתים לממד, float32, בתים לקישור HNSW, שכבות עליונות ותחזוקה של HNSW, ID tracker לנקודה |
| דיסק לפני מרווח | 7.34 GiB | בתים לממד, float32, בתים לקישור HNSW, שכבות עליונות ותחזוקה של HNSW, ID tracker לנקודה, תקורת אחסון ה-payload |

## הנחות

- בתים לממד, float32: 4 B. רכיב float32 תופס 4 בתים: ברירת המחדל של Qdrant לסוג הווקטור. מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)
- בתים לקישור HNSW: 4 B. כל קישור בגרף הוא מזהה נקודה של 4 בתים; בשכבה התחתונה יש m × 2 קישורים לנקודה. מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)
- שכבות עליונות ותחזוקה של HNSW: 1.2. המקדם של Qdrant על הקישורים של השכבה התחתונה, עבור השכבות העליונות והתחזוקה. מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)
- ID tracker לנקודה: 52 B. Qdrant שומרת 52 בתים לנקודה שממפים מזהים למיקומים פנימיים, ונשארים ב-RAM תמיד. מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)
- תקורת אחסון ה-payload: 1.5. המקדם של Qdrant על ה-payload הגולמי עבור מנגנון האחסון. ה-payload נשאר בדיסק (שכבת cold, ברירת המחדל של Qdrant). מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)
- מרווח: 20%. מתווסף לסכומי ה-RAM והדיסק עבור ה-page cache, זמן הריצה וה-optimizer (RAM) וה-WAL, ה-snapshots והסגמנטים הזמניים (דיסק). הקצה העליון של כל טווח. מקור: https://qdrant.tech/documentation/capacity-planning/ (נקרא ב-16 באוק׳ 2026)

מחשבון vector-db 1.0.0 · מנוע @anaroq/calc 1.4.0 · תמונת נתונים 2026.10.4

פתיחת החישוב הזה: https://anaroq.com/he/tools/vector-db-sizer#k=eyJhc3N1bXB0aW9ucyI6e30sImNhbGMiOiJ2ZWN0b3ItZGIiLCJpbnB1dCI6eyJkaW1lbnNpb25zIjoxNTM2LCJobnN3TSI6MTYsImluZGV4IjoiaG5zdyIsIm1vZGVsIjoib3BlbmFpLXRleHQtZW1iZWRkaW5nLTMtc21hbGwiLCJwYXlsb2FkQnl0ZXMiOjEwMjQsInF1YW50aXphdGlvbiI6ImZsb2F0MzIiLCJyZXBsaWNhcyI6MSwidmVjdG9ycyI6MTAwMDAwMH0sInYiOjF9
איך המחשבונים עובדים: https://anaroq.com/he/methodology#calculators

מה הכלי עושה

המחשבון סוכם כל מבנה שמסד וקטורים שומר עבור הווקטורים שלכם: הווקטורים עצמם, האינדקס, ה-ID tracker וה-payload, כפול מקדם השכפול, ומפריד בין מה שחייב להיות ב-RAM למה שנשמר בדיסק. השיטה היא תכנון הקיבולת שפרסמה Qdrant, איבר אחר איבר; התיעוד של FAISS ושל Milvus נותן את האיברים של IVF.

איך זה עובד

  1. בסיס: וקטורים × מקדם השכפול, כי כל עותק מחזיק את כל הווקטורים.
  2. וקטורים: בסיס × ממדים × בתים לממד (float32: ‏4, ‏float16: ‏2). ב-quantization מסוג int8 (בית אחד) או binary (ביט אחד) העותק הדחוס הוא מה שנמצא ב-RAM, ווקטורי ה-float32 המקוריים נשארים בדיסק ל-rescoring.
  3. אינדקס: HNSW שומר בסיס × m × 2 קישורים × 4 בתים × 1.2 עבור השכבות העליונות. IVF שומר מזהה של 8 בתים לכל וקטור ו-centroid אחד מסוג float32 לכל אשכול. Flat לא שומר דבר נוסף וסורק את כל הווקטורים.
  4. ID tracker: ‏52 בתים לווקטור, תמיד ב-RAM. ‏Payload: בסיס × payload ממוצע × 1.5, בדיסק.
  5. RAM = וקטורים ב-RAM + אינדקס + ID tracker. דיסק = כל המבנים. כל טווח מתחיל בסכום הזה ומסתיים בסכום ועוד מרווח של 20% עבור ה-page cache, ה-optimizer, ה-WAL וה-snapshots. הגדלים בינאריים: ‏1 GiB = 2³⁰ בתים.
  6. כל מקדם מופיע תחת ההנחות עם עמוד התיעוד שממנו הוא נלקח; את מקדמי התקורה ואת המרווח אפשר לשנות.

דוגמה

1,000,000 chunks שהומרו עם text-embedding-3-small של OpenAI ‏(1536 ממדים), ‏HNSW עם m = 16, ‏float32, ‏1 KiB של payload לכל אחד ועותק אחד:

1,000,000 וקטורים · 1536 ממדים · HNSW m 16 · float32 · עותק אחד

RAM
5.91 GiB עד 7.1 GiB
דיסק
7.34 GiB עד 8.81 GiB
RAM לווקטור, עותק אחד
6,349.6 B

מגבלות

  • הערכת גודל, לא benchmark: היא לא אומרת דבר על מהירות שאילתות או על recall, והיא לא משווה בין מוצרים.
  • מקדמי התקורה הם של Qdrant. מסדים אחרים שונים: Weaviate סופרת 8 עד 10 בתים לכל קישור בגרף וממליצה להכפיל את זיכרון הווקטורים בגלל ה-garbage collector של Go, מה שמעל הקצה העליון של הטווח כאן.
  • ה-payload נספר בדיסק בלבד (שכבת cold, ברירת המחדל של Qdrant). Payload שנשמר ב-RAM, אינדקסים על ה-payload ווקטורים דלילים (sparse) לא נכללים.
  • חיפוש עם quantization כשהמקוריים בדיסק איטי יותר כשהוא מבצע rescoring; אם צריך את המהירות הזו, השאירו את המקוריים ב-RAM וספרו אותם כ-RAM.
  • בלי מחיר. כמה עולה שרת או מסד מנוהל עם RAM ודיסק בגודל הזה לא נכלל בעמוד הזה.

מתודולוגיה: איך מחושבים המספרים

מקורות

  1. ANAROQ calculator methodology: assumptions, units and rounding
  2. Qdrant Documentation: Capacity Planning
  3. Qdrant Documentation: Quantization
  4. FAISS wiki: Faiss indexes
  5. Milvus Documentation: IVF_FLAT
  6. Weaviate Documentation: Resource Planning

עודכן

הצעד הבא

Qdrant

כלי ציבורי חינמי של אנרוק, חברה שבונה תשתיות מחשוב. מה אנרוק בונה