שאלה האם רשתות עכשיו מהיר יותר מאשר דיסקים?


זוהי שאלה עיצוב תוכנה

נהגתי לעבוד על הכלל הבא עבור מהירות

cache memory > memory > disk > network

עם כל צעד 5-10 פעמים את השלב הקודם (למשל זיכרון המטמון הוא 10 פעמים מהר יותר מאשר הזיכרון הראשי).

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

האם למישהו יש ניסיון / מספרים / ייעוץ בתחום זה?

וכן, אני יודע שהדרך האמיתית היחידה לגלות היא לבנות ולמדוד, אבל תהיתי על הכלל.

ערוךYou

זהו הנתונים המעניינים מהתשובה העליונה:

  • נסיעה הלוך ושוב בתוך אותו מרכז נתונים 500,000 ns

  • הדיסק לחפש 10,000,000 ns

זה הלם בשבילי; המודל המנטלי שלי הוא כי סיבוב רשת הוא איטי מטבעו. וזה לא שלה - 10x שלה מהר יותר "דיסק עגול" דיסק.

ג 'ף attwood פורסם זה בלוג טוב על הנושא http://blog.codinghorror.com/the-infinite-space-between-words/


118
2018-02-21 23:46




לפעמים כן, לפעמים לא. איזו רשת? איזה דיסק? - John Gardeniers
הנתונים מעניינים אחרים מהתשובה העליונה: 1 MB סדרתי לקרוא מתוך רשת לעומת דיסק. אני חושד ש"סיבוב הנסיעה "משמיט כל העברת נתונים משמעותית. - Paul
פול: תלוי MTU שלך, אני בטוח. (1MB MTU? מדהים!) - Matt Simmons
אני אשמח לראות כמה תשובות אלה לשקול מחדש לאור ציוד רשת 10Gbps להיות זמין באופן נרחב. - chicks
רשת Gigabit לעומת פשיטה 5? - SoilSciGuy


תשובות:


הנה כמה מספרים שאתה כנראה מחפש, כפי שצוטט על ידי ג 'ף דין, עמית Google:

מספרים כולם צריכים לדעת

L1 cache reference                             0.5 ns
Branch mispredict                              5 ns
L2 cache reference                             7 ns
Mutex lock/unlock                            100 ns (25)
Main memory reference                        100 ns
Compress 1K bytes with Zippy              10,000 ns (3,000)
Send 2K bytes over 1 Gbps network         20,000 ns
Read 1 MB sequentially from memory       250,000 ns
Round trip within same datacenter        500,000 ns
Disk seek                             10,000,000 ns
Read 1 MB sequentially from network   10,000,000 ns
Read 1 MB sequentially from disk      30,000,000 ns (20,000,000)
Send packet CA->Netherlands->CA      150,000,000 ns

זה מתוך המצגת שלו שכותרתו עיצובים, שיעורים ועצות מבניית מערכות מבוזרות ואתה יכול לקבל את זה כאן:

השיחה ניתנה ב בקנה מידה גדול מערכות מבוזרות תווכה (LADIS) 2009.

מידע אחר


אומרים כי GCC -O4 מיילים את הקוד שלך כדי ג 'ף דין לשכתב.



127
2018-02-22 07:38



+1 מעניין מאוד! - 9dan
במצגות מסוימות יש ערכים שונים המופיעים בסוגריים. אני מניח של אחד בסוגריים היו שגויים והוא עדכן את הערכים. - David d C e Freitas
האם זה כל עידן ה- SSD מראש? ראה כאן עבור מספרים מעודכנים נוספים. - matt
אני באמת השתמשו במספרים אלה כדי לבנות מצגת המציגה מדוע כונני SSD משלמים עבור עצמם, כדי לשכנע את מנהל המשרד שלנו, כי אנחנו צריכים מכונות מהר יותר לעבוד על. כללו את המספרים עבור מידע טכני, אבל מכוון אותו כלפי לא טק ניהול ככל האפשר. - brichins


