במאמר הזה מוסבר איך לבצע השוואה למדד ייחוס של ביצועי Persistent Disk במכונות וירטואליות (VM) של Windows. במכונות וירטואליות של Linux, קראו את המאמר בדיקת ביצועים של Persistent Disk במכונה וירטואלית של Linux.
כדי למדוד את ה-IOPS ואת קצב הנתונים של דיסק שנמצא בשימוש במכונה פועלת, צריך להשוות את מערכת הקבצים עם ההגדרות הרצויות. האפשרות הזו מאפשרת לבדוק עומס עבודה מציאותי בלי לאבד את התוכן של הדיסק הקיים. חשוב לזכור שכאשר מבצעים השוואה של מערכת הקבצים בדיסק קיים, יש הרבה גורמים ספציפיים לסביבת הפיתוח שיכולים להשפיע על תוצאות ההשוואה, וייתכן שלא תגיעו למגבלות הביצועים של הדיסק.
כדי למדוד את הביצועים הגולמיים של Persistent Disk, צריך להשוות את התקן הבלוקים ישירות. אתם יכולים להשתמש באפשרות הזו כדי להשוות בין הביצועים של הדיסק הגולמי לבין מגבלות הביצועים של הדיסק.
במכונות וירטואליות מסוג C4, מערכת Windows תומכת בעומק מקסימלי של 1,024 לכל תור שליחה של מכשיר. כשתור מתמלא, Windows מפסיקה לשלוח קלט/פלט עד שהתור מתרוקן חלקית, מה שמפחית משמעותית את הביצועים. כדי למנוע את המצב הזה, מומלץ להגביל את עומסי העבודה של ההשוואה לעומק תור מצטבר של 1,024 לכל נפח מצורף.
הגדרת תוכנת ההשוואה לשוק
כדי לבדוק את הביצועים של Persistent Disk במכונות וירטואליות של Windows, משתמשים ב-DISKSPD.
פותחים את Powershell ומורידים את הכלי
DISKSPDבאמצעות הפקודה הבאה:$client = New-Object System.Net.WebClient $client.DownloadFile("https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip","$env:temp\DiskSpd-download.zip") Expand-Archive -LiteralPath "$env:temp\DiskSpd-download.zip" C:\DISKSPD Get-ChildItem C:\DISKSPD
בדיקת ביצועים של פעולות קלט/פלט לשנייה (IOPS) וקצב העברת נתונים של דיסק במכונה וירטואלית פועלת
כדי למדוד את ה-IOPS ואת קצב הנתונים של עומס עבודה מציאותי בדיסק פעיל במכונה וירטואלית פועלת בלי לאבד את תוכן הדיסק, צריך להשוות לספרייה חדשה במערכת הקבצים הקיימת.
בשלבים הבאים, נניח שהדיסק לבדיקה נטען בתור D: והפקודות מופעלות בחלון שורת הפקודה (cmd.exe) עם הרשאות אדמין:
מאמתים את הגדרת התוכנה של
DISKSPDומשנים את הספרייה לקובץ הבינארי של 64 ביט:cd C:\DISKSPD\amd64
יוצרים קובץ חדש בנפח 10GB בשם
DISKTEST.DATבדיסק:set TESTFILE=D:\DISKTEST.DAT diskspd -d0 -c10G %TESTFILE%
כדי לבדוק את קצב העברת הנתונים בכתיבה, מבצעים כתיבה רציפה עם כמה זרמים מקבילים (16 או יותר), באמצעות גודל בלוק קלט/פלט של 1MB ועומק קלט/פלט של 64 לפחות:
diskspd -d300 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
בודקים את IOPS של כתיבה על ידי ביצוע כתיבה אקראית, באמצעות גודל בלוק קלט/פלט של 4KB ועומק קלט/פלט של לפחות 256:
diskspd -d300 -b4K -o256 -Sh -w100 -r %TESTFILE%
כדי לבדוק את קצב הקריאה, מבצעים קריאות רציפות עם כמה זרמים מקבילים (16 או יותר), באמצעות גודל בלוק קלט/פלט של 1MB ועומק קלט/פלט של 64 לפחות:
diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTFILE%
בודקים את פעולות הקלט/פלט לשנייה (IOPS) של הקריאה על ידי ביצוע קריאות אקראיות, באמצעות גודל בלוק קלט/פלט של 4KB ועומק קלט/פלט של לפחות 256:
diskspd -d300 -b4K -o256 -Sh -r %TESTFILE%
פינוי מקום:
del %TESTFILE%
בדיקת ביצועים של Persistent Disk גולמי
כדי למדוד את הביצועים של נפחי Persistent Disk בלבד מחוץ לסביבת הפיתוח, בודקים את ביצועי הקריאה והכתיבה של מכשיר לאחסון ולאחזור בלוקים ב-Persistent Disk ובמכונה וירטואלית חד-פעמיים.
מוסיפים דיסק אחסון מתמיד (persistent disk) למכונת ה-VM שרוצים לבדוק.
מאמתים את הגדרת התוכנה של
DISKSPDומשנים את הספרייה לקובץ הבינארי של 64 ביט:cd C:\DISKSPD\amd64
מוודאים שאין בדיסק מחיצות לא שמורות. מזינים את הפקודה
diskpartבחלון שורת הפקודה עם הרשאות ניהול.diskpart
מציגים את רשימת הדיסקים שמחוברים ל-VM:
DISKPART> list diskבפלט מוצג הדיסק החדש בנפח 1TB שנוצר, שהוא Disk 1 בפלט לדוגמה הבא:
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 120 GB 1024 KB * Disk 1 Online 1024 GB 1023 GB *
בוחרים את הדיסק שרוצים לבדוק.
DISKPART> select disk 1מציגים את המחיצות בדיסק שנבחר.
DISKPART> list partitionPartition ### Type Size Offset ------------- ---------------- -------- ------- Partition 1 Reserved 15 MB 17 KB Partition 2 Primary 1024 GB 16 MBבוחרים את המחיצה הראשית 2:
DISKPART> select partition 2מוחקים את המחיצה שנבחרה:
DISKPART> delete partitionיציאה מ-diskpart
DISKPART> exit
אם בדיסק שאתם רוצים לבדוק יש מחיצות אחרות מלבד המחיצה השמורה, צריך לחזור על השלבים הקודמים. כשנשארת רק המחיצה Reserved, ממשיכים לשלבים הבאים:
אחרי שמזהים את הדיסק ומוודאים שאין מחיצות, מגדירים את משתנה הסביבה
TESTDRIVEל-"#" ואחריו את מספר הדיסק לבדיקה.C:/> set TESTDRIVE=#1כדי לבדוק את קצב העברת הנתונים בכתיבה, מבצעים כתיבה רציפה עם כמה זרמים מקבילים (16 או יותר), באמצעות גודל בלוק קלט/פלט של 1MB ועומק קלט/פלט של 64 לפחות:
diskspd -d300 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
בודקים את IOPS של כתיבה על ידי ביצוע כתיבה אקראית, באמצעות גודל בלוק קלט/פלט של 4KB ועומק קלט/פלט של לפחות 256:
diskspd -d300 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
בדיקת זמן האחזור של הכתיבה. בזמן בדיקת זמן האחזור של הקלט/פלט, המכונה הווירטואלית לא יכולה להגיע לרוחב הפס המקסימלי או ל-IOPS, אחרת זמן האחזור שנצפה לא ישקף את זמן האחזור בפועל של הקלט/פלט ב-Persistent Disk.
diskspd -d300 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
כדי לבדוק את קצב הקריאה, מבצעים קריאות רציפות עם כמה זרמים מקבילים (16 או יותר), באמצעות גודל בלוק קלט/פלט של 1MB ועומק קלט/פלט של 64 לפחות:
diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
בודקים את פעולות הקלט/פלט לשנייה (IOPS) של הקריאה על ידי ביצוע קריאות אקראיות, באמצעות גודל בלוק קלט/פלט של 4KB ועומק קלט/פלט של לפחות 256:
diskspd -d300 -b4K -o256 -Sh -r %TESTDRIVE%
כדי לבדוק את זמן האחזור של הקריאה, חשוב למלא את הדיסק בנתונים כדי לקבל מדידה מציאותית של זמן האחזור. במהלך הבדיקה, המכונה הווירטואלית לא יכולה להגיע למגבלות של IOPS או של תפוקה, כי אחרי שה-Persistent Disk מגיע למגבלת הניצול המלא שלו, הוא דוחה פעולות קלט/פלט נכנסות, והדבר בא לידי ביטוי כעלייה מלאכותית בזמן האחזור של פעולות קלט/פלט.
diskspd -d300 -b4K -o4 -Sh -r -L %TESTDRIVE%
בדיקת רוחב הפס של קריאה רציפה.
diskspd -d300 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
בדיקת רוחב הפס של כתיבה רציפה.
diskspd -d300 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
מנקים את הדיסק לאחסון מתמיד ואת ה-VM החד-פעמיים:
- מוחקים את הדיסק ששימש להערכת הביצועים.
- מוחקים את המכונה הווירטואלית שנוצרה לצורך בדיקת הביצועים.