बेंचमार्क ssd on linux: क्रिस्टलडिसमार्क की तरह ही चीजों को खिड़कियों में कैसे मापा जाता है


26

मैं एक ssd को बेंचमार्क करना चाहता हूं (संभवतः एन्क्रिप्टेड फाइल सिस्टम के साथ) और इसकी तुलना खिड़कियों पर क्रिस्टलडिस्कमार्क द्वारा किए गए बेंचमार्क से कर सकता हूं।

विंडोज पर CrystalDiskMark

तो मैं क्रिस्टलडिसमार्क के समान चीजों को लगभग कैसे माप सकता हूं?

पहली पंक्ति (Seq) के लिए मुझे लगता है कि मैं कुछ ऐसा कर सकता था

LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc

sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024

लेकिन मैं ddमापदंडों के बारे में निश्चित नहीं हूं ।

यादृच्छिक 512KB, 4KB, 4KB (कतार गहराई = 32) के लिए गति-परीक्षण पढ़ता / लिखता है मुझे नहीं पता कि लिनक्स में मापों को कैसे पुन: पेश किया जाए? तो मैं यह कैसे कर सकता हूं?

पढ़ने की गति का परीक्षण करने के लिए कुछ ऐसा लगता sudo hdparm -Tt /dev/sdaहै जैसे मेरे लिए कोई मतलब नहीं है क्योंकि मैं उदाहरण के लिए बेंचमार्क की तरह कुछ चाहता हूं encfs

संपादित करें

@ अलको, @ यैन

शायद मुझे इस प्रश्न के बारे में प्रेरणा के बारे में कुछ लिखना चाहिए: मैं अपने ssd को बेंचमार्क करने और कुछ एन्क्रिप्शन समाधानों की तुलना करने की कोशिश कर रहा हूं। लेकिन यह एक और सवाल है ( मेरे सिस्टम पर विभिन्न एन्क्रिप्शन समाधानों को बेंचमार्क करने का सबसे अच्छा तरीका )। Ssd और बेंचमार्किंग के बारे में वेब में सर्फिंग करते समय मैंने अक्सर देखा है कि उपयोगकर्ता अपने CrystelDiskMark परिणामों को मंचों पर पोस्ट करते हैं। तो यह सवाल के लिए एकमात्र प्रेरणा है। मैं सिर्फ linux पर ऐसा ही करना चाहता हूं। मेरे विशेष बेंचमार्किंग के लिए मेरे अन्य प्रश्न देखें।


आप बेंचमार्किंग टूल का उपयोग क्यों नहीं करते हैं, जो दोनों प्रणालियों पर काम करता है?
अल्को

यह पाया गया, बहुत उपयोगी लगता है और तीन अलग-अलग ड्राइव पर मेरे संक्षिप्त परीक्षण में वास्तविक क्रिस्टलडिस्कमार्क को बहुत ही समान संख्या दी गई ... github.com/buty4649/fio-cdm
ljwobker

2019: यह क्यू एक नए सिरे से महत्वपूर्ण विषय का हकदार है, लेकिन यहां अपना ध्यान थोड़ा खो दिया है। "स्वीकार करें और संग्रह करें"।
रस्तफाइल

जवाबों:


22

मैं कहूंगा कि फियो को उन वर्कलोड के उत्पादन में कोई परेशानी नहीं होगी। ध्यान दें कि इसके नाम के बावजूद CrystalDiskMark वास्तव में एक विशेष डिस्क पर एक फाइलसिस्टम का एक बेंचमार्क है - यह अकेले डिस्क पर I / O कच्चे नहीं कर सकता है। जैसे कि इसमें हमेशा फाइलसिस्टम ओवरहेड होगा (जरूरी नहीं कि कोई बुरी चीज हो, लेकिन उदाहरण के लिए कुछ पता होना चाहिए क्योंकि फाइलसिस्टम की तुलना समान नहीं हो सकती है)।

क्रिस्टलडिस्कमार मैनुअल की जानकारी के पूरक द्वारा ऊपर स्क्रीनशॉट में आउटपुट की नकल करने पर आधारित एक उदाहरण (यह पूरा नहीं है, लेकिन सामान्य विचार देना चाहिए):