יש הרבה משתנים כשמדובר ברשת לעומת דיסק, אבל באופן כללי, הדיסק הוא מהיר יותר.

ה- SATA 3.0 ו- SAS הם 6 Gbps, לעומת רשתות 1Gbps פחות תקורה בפרוטוקול. עם RAID-10 15k SAS, הרשת הולכת להיראות כלב איטי. בנוסף, יש לך מטמון הדיסק וגם את האפשרות של harddrives מצב מוצק, אשר בהתאם לתרחיש, יכול גם להגדיל את המהירות. גישה אקראית לעומת גישה לנתונים עוקבים מגלמת גורם, כמו גם את גודל הבלוק שבו מועברים נתונים. זה הכל תלוי ביישום זה נמצא בשימוש כדי לגשת לדיסק.

עכשיו, אני אפילו לא נגע על העובדה כי מה שאתה מועבר על פני הרשת הולך או מגיע מדיסק בכל מקרה ... אז ....... שוב, הדיסק הוא מהיר יותר.


19
2018-02-22 01:41



נקודות להזכיר RAID אשר נותן לך מקביל קורא, משהו אשר אתה לא צפוי לקבל ברשת בכל עת בקרוב. כמובן, אם אנחנו מדברים על כוננים קשיחים ניידים מקומיים, אז משולבת של SAN מהיר רשת מהירה עשוי להיות מהיר יותר. במיוחד עם SSDs SAN זה. - Michael Dillon
רשתות מקבילות באופן טבעי - על מה אתה מדבר? זה טריוויאלי להפליא לקרוא ממערכות מרובות ברשת במצטבר; זה כל העניין מאחורי מערכות כמו Hadoop ו- MPI, שלא לדבר על BitTorrent ברור. - jgoldschrafe
עם SONET / SDH אתה יכול לקבל 38Gbps עדיין מהר יותר מאשר SAS. ו צבירה ברשת ניתן לעשות עם משהו כמו en.wikipedia.org/wiki/Link_aggregation - Mircea Vutcovici
@Jake כאשר מדברים על 6 Gbps, ייתכן שתרצה לעשות הבחנה ברורה בין רוחב הפס של הממשק לבין קצב שבו הדיסק יכול למעשה לספק נתונים. - NPE
אני לא אומר בשאלה שלי שאני מדבר על מרוחק במסד הנתונים זיכרון לעומת מקומי במטמון הדיסק - pm100


ובכן, זה תלוי אם משאב הרשת יש את הנתונים שאתה מבקש זמין (בזיכרון או דומה) או אם זה רק, בתורו, לקרוא אותו מדיסק.

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


10
2018-02-21 23:51



אתה מתכוון לחפש זמן על הדיסק הוא גדול יותר מאשר 10Gbit / s הבקשה? - Mircea Vutcovici
@Mircea, הוא אומר כי רשת 10Gbit צריך לקבל את זה נתונים ממקום כלשהו, ​​כך שזה יהיה מוגבל חביון של מקור זה, בתוספת חביון של הרשת. - Chris S
האחסון יכול להיות דיסק RAM. ראה: en.wikipedia.org/wiki/Solid-state_drive#DRAM-based - Mircea Vutcovici


IMX הדיסק הוא עדיין מהיר יותר. קצב ההעברה התיאורטי של הרשת הוא גבוה אבל בפועל אתה לא מתקרב לזה.

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


2
2018-02-21 23:50





הניסיון שלי עם רשתות gigabit הוא, בהתחשב השרת הנכון, כי אתה יכול לנצח ביצועים מקומיים במונחים של התפוקה ואת חביון. ראה בדיקות רשת: האם אנחנו מקבלים ביצועים Gigabit?

לכל דבר מעשי הייתי ממליץ לטפל ברשת אחסון מקומי כמו שווה להשתמש רק מטמוני זיכרון.

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

