كيفية التحقق من أداء القرص الصلب (إما عن طريق محطة أو واجهة المستخدم الرسومية). سرعة الكتابة. سرعة القراءة. حجم ذاكرة التخزين المؤقت والسرعة. سرعة عشوائية.
طريقة المحطة
hdparm
هو مكان جيد للبدء.
sudo hdparm -Tt /dev/sda/dev/sda:Timing cached reads: 12540 MB in 2.00 seconds = 6277.67 MB/secTiming buffered disk reads: 234 MB in 3.00 seconds = 77.98 MB/sec
sudo hdparm -v /dev/sda
سوف تعطي المعلومات كذلك.
dd
سوف تعطيك معلومات عن سرعة الكتابة.
إذا كان محرك الأقراص لا يحتوي على نظام ملفات (و عندها فقط) ، استخدم of=/dev/sda
.
خلاف ذلك ، جبل على /تمب والكتابة ثم حذف ملف إخراج الاختبار.
dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output10240+0 records in10240+0 records out83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s
طريقة رسومية
- >>انتقل إلى النظام - الإدارة-القرص المرافق.
- بدلا من ذلك ، قم بتشغيل الأداة المساعدة لقرص جنوم من سطر الأوامر عن طريق التشغيل
gnome-disks
- بدلا من ذلك ، قم بتشغيل الأداة المساعدة لقرص جنوم من سطر الأوامر عن طريق التشغيل
- حدد القرص الثابت في الجزء الأيمن.
- الآن انقر فوق الزر" قياس أداء محرك الأقراص " في الجزء الأيسر.
- تفتح نافذة جديدة بها مخططات.سوف تجد واثنين من الأزرار. واحد هو "بدء القراءة فقط المعيار" وآخر هو "بدء القراءة / الكتابة المعيار". عند النقر على زر أي شخص يبدأ القياس من القرص الثابت.
كيفية قياس إدخال/إخراج القرص
هل هناك شيء أكثر تريد?
سومينن على حق، يجب أن نستخدم نوعا من المزامنة ؛ ولكن هناك طريقة أبسط ، كونف=فداتاسينك سوف قيام بهذه المهمة:
dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output1024+0records in1024+0 records out402653184 bytes (403 MB) copied, 3.19232 s, 126 MB/s
إذا كنت تريد الدقة ، يجب عليك استخدام fio
. يتطلب قراءة الدليل (man fio
) ولكنها سوف تعطيك نتائج دقيقة. لاحظ أنه لأي دقة ، تحتاج إلى تحديد ما تريد قياسه بالضبط. بعض الأمثلة:
سرعة قراءة متسلسلة مع كتل كبيرة (يجب أن يكون هذا بالقرب من الرقم الذي تراه في مواصفات محرك الأقراص الخاص بك):
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
سرعة الكتابة متتابعة مع كتل كبيرة (يجب أن يكون هذا بالقرب من الرقم الذي تراه في مواصفات محرك الأقراص الخاص بك):
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
قراءة عشوائية 4 ك 1 د. ق (هذا هو الرقم الذي يهم حقا لأداء العالم الحقيقي إلا إذا كنت تعرف أفضل على وجه اليقين):
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting
مختلط عشوائي 4 كيلو قراءة وكتابة 1 د. ق مع المزامنة (هذا هو أسوأ رقم حالة يجب أن تتوقعه من محرك الأقراص الخاص بك ، وعادة ما يكون أقل من 1 ٪ من الأرقام المدرجة في ورقة المواصفات):
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting
زيادة --size
حجة لزيادة حجم الملف. قد يؤدي استخدام ملفات أكبر إلى تقليل الأرقام التي تحصل عليها اعتمادا على تقنية محرك الأقراص والبرامج الثابتة. سوف الملفات الصغيرة تعطي & مثل; جيد جدا & مثل; نتائج وسائل الإعلام التناوب لأن رئيس قراءة لا تحتاج إلى نقل كثيرا. إذا كان جهازك بالقرب فارغة ، وذلك باستخدام ملف كبير بما يكفي لملء ما يقرب من محرك الأقراص سوف تحصل على أسوأ سلوك حالة لكل اختبار. في حالة سد ، حجم الملف لا يهم كثيرا.
ومع ذلك ، لاحظ أنه بالنسبة لبعض وسائط التخزين حجم الملف ليست مهمة مثل إجمالي البايتات المكتوبة خلال فترة زمنية قصيرة. على سبيل المثال ، بعض محركات الأقراص الصلبة لديها أداء أسرع بكثير مع كتل تمحى مسبقا أو قد يكون لها مساحة فلاش سلك الصغيرة التي تستخدم ذاكرة التخزين المؤقت الكتابة وتغيير الأداء مرة واحدة ذاكرة التخزين المؤقت سلك ممتلئ (على سبيل المثال سلسلة سامسونج ايفو التي لديها 20-50 غيغابايت ذاكرة التخزين المؤقت سلك). وكمثال آخر ، محركات الأقراص الصلبة سيجيت سمر لديها حوالي 20 غيغابايت مساحة ذاكرة التخزين المؤقت بمر التي لديها أداء عال جدا ولكن بمجرد أن يحصل على كامل ، والكتابة مباشرة إلى منطقة سمر قد خفض الأداء إلى 10 ٪ من الأصلي. والطريقة الوحيدة لرؤية هذا الأداء ديغراشيون هو أولا كتابة 20 + غيغابايت في أسرع وقت ممكن والاستمرار في الاختبار الحقيقي بعد ذلك مباشرة. بالطبع ، كل هذا يعتمد على عبء العمل الخاص بك: إذا كان الوصول إلى الكتابة الخاص بك متعطشا مع تأخيرات طويلة تسمح للجهاز بتنظيف ذاكرة التخزين المؤقت الداخلية ، فإن تسلسلات الاختبار الأقصر ستعكس أدائك في العالم الحقيقي بشكل أفضل. إذا كنت بحاجة إلى القيام بالكثير من الإعلام والتوعية ، تحتاج إلى زيادة على حد سواء --io_size
و --runtime
المعلمات. لاحظ أن بعض وسائل الإعلام (على سبيل المثال معظم رخيصة أجهزة فلاش) سوف تعاني من مثل هذا الاختبار لأن رقائق فلاش فقيرة بما يكفي لارتداء أسفل بسرعة كبيرة. في رأيي ، إذا كان أي جهاز ضعيفا بما يكفي لعدم التعامل مع هذا النوع من الاختبارات ، فلا ينبغي استخدامه للاحتفاظ بأي بيانات قابلة للقيمة في أي حال. ومع ذلك ، لا تكرر اختبارات الكتابة الكبيرة لمدة 1000 مرة لأن جميع خلايا الفلاش سيكون لها مستوى معين من التآكل مع الكتابة.
وبالإضافة إلى ذلك ، قد يكون بعض أجهزة سد عالية الجودة أكثر ذكاء خوارزميات التسوية ارتداء حيث ذاكرة التخزين المؤقت سلك الداخلية لديها ما يكفي من الذكاء لتحل محل البيانات في مكان إذا كان يجري إعادة كتابة في حين أن البيانات لا تزال في ذاكرة التخزين المؤقت سلك. بالنسبة لهذه الأجهزة ، إذا كان ملف الاختبار أصغر من إجمالي ذاكرة التخزين المؤقت لسلك للجهاز، فإن الاختبار الكامل يكتب دائما إلى ذاكرة التخزين المؤقت لسلك فقط وتحصل على أرقام أداء أعلى مما يمكن للجهاز دعمه لعمليات الكتابة الأكبر. لذلك بالنسبة لهذه الأجهزة ، يبدأ حجم الملف في الأهمية مرة أخرى. إذا كنت تعرف عبء العمل الفعلي الخاص بك فمن الأفضل لاختبار مع أحجام الملفات التي سترى فعلا في الحياة الحقيقية. إذا كنت لا تعرف عبء العمل المتوقع ، فإن استخدام حجم ملف الاختبار الذي يملأ حوالي 50 ٪ من جهاز التخزين يجب أن يؤدي إلى نتيجة متوسطة جيدة لجميع تطبيقات التخزين. وبطبيعة الحال ، لإعداد غارة 50 تيرابايت ، والقيام اختبار الكتابة مع 25 تيرابايت ملف الاختبار سوف يستغرق بعض الوقت!
لاحظ أن fio
سيتم إنشاء الملف المؤقت المطلوب على الجولة الأولى. سيتم ملؤها ببيانات عشوائية زائفة لتجنب الحصول على أرقام جيدة جدا من الأجهزة التي تحاول الغش في المعايير عن طريق ضغط البيانات قبل كتابتها إلى التخزين الدائم. سيتم استدعاء الملف المؤقت fio-tempfile.dat
في الأمثلة أعلاه وتخزينها في دليل العمل الحالي. لذلك يجب عليك أولا التغيير إلى الدليل المثبت على الجهاز الذي تريد اختباره. ال fio
يدعم أيضا استخدام الوسائط المباشرة كهدف اختبار ، لكنني أقترح بالتأكيد قراءة الصفحة اليدوية قبل محاولة ذلك لأن الخطأ المطبعي يمكنه الكتابة فوق نظام التشغيل بالكامل عندما يستخدم المرء الوصول المباشر إلى وسائط التخزين (على سبيل المثال الكتابة عن طريق الخطأ إلى جهاز نظام التشغيل بدلا من جهاز الاختبار).
إذا كان لديك سد جيدة وتريد أن ترى أرقام أعلى ، وزيادة --numjobs
أعلاه. الذي يحدد التزامن للقراءة والكتابة. جميع الأمثلة المذكورة أعلاه لها numjobs
اضبط على 1
وبالتالي فإن الاختبار هو حول عملية واحدة مترابطة القراءة والكتابة (ربما مع عمق قائمة الانتظار أو ق مجموعة مع iodepth
). يجب أن تحصل محركات أقراص الحالة الصلبة المتطورة (مثل إنتل أوبتان 905 بكسل) على أرقام عالية حتى بدون زيادة numjobs
الكثير (على سبيل المثال. 4
يجب أن يكون كافيا للحصول على أعلى أرقام المواصفات) ولكن بعض محركات الأقراص الصلبة تتطلب الذهاب إلى النطاق 32
-128
للحصول على أرقام المواصفات لأن الكمون الداخلي لتلك الأجهزة أعلى ولكن الإنتاجية الإجمالية مجنونة. لاحظ أن الزيادة numbjobs
لقيم عالية عادة ما يزيد من الناتج الأداء القياسي أرقام ولكن نادرا ما يعكس أداء العالم الحقيقي بأي شكل من الأشكال.
أنا لا أوصي باستخدام /dev/urandom
لأنه البرنامج القائم وبطيئة كما خنزير. من الأفضل أن تأخذ جزءا من البيانات العشوائية على رامديسك. على القرص الثابت اختبار عشوائي لا يهم ، لأن كل بايت هو مكتوب كما هو(أيضا على سد مع د). ولكن إذا كنا اختبار ديدوبد تجمع زفس مع الصفر النقي أو بيانات عشوائية ، وهناك فرق كبير في الأداء.
يجب أن تكون وجهة نظر أخرى هي تضمين وقت المزامنة ؛ تستخدم جميع أنظمة الملفات الحديثة التخزين المؤقت في عمليات الملف.
لقياس سرعة القرص حقا وليس الذاكرة ، يجب علينا مزامنة نظام الملفات للتخلص من تأثير التخزين المؤقت. يمكن القيام بذلك بسهولة عن طريق:
time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync"
بهذه الطريقة تحصل على الإخراج:
sync ; time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync" ; rm testfile 1024+0 records in1024+0 records out104857600 bytes (105 MB) copied, 0.270684 s, 387 MB/sreal 0m0.441suser 0m0.004ssys 0m0.124s
>لذا فإن معدل بيانات القرص هو 104857600 / 0.441 = 237772335 ب / ث-237 ميجابايت / ثانية
هذا أقل بأكثر من 100 ميجابايت/ثانية من التخزين المؤقت.
سعيد القياس,
إذا كنت ترغب في مراقبة القرص القراءة والكتابة السرعة في الوقت الحقيقي يمكنك استخدام يوتوب أداة.
هذا مفيد للحصول على معلومات حول كيفية أداء القرص لتطبيق معين أو عبء عمل معين. سيظهر لك الإخراج سرعة القراءة / الكتابة لكل عملية ، وإجمالي سرعة القراءة / الكتابة للخادم ، على غرار top
.
تثبيت iotop
:
sudo apt-get install iotop
تشغيله:
sudo iotop
هذه الأداة مفيدة لفهم كيفية أداء القرص لعبء عمل معين مقابل اختبارات أكثر عمومية ونظرية.
سرعة الكتابة
$ dd if=/dev/zero of=./largefile bs=1M count=10241024+0 records in1024+0 records out1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s
حجم الكتلة هو في الواقع كبير جدا. يمكنك المحاولة بأحجام أصغر مثل 64 كيلو أو حتى 4 كيلو.
سرعة القراءة
قم بتشغيل الأمر التالي لمسح ذاكرة التخزين المؤقت
$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
الآن قراءة الملف الذي تم إنشاؤه في اختبار الكتابة:
$ dd if=./largefile of=/dev/null bs=4k165118+0 records in165118+0 records out676323328 bytes (676 MB) copied, 3.0114 s, 225 MB/s
بوني++ هو فائدة المعيار النهائي وأنا أعلم لينكس.
(أنا حاليا إعداد قرص حي لينكس في العمل مع بوني-على ذلك لاختبار الجهاز القائم على ويندوز لدينا معها!)
فإنه يعتني التخزين المؤقت ، المزامنة ، بيانات عشوائية ، موقع عشوائي على القرص ، تحديثات صغيرة الحجم ، تحديثات كبيرة ، يقرأ ، يكتب ، الخ. مقارنة أوسبكي ، القرص الصلب (الروتاري) ، محرك الأقراص الصلبة ونظام الملفات القائم على ذاكرة الوصول العشوائي يمكن أن تكون مفيدة للغاية للمبتدئ.
ليس لدي أي فكرة إذا تم تضمينه في أوبونتو ، ولكن يمكنك تجميعها من المصدر بسهولة.
بعض التلميحات حول كيفية استخدام بوني++
bonnie++ -d [TEST_LOCATION] -s [TEST_SIZE] -n 0 -m [TEST_NAME] -f -b -u [TEST_USER] bonnie++ -d /tmp -s 4G -n 0 -m TEST -f -b -u james
أكثر قليلا في: بوني بسيط EXAMPLE مثال.
Similar question has been asked over on linux - How can I benchmark my HDD? - Unix & Linux Stack Exchange , file io - Testing IO performance in Linux - Stack Overflow and io - I/O Performance Benchmarking Linux - Server Fault .