fio --loops=5 --size=1000m --filename=/mnt/fs/fiotest.tmp --stonewall --ioengine=libaio --direct=1 \
  --name=Seqread --bs=1m --rw=read \
  --name=Seqwrite --bs=1m --rw=write \
  --name=512Kread --bs=512k --rw=randread \
  --name=512Kwrite --bs=512k --rw=randwrite \
  --name=4kQD32read --bs=4k --iodepth=32 --rw=randread \
  --name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite
rm -f /mnt/fs/fiotest.tmp 

BE CAREFUL - यह उदाहरण स्थायी रूप से डेटा को नष्ट कर देता है /mnt/fs/fiotest.tmp!

फियो मापदंडों की सूची http://fio.readthedocs.io/en/latest/fio_nococ.html पर देखी जा सकती है ।


3
मैंने उबंटू 16.04 में और विंडोज 7 में क्रिस्टलडिस्कमार में फियो की कोशिश की। कुछ संख्याएँ मेल खाती हैं जबकि अन्य नहीं। अनुक्रमिक आर / डब्ल्यू 2 के एक कारक द्वारा बंद हो गया था। मतलब, लिनक्स मान सीडीएम v3.0.4 द्वारा सूचित किए गए 50% थे (ध्यान दें: वर्तमान संस्करण 6.0.0 है, लेकिन पुराने संस्करण अभी भी डाउनलोड के लिए उपलब्ध हैं)। W / w असमानता को मिटाने के लिए मैंने 1 मी के बजाय bs = 4m सेट किया। इसने संख्याओं को करीब कर दिया। 8 मीटर और 32 मीटर की कोशिश ने इसे और भी करीब बना दिया। अंतत: जैसे एनॉन ने कहा कि उनका जवाब पूरा नहीं है और @ ऑल्को की तरह, हमें दोनों ओएस पर समान उपकरण की आवश्यकता है। यह भी ध्यान दें कि नवीनतम सीडीएम 6 ओपी की तुलना में विभिन्न परीक्षणों का उपयोग करता है। अच्छी जानकारी Anon
वाहिद पजीरंदेह

2
@VahidPazirandeh रुचिकर, github.com/buty4649/fio-cdm/blob/master/fio-cdm में समान 1m सेटिंग्स हैं, शायद cdm का प्रलेखन काफी अच्छा नहीं है।
inf3rno

@ वाहिद-पजीरंदेह आपका स्वागत है। NB: यदि आप दोनों OSes पर एक ही उपकरण चाहते हैं तो ध्यान दें कि fio Windows के लिए भी एक संस्करण है।
एनॉन

8

मैंने एक स्क्रिप्ट बनाई जो फियो के साथ क्रिस्टलडिस्कमार्क के व्यवहार को दोहराने की कोशिश करती है। स्क्रिप्ट क्रिस्टलडिस्कमार्क 6 के विभिन्न संस्करणों में उपलब्ध सभी परीक्षणों को 512K और 4KQ8T8 परीक्षणों सहित उपलब्ध कराती है।

स्क्रिप्ट फियो और डीएफ पर निर्भर करती है । यदि आप df को स्थापित नहीं करना चाहते हैं, तो 21 के माध्यम से लाइन 19 को मिटा दें (स्क्रिप्ट अब प्रदर्शित नहीं होगी कि किस ड्राइव का परीक्षण किया जा रहा है) या टिप्पणीकार से संशोधित संस्करण का प्रयास करें । (अन्य संभावित मुद्दों को भी हल कर सकते हैं)

#!/bin/bash

LOOPS=5 #How many times to run each test
SIZE=1024 #Size of each test, multiples of 32 recommended for Q32 tests to give the most accurate results.
WRITEZERO=0 #Set whether to write zeroes or randoms to testfile (random is the default for both fio and crystaldiskmark); dd benchmarks typically only write zeroes which is why there can be a speed difference.

QSIZE=$(($SIZE / 32)) #Size of Q32Seq tests
SIZE+=m
QSIZE+=m

if [ -z $1 ]; then
    TARGET=$HOME
    echo "Defaulting to $TARGET for testing"
else
    TARGET="$1"
    echo "Testing in $TARGET"
fi

DRIVE=$(df $TARGET | grep /dev | cut -d/ -f3 | cut -d" " -f1 | rev | cut -c 2- | rev)
DRIVEMODEL=$(cat /sys/block/$DRIVE/device/model)
DRIVESIZE=$(($(cat /sys/block/$DRIVE/size)*512/1024/1024/1024))GB