אם אתה משתמש במכונה סוף נמוך עם כונן קשיח איטי אז זה יהיה כמעט בוודאות להשתמש בחיבור רשת gigabit לשרת עם מערך אחסון מהיר.

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


2
2018-02-22 00:18





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

אני עובד על מערכות מחסן נתונים, ואת שאילתת DW הקנונית היא טבלה לסרוק. אם השאילתה שלך מגיעה יותר מכמה אחוזים מהשורות בטבלה (או מחיצה) למעשה, אז טבלה או מחיצה סריקה באמצעות I / O רציף יהיה יעיל יותר מאשר תוכנית שאילתה גישה אקראית באמצעות חיפושים אינדקס מחפש.

אחסון ברשת (כלומר, רשתות SAN) נוטה לא לבצע ביצועים טובים על זרימת עומסי עבודה, אלא אם כן הוא מכוון כראוי. אם SAN נמצא בשימוש עבור סביבת איחוד כללי המטרה זה יהיה כמעט בוודאות די תת אופטימלית עבור זרימה, עומס קוצני כמו מחסן נתונים. ראיתי נייר לבן הספק עולה כי אתה צריך על 3x מספר הדיסקים כדי לקבל את התפוקה אותו על SAN כי הוא לא מכוון עבור הזרמת I / O כמו אחד.

הניסיון שלי מסתדר עם זה. למעשה, מעולם לא הוצאתי מחסן נתונים לסביבת איחוד שבו לא הצלחתי להפעיל את אותו תהליך ETL במהירות רבה יותר על המחשב השולחני שלי.  יש לי גם נציגי מכירות של ספק גדול של ציוד SAN לומר את הרשומה כי הרבה לקוחות שלהם להשתמש לצרף אחסון ישיר עבור מערכת DW כי SANs הם לא מספיק מהר.

אחסון ברשת הוא לפחות סדר גודל יקר יותר עבור IOPS מאשר לצרף ישירות אחסון עבור עומסי עבודה אקראיים קרוב לשני סדרי גודל יקר יותר עבור הזרמת.


2
2018-02-27 21:11





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


1
2018-02-21 23:49



אלא אם כן הדיסק הוא גם צוואר הבקבוק בצד השני של חיבור הרשת ...
@ Argote: נכון, אבל אם תוכנת השרת נכתב כראוי, זה יהיה חיץ לתוך הזיכרון לפני כתיבה לדיסק. - amphetamachine


כן, באופן כללי, רשתות כיום מקבלים מהר יותר מאשר כוננים קשיחים, אבל זה עלול לחנוק עם הזמן.

אני חושב משמע אני קיים

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

אני מעדיף להסתכל על זה במונחים של סחר- offs ולא מי הוא החזק ביותר ...


1
2018-02-22 00:00



אני בספק אם כן, אולי. - John Gardeniers


אתה צריך לתאר מקרה שימוש מדויק עבור השוואה זו. Harddrives יש לחפש זמן + שיעור העברת מטמון. רשתות יש חביון, קצב העברה ותקורה פרוטוקול ...

אני חושב זיכרון המטמון המקורי שלך> זיכרון> דיסק> רשת עדיין עומד נכון בכלל


1
2018-02-22 00:02





הדיסק מחובר למעבד באמצעות SCSI, SAS או אוטובוס IDE. שהיא רשת פנימית המפעילה פרוטוקול ספציפי - SCSI או ATAPI. Ethernet נועד לעבוד על מרחקים ארוכים יותר והוא יכול להיות הרבה יותר לאט מאשר SAS / SCSI / IDE. אז איזה מהם הוא מהיר יותר, תלוי איזה טכנולוגיות אתה משווה. אם אתה משווה 20 שנים מחשב נייד HDD עם אחסון 10Gbps ב RAM, הזוכה יהיה תמיד ברשת. וכאשר אתה קונה אחסון אתה צריך להשוות את זה לעומת מחיר ויכולת ניהול.


0
2018-02-22 02:13