echo "Configuration: Size:$SIZE Loops:$LOOPS Write Only Zeroes:$WRITEZERO
Running Benchmark on: /dev/$DRIVE, $DRIVEMODEL ($DRIVESIZE), please wait...
"

fio --loops=$LOOPS --size=$SIZE --filename=$TARGET/.fiomark.tmp --stonewall --ioengine=libaio --direct=1 --zero_buffers=$WRITEZERO --output-format=json \
  --name=Bufread --loops=1 --bs=$SIZE --iodepth=1 --numjobs=1 --rw=readwrite \
  --name=Seqread --bs=$SIZE --iodepth=1 --numjobs=1 --rw=read \
  --name=Seqwrite --bs=$SIZE --iodepth=1 --numjobs=1 --rw=write \
  --name=512kread --bs=512k --iodepth=1 --numjobs=1 --rw=read \
  --name=512kwrite --bs=512k --iodepth=1 --numjobs=1 --rw=write \
  --name=SeqQ32T1read --bs=$QSIZE --iodepth=32 --numjobs=1 --rw=read \
  --name=SeqQ32T1write --bs=$QSIZE --iodepth=32 --numjobs=1 --rw=write \
  --name=4kread --bs=4k --iodepth=1 --numjobs=1 --rw=randread \
  --name=4kwrite --bs=4k --iodepth=1 --numjobs=1 --rw=randwrite \
  --name=4kQ32T1read --bs=4k --iodepth=32 --numjobs=1 --rw=randread \
  --name=4kQ32T1write --bs=4k --iodepth=32 --numjobs=1 --rw=randwrite \
  --name=4kQ8T8read --bs=4k --iodepth=8 --numjobs=8 --rw=randread \
  --name=4kQ8T8write --bs=4k --iodepth=8 --numjobs=8 --rw=randwrite > $TARGET/.fiomark.txt

SEQR="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "Seqread"' | grep bw_bytes | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "Seqread"' | grep -m1 iops | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
SEQW="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "Seqwrite"' | grep bw_bytes | sed '2!d' | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "Seqwrite"' | grep iops | sed '7!d' | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
F12KR="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "512kread"' | grep bw_bytes | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "512kread"' | grep -m1 iops | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
F12KW="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "512kwrite"' | grep bw_bytes | sed '2!d' | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "512kwrite"' | grep iops | sed '7!d' | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
SEQ32R="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "SeqQ32T1read"' | grep bw_bytes | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "SeqQ32T1read"' | grep -m1 iops | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
SEQ32W="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "SeqQ32T1write"' | grep bw_bytes | sed '2!d' | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "SeqQ32T1write"' | grep iops | sed '7!d' | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
FKR="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kread"' | grep bw_bytes | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kread"' | grep -m1 iops | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
FKW="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kwrite"' | grep bw_bytes | sed '2!d' | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kwrite"' | grep iops | sed '7!d' | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
FK32R="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kQ32T1read"' | grep bw_bytes | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kQ32T1read"' | grep -m1 iops | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
FK32W="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kQ32T1write"' | grep bw_bytes | sed '2!d' | cut -d: -f2 | sed s:,::g)/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kQ32T1write"' | grep iops | sed '7!d' | cut -d: -f2 | cut -d. -f1 | sed 's: ::g')"
FK8R="$(($(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kQ8T8read"' | grep bw_bytes | sed 's/        "bw_bytes" : //g' | sed 's:,::g' | awk '{ SUM += $1} END { print SUM }')/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A15 '"name" : "4kQ8T8read"' | grep iops | sed 's/        "iops" : //g' | sed 's:,::g' | awk '{ SUM += $1} END { print SUM }' | cut -d. -f1)"
FK8W="$(($(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kQ8T8write"' | grep bw_bytes | sed 's/        "bw_bytes" : //g' | sed 's:,::g' | awk '{ SUM += $1} END { print SUM }')/1024/1024))MB/s IOPS=$(cat $TARGET/.fiomark.txt | grep -A80 '"name" : "4kQ8T8write"' | grep '"iops" '| sed 's/        "iops" : //g' | sed 's:,::g' | awk '{ SUM += $1} END { print SUM }' | cut -d. -f1)"

echo -e "
Results from /dev/$DRIVE, $DRIVEMODEL ($DRIVESIZE):  
\033[0;33m
Sequential Read: $SEQR
Sequential Write: $SEQW
\033[0;32m
512KB Read: $F12KR
512KB Write: $F12KW
\033[1;36m
Sequential Q32T1 Read: $SEQ32R
Sequential Q32T1 Write: $SEQ32W
\033[0;36m
4KB Read: $FKR
4KB Write: $FKW
\033[1;33m
4KB Q32T1 Read: $FK32R
4KB Q32T1 Write: $FK32W
\033[1;35m
4KB Q8T8 Read: $FK8R
4KB Q8T8 Write: $FK8W
"

rm $TARGET/.fiomark.txt $TARGET/.fiomark.tmp

जो इस तरह से परिणाम देगा:

Results from /dev/sdb, Corsair Force GT (111GB):  

Sequential Read: 533MB/s IOPS=0
Sequential Write: 125MB/s IOPS=0

512KB Read: 457MB/s IOPS=914
512KB Write: 133MB/s IOPS=267

Sequential Q32T1 Read: 534MB/s IOPS=16
Sequential Q32T1 Write: 134MB/s IOPS=4

4KB Read: 32MB/s IOPS=8224
4KB Write: 150MB/s IOPS=38460

4KB Q32T1 Read: 195MB/s IOPS=49951
4KB Q32T1 Write: 121MB/s IOPS=31148

4KB Q8T8 Read: 129MB/s IOPS=33149
4KB Q8T8 Write: 132MB/s IOPS=33796

(परिणाम रंग कोडित होते हैं, \033[x;xxmस्क्रिप्ट के निचले भाग में गूंज कमांड से (जहां x एक संख्या है) के सभी उदाहरणों को हटाने के लिए रंग कोडिंग को हटा दिया जाता है।)

बिना तर्क के चलने वाली स्क्रिप्ट आपके होम ड्राइव / विभाजन की गति का परीक्षण करेगी। यदि आप इसके बजाय इसका परीक्षण करना चाहते हैं, तो आप किसी अन्य हार्ड ड्राइव पर निर्देशिका में पथ भी दर्ज कर सकते हैं। स्क्रिप्ट चलाते समय लक्ष्य निर्देशिका में छिपी हुई अस्थायी फ़ाइलों को बनाता है जो इसे चलाने के बाद साफ हो जाता है (.fiomark.tmp और .fiomark.txt)।

आप परीक्षण के परिणामों को पूरा नहीं कर सकते हैं, लेकिन यदि आप कमांड को रद्द करते हैं, जबकि यह सभी परीक्षणों को पूरा करने से पहले चल रहा है, तो आपको पूर्ण परीक्षणों के परिणाम देखने को मिलेंगे और अस्थायी फाइलें बाद में भी नष्ट हो जाएंगी।

कुछ शोध के बाद, मैंने पाया कि क्रिस्टलडिस्कमार्क बेंचमार्क ड्राइव के समान मॉडल पर परिणाम देता है, जैसा कि मैंने कम से कम एक नज़र में, इस फियो बेंचमार्क के परिणामों को अपेक्षाकृत बारीकी से मिलाया है। जैसा कि मेरे पास एक विंडोज़ इंस्टॉलेशन नहीं है मैं यह सत्यापित नहीं कर सकता कि वे वास्तव में एक ही ड्राइव पर निश्चित रूप से कितने करीब हैं।

ध्यान दें कि आपको कभी-कभी थोड़े से परिणाम मिल सकते हैं, खासकर यदि आप परीक्षण करते समय पृष्ठभूमि में कुछ कर रहे हैं, तो परिणामों की तुलना करने के लिए लगातार दो बार परीक्षण चलाना उचित है।

इन परीक्षणों को चलाने में कम समय लगता है। वर्तमान में स्क्रिप्ट में डिफ़ॉल्ट सेटिंग्स एक नियमित (SATA) SSD के लिए उपयुक्त हैं।

विभिन्न ड्राइव के लिए अनुशंसित SIZE सेटिंग:

  • (SATA) SSD: 1024 (डिफ़ॉल्ट)
  • (कोई भी) एचडीडी: 256
  • (हाई एंड एनवीएमई) एसएसडी: 4096
  • (लो-मिड एंड एनवीएमई) एसएसडी: 1024 (डिफ़ॉल्ट)

एक उच्च अंत NVME में आम तौर पर लगभग 2GB / s पढ़ने की गति होती है (Intel Optane और Samsung 960 EVO इसके उदाहरण हैं, लेकिन बाद के मामले में मैं धीमी 4kb की गति के कारण 2048 की सिफारिश करूंगा।), एक लो-मिड एंड के बीच कहीं भी हो सकता है। ~ 500-1800MB / s पढ़ने की गति।

इन आकारों को समायोजित करने का प्रमुख कारण यह है कि परीक्षण कितने समय तक अन्यथा लेगा, उदाहरण के लिए पुराने / कमजोर HDDs के लिए, आप 0.4MB / s 4kb जितनी कम गति पढ़ सकते हैं। आप उस गति से 1GB के 5 छोरों की प्रतीक्षा कर रहे हैं, अन्य 4kb परीक्षणों में आमतौर पर 1MB / s की गति होती है। हमारे पास उनमें से 6 हैं। प्रत्येक रनिंग 5 लूप, क्या आप उन गति से 30GB डेटा के ट्रांसफर होने का इंतजार करते हैं? या आप इसके बजाय 7.5GB डेटा कम करना चाहते हैं (256MB / s पर यह 2-3 घंटे का परीक्षण है)

बेशक, उस स्थिति को संभालने के लिए आदर्श विधि 4k परीक्षणों से अलग अनुक्रमिक और 512k परीक्षण चलाने के लिए होगी (इसलिए क्रमिक और 512k परीक्षणों को कुछ 512m के साथ कहें, और फिर 32k पर 4k परीक्षण चलाने के लिए)

अधिक हाल के एचडीडी मॉडल हालांकि उच्च अंत हैं और इससे बेहतर परिणाम प्राप्त कर सकते हैं।

आखिर तुमने इसे हासिल कर ही लिया है। का आनंद लें!


क्या आपने जाँच की है कि आपकी स्क्रिप्ट विंडोज़ पर फियो के साथ कैसा व्यवहार करती है?
Anon

1
(Cestarian के अलावा अन्य पाठकों के लिए एक नोट: यदि आप एक नया उपकरण बना रहे हैं जो कि फियो का उपयोग करता है तो यदि संभव हो तो मानव पठनीय --output-format=jsonफियो आउटपुट को परिमार्जन न करें - JSON का उपयोग और पार्स करें। फियो का मानव पठनीय आउटपुट मशीनों के लिए नहीं है। और संस्करणों के बीच स्थिर नहीं है फियो। इस मामले का YouTube वीडियो देखें जहां फियो के मानव उत्पादन को कम करने के लिए एक अवांछनीय परिणाम था )
एनॉन

धन्यवाद, मैं इसे ध्यान में रखूंगा, दुख की बात है कि अब मेरे पास एक विंडोज़ इंस्टॉलेशन नहीं है, इसलिए मैं इसका परीक्षण नहीं कर सकता ... लेकिन, मैंने अपने एसएसडी के लिए क्रिस्टलडिस्कमार्क परिणाम देखने का फैसला किया और ऐसा लगता है कि मेरी याददाश्त गलत थी, क्योंकि मैं परिणाम जोड़ते हैं कि मैं fio पर क्या कर रहा हूँ सब के बाद। मेरे अंत में यह गलतफहमी थी कि मुझे लगता है कि परिणाम धीमा थे: / मैं इसे सही करूंगा। फ्यूचरप्रूफिंग के लिए json आउटपुट का उपयोग करने के लिए मैं जल्द ही इस उत्तर को भी अपडेट करूंगा, और शायद एक GUI संस्करण (मैंने इस पर काम करना शुरू कर दिया है, लेकिन gtkdialog को खराब रूप से प्रलेखित किया गया है और जिनीनेस सीमित है इसलिए मुझे कठिन समय हो रहा है)
Cestarian

1
@Cestarian, महान स्क्रिप्ट, लेकिन CentOS7 पर "बॉक्स से बाहर" काम नहीं कर रहा है। मुझे इसे थोड़ा संशोधित करना पड़ा ।
इगोर

1
@Igor दिलचस्प है, हाँ, मैंने इसे मंज़र पर बनाया है और मैं वास्तव में बैश पर बहुत अधिक विशेषज्ञ नहीं हूं :) मैंने जवाब में आपके संशोधित संस्करण का उल्लेख किया है बस किसी और को समस्या है।
5

5

आप उपयोग कर सकते हैं iozoneऔर bonnie। वे वही कर सकते हैं जो क्रिस्टल डिस्क का निशान और अधिक कर सकता है।

मैंने व्यक्तिगत iozoneकंप्यूटर से एंटरप्राइज़ स्टोरेज सिस्टम पर बेंचमार्किंग और तनाव परीक्षण उपकरणों का व्यक्तिगत रूप से उपयोग किया है। इसमें एक ऑटो मोड है जो सब कुछ करता है लेकिन आप इसे अपनी आवश्यकताओं के अनुरूप कर सकते हैं।


5
यह कैसे क्रिस्टलमार्क के साथ विस्तार से पुन: पेश करने के लिए?
छात्र

2
मैं एक howto लिखने के लिए अपनी पूरी कोशिश करेंगे, लेकिन मुझे उन परीक्षणों की सूची की आवश्यकता है जो क्रिस्टल डिस्क मार्क आयोजित करता है। क्या कोई अन्य परीक्षण है जो सॉफ्टवेयर स्क्रीनशॉट पर दिखाई देने वाले के बगल में चलता है।
बाविंदिरह

1
स्क्रीनशॉट में बस।
trr

1

मुझे यकीन नहीं है कि जब आप विस्तार से कर रहे हैं तो विभिन्न गहन परीक्षण किसी भी वास्तविक अर्थ को बनाते हैं।

ब्लॉक आकार, और कतार की गहराई जैसी सेटिंग्स, आपके SSD ATA इंटरफ़ेस के निम्न स्तर इनपुट / आउटपुट मापदंडों को नियंत्रित करने के लिए पैरामीटर हैं।

यह सब अच्छी तरह से और अच्छा है जब आप बस ड्राइव के खिलाफ कुछ बुनियादी परीक्षण कर रहे हैं सीधे एक विभाजन फ़ाइल में एक बड़ी फ़ाइल की तरह।

एक बार जब आप किसी एनएफ़केफ़ को बेंचमार्किंग के बारे में बात करना शुरू कर देते हैं, तो ये पैरामीटर विशेष रूप से आपके फाइल सिस्टम पर लागू नहीं होते हैं, फाइल सिस्टम सिर्फ एक इंटरफेस में कुछ और होता है जो अंततः एक फाइल सिस्टम पर वापस आता है जो ड्राइव पर वापस आता है।

मुझे लगता है कि यह समझना उपयोगी होगा कि आप वास्तव में क्या मापने की कोशिश कर रहे हैं, क्योंकि यहां खेलने के दो कारक हैं - कच्ची डिस्क IO गति, जिसे आप समय-समय पर विभिन्न डीडी कमांडों द्वारा परीक्षण कर सकते हैं (उदाहरण दे सकते हैं कि यह वही है जो आप हैं चाहते हैं) / बिना / encfs, या इस प्रक्रिया को एन्क्रिप्शन द्वारा सीपीयू बाउंड किया जाएगा और आप एन्क्रिप्शन एल्गोरिथ्म के रिश्तेदार थ्रूपुट का परीक्षण करने की कोशिश कर रहे हैं। जिस स्थिति में कतार की गहराई आदि के लिए पैरामीटर विशेष रूप से प्रासंगिक नहीं हैं।

दोनों के संबंध में, एक समयबद्ध डीडी कमांड आपको आपके द्वारा खोजे जाने वाले मूल थ्रूपुट आँकड़े देगा, लेकिन आपको इस बात पर विचार करना चाहिए कि आप क्या मापना चाहते हैं और उसके लिए प्रासंगिक पैरामीटर।

यह लिंक 'बफ़र्स / कैश को हराने' के बारे में आवश्यक कवरेज सहित समयबद्ध डीडी आदेशों का उपयोग करके डिस्क गति परीक्षण के लिए एक अच्छा मार्गदर्शक प्रदान करता है। संभवतः यह आपको आवश्यक जानकारी प्रदान करेगा। निर्णय लें कि आप थियो, डिस्क प्रदर्शन या एन्क्रिप्शन प्रदर्शन में अधिक रुचि रखते हैं, दो में से एक अड़चन होगी, और गैर-अड़चन को ट्यूनिंग करने से कुछ भी फायदा नहीं होने वाला है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.