ব্যাডব্লক ব্যবহার করার সময় আমি কীভাবে সঠিক পরামিতিগুলি চয়ন করব?


9

আমি badblocksখারাপ ব্লকগুলির জন্য আমার নতুন ড্রাইভটি পরীক্ষা করতে ব্যবহার করতে চাই , তবে আমি নিশ্চিত না যে ব্লকের আকারের জন্য মানগুলি এবং সমান্তরালভাবে পরীক্ষার জন্য ব্লকের সংখ্যা কীভাবে চয়ন করতে পারি I'm ম্যান পেজটি কেবল বলেছেন:

-b block-size বাইটগুলিতে ব্লকের আকার নির্দিষ্ট করুন। ডিফল্ট 1024।

-c number of blocksএকসাথে পরীক্ষিত ব্লকের সংখ্যা। ডিফল্ট 64 হয়।

ড্রাইভটি পরীক্ষা করার জন্য 2 টিবি বড়, তাই আমি এমন মান ব্যবহার করতে চাই যা এই প্রক্রিয়াটিকে কয়েক দিন সময় দেয় না। :-)

এফডাব্লুআইডাব্লু, smartmoontoolsরিপোর্ট:

সেক্টর আকার: 512 বাইট যৌক্তিক, 4096 বাইট শারীরিক


1
একটি অনুমান হিসাবে, আমি ডিফল্ট বিকল্পগুলি সহ আমার 2 টিবি ড্রাইভে একটি ব্যাডব্লকস স্ক্যান চালিয়েছি এবং এটি প্রায় 6 ঘন্টা সময় নিয়েছে। আশা করি কেউ আপনাকে এটি কাটাতে সহায়তা করবে।
ক্রিস হার্পার

ধন্যবাদ, এটি খুব খারাপ শোনাচ্ছে না (সত্যিই: ডি)
horque

@ রুট 45 যা এটি পায় ততটাই ভাল। এটি 92.6 এমবি / সেকেন্ডের একটি টেকসই থ্রুপুট, যা এই জাতীয় ড্রাইভগুলি সেরা করতে পারে।
psusi

উত্তর:


5

যেহেতু আপনার ড্রাইভে একটি 4096 বাইট শারীরিক ক্ষেত্রের আকার রয়েছে, আপনি ব্যবহার করতে চান -b 4096। আমি মনে করি না -c তর্কটি খুব বেশি পার্থক্য করে, তাই কেবল এটি ছেড়ে দিন।

এছাড়াও ড্রাইভের অভ্যন্তরীণ স্মার্ট পরীক্ষা ব্যাডব্লকগুলির চেয়ে ভাল এবং দ্রুত, সুতরাং স্মার্টমনটোল বা ডিস্ক ইউটিলিটিটি চালানোর জন্য এটি ব্যবহার করা আরও ভাল ধারণা।


ভাল, দ্রুত ... অভ্যন্তরীণ দীর্ঘ স্মার্ট পরীক্ষা কয়েক মিনিটের মধ্যে শেষ হবে - চার ঘন্টা চালানোর পরে। ব্লক আকার হিসাবে 4096 বাইট ব্যবহার করবে এবং -সি বিকল্পের সাথে পরীক্ষা করবে।
htorque

শেষ পর্যন্ত স্মার্ট পরীক্ষাটি ছয় ঘন্টা সময় নেয়। আমি তখন সমান্তরালভাবে পরীক্ষার জন্য ব্লকের সংখ্যার জন্য বিভিন্ন মান পরীক্ষা করেছি এবং তারা সময়টিকে মোটেই প্রভাবিত করে না বলে মনে হয়। সুতরাং আমি অনুমান করি যে এটি কেবলমাত্র ব্লকের আকারকে সামঞ্জস্য করা ঠিক।
htorque

3

বিভিন্ন সেটিংস পরীক্ষা করার জন্য আমি একটি বেঞ্চমার্ক সরঞ্জাম তৈরি করেছি। পরীক্ষায় আপনার ডেটাটি দীর্ঘ সময় নিতে এবং সরাতে পারে, সুতরাং দয়া করে যত্ন সহ ব্যবহার করুন।

badblocks_benchmark.sh:

#!/bin/bash

blocks=4194304      # 2^22, must be dividable by 2^8 (max i) = 256
block_size=512

result=""
for i in {1..8}
do
  block_count=1

  for j in {1..18}
  do
    echo -n "Benchmark with block count: $block_count, block size: $block_size: "
    execution_time=`/usr/bin/time 2>&1 -f "%Es" badblocks >/dev/null -w -b $block_size -c $block_count -t random $1 $blocks`
    status=$?
    if [ $status -eq 0 ]; then
      result=`echo -e "$result""\n""$execution_time: badblocks -b $block_size -c $block_count"`
      echo "$execution_time"
    fi

    block_count=$(( $block_count * 2 ))
  done

  block_size=$(( $block_size * 2 ))
  blocks=$(( $blocks / 2 ))
done

echo "Result:"
echo "$result" | sort --numeric-sort

আপনি এটি হিসাবে ব্যবহার করতে পারেন:

./badblocks_benchmark.sh /dev/sdX

আপনি যদি মাত্র 4 কে ব্লক দিয়ে বেঞ্চমার্ক করতে চান তবে:

#!/bin/bash

blocks=4194304      # 2^22, you can use any 2^x number 
block_size=4096

result=""
block_count=1

for j in {1..18}
do
  echo -n "Benchmark with block count: $block_count, block size: $block_size: "
  execution_time=`/usr/bin/time 2>&1 -f "%Es" badblocks >/dev/null -w -b $block_size -c $block_count -t random $1 $blocks`
  status=$?
  if [ $status -eq 0 ]; then
    result=`echo -e "$result""\n""$execution_time: badblocks -b $block_size -c $block_count"`
    echo "$execution_time"
  fi

  block_count=$(( $block_count * 2 ))
done

echo "Result:"
echo "$result" | sort --numeric-sort

আমার মানদণ্ডের উপর ভিত্তি করে -c (ডিফল্ট 64) ছাড়াই কেবল -b 4096 ব্যবহার করা বেশ ভাল।

আমার ফলাফল (ছোট আরও ভাল): সেকেন্ড এবং আর্গুমেন্টে কার্যকর করার সময়

0:28.50s: badblocks -b 1024 -c 512
0:28.50s: badblocks -b 4096 -c 1024
0:28.50s: badblocks -b 512 -c 1024
0:28.50s: badblocks -b 65536 -c 8
0:28.51s: badblocks -b 2048 -c 1024
0:28.51s: badblocks -b 32768 -c 16
0:28.51s: badblocks -b 65536 -c 128
0:28.51s: badblocks -b 65536 -c 64
0:28.52s: badblocks -b 32768 -c 128
0:28.52s: badblocks -b 65536 -c 4
0:28.52s: badblocks -b 8192 -c 64
0:28.53s: badblocks -b 16384 -c 512
0:28.53s: badblocks -b 16384 -c 8
0:28.53s: badblocks -b 32768 -c 32
0:28.53s: badblocks -b 32768 -c 4
0:28.53s: badblocks -b 32768 -c 64
0:28.53s: badblocks -b 65536 -c 16
0:28.53s: badblocks -b 8192 -c 512
0:28.54s: badblocks -b 4096 -c 256
0:28.54s: badblocks -b 4096 -c 32
0:28.54s: badblocks -b 4096 -c 64
0:28.54s: badblocks -b 8192 -c 128
0:28.55s: badblocks -b 1024 -c 1024
0:28.55s: badblocks -b 1024 -c 256
0:28.55s: badblocks -b 16384 -c 256
0:28.55s: badblocks -b 2048 -c 128
0:28.55s: badblocks -b 2048 -c 64
0:28.55s: badblocks -b 32768 -c 8
0:28.55s: badblocks -b 4096 -c 16
0:28.55s: badblocks -b 512 -c 2048
0:28.55s: badblocks -b 512 -c 256
0:28.55s: badblocks -b 65536 -c 1
0:28.55s: badblocks -b 8192 -c 1024
0:28.55s: badblocks -b 8192 -c 16
0:28.55s: badblocks -b 8192 -c 256
0:28.55s: badblocks -b 8192 -c 32
0:28.56s: badblocks -b 2048 -c 2048
0:28.56s: badblocks -b 512 -c 512
0:28.57s: badblocks -b 1024 -c 64
0:28.57s: badblocks -b 16384 -c 128
0:28.57s: badblocks -b 16384 -c 4
0:28.57s: badblocks -b 16384 -c 64
0:28.57s: badblocks -b 2048 -c 512
0:28.57s: badblocks -b 2048 -c 8192
0:28.57s: badblocks -b 32768 -c 256
0:28.57s: badblocks -b 4096 -c 128
0:28.57s: badblocks -b 4096 -c 2048
0:28.57s: badblocks -b 512 -c 16384
0:28.57s: badblocks -b 65536 -c 32
0:28.57s: badblocks -b 65536 -c 65536
0:28.57s: badblocks -b 8192 -c 8
0:28.58s: badblocks -b 1024 -c 2048
0:28.58s: badblocks -b 1024 -c 4096
0:28.58s: badblocks -b 16384 -c 16
0:28.58s: badblocks -b 2048 -c 4096
0:28.58s: badblocks -b 4096 -c 512
0:28.58s: badblocks -b 65536 -c 131072
0:28.59s: badblocks -b 1024 -c 8192
0:28.59s: badblocks -b 2048 -c 256
0:28.59s: badblocks -b 2048 -c 32
0:28.59s: badblocks -b 32768 -c 2
0:28.60s: badblocks -b 1024 -c 128
0:28.60s: badblocks -b 1024 -c 16384
0:28.60s: badblocks -b 512 -c 4096
0:28.60s: badblocks -b 65536 -c 2
0:28.62s: badblocks -b 16384 -c 32
0:28.62s: badblocks -b 512 -c 128
0:28.62s: badblocks -b 512 -c 32768
0:28.63s: badblocks -b 512 -c 8192
0:28.65s: badblocks -b 4096 -c 4096
0:28.67s: badblocks -b 16384 -c 1024
0:28.79s: badblocks -b 8192 -c 2048
0:28.80s: badblocks -b 8192 -c 4
0:28.81s: badblocks -b 16384 -c 2048
0:28.83s: badblocks -b 32768 -c 512
0:28.86s: badblocks -b 65536 -c 512
0:28.89s: badblocks -b 2048 -c 16384
0:28.98s: badblocks -b 65536 -c 256
0:29.09s: badblocks -b 8192 -c 4096
0:29.10s: badblocks -b 4096 -c 8192
0:29.10s: badblocks -b 512 -c 65536
0:29.15s: badblocks -b 1024 -c 32768
0:29.15s: badblocks -b 32768 -c 1024
0:29.34s: badblocks -b 4096 -c 8
0:29.35s: badblocks -b 1024 -c 32
0:29.40s: badblocks -b 16384 -c 2
0:29.41s: badblocks -b 32768 -c 1
0:29.41s: badblocks -b 512 -c 64
0:29.45s: badblocks -b 32768 -c 131072
0:29.46s: badblocks -b 2048 -c 16
0:30.10s: badblocks -b 2048 -c 32768
0:30.13s: badblocks -b 1024 -c 65536
0:30.14s: badblocks -b 16384 -c 4096
0:30.16s: badblocks -b 4096 -c 16384
0:30.16s: badblocks -b 512 -c 131072
0:30.22s: badblocks -b 8192 -c 8192
0:30.23s: badblocks -b 65536 -c 1024
0:30.26s: badblocks -b 32768 -c 2048
0:30.38s: badblocks -b 1024 -c 131072
0:30.38s: badblocks -b 2048 -c 65536
0:30.49s: badblocks -b 4096 -c 32768
0:30.50s: badblocks -b 65536 -c 2048
0:30.50s: badblocks -b 8192 -c 16384
0:30.53s: badblocks -b 32768 -c 4096
0:30.64s: badblocks -b 16384 -c 8192
0:31.01s: badblocks -b 2048 -c 131072
0:31.13s: badblocks -b 32768 -c 8192
0:31.14s: badblocks -b 65536 -c 4096
0:31.17s: badblocks -b 16384 -c 16384
0:31.17s: badblocks -b 4096 -c 65536
0:31.17s: badblocks -b 8192 -c 32768
0:32.20s: badblocks -b 4096 -c 131072
0:32.20s: badblocks -b 65536 -c 8192
0:32.21s: badblocks -b 8192 -c 65536
0:32.24s: badblocks -b 32768 -c 16384
0:32.25s: badblocks -b 16384 -c 32768
0:34.42s: badblocks -b 8192 -c 131072
0:34.57s: badblocks -b 16384 -c 65536
0:34.61s: badblocks -b 32768 -c 32768
0:34.71s: badblocks -b 65536 -c 16384
0:39.08s: badblocks -b 4096 -c 4
0:39.23s: badblocks -b 1024 -c 16
0:39.39s: badblocks -b 8192 -c 2
0:39.56s: badblocks -b 16384 -c 1
0:39.60s: badblocks -b 2048 -c 8
0:39.69s: badblocks -b 512 -c 32
1:02.34s: badblocks -b 1024 -c 8
1:02.45s: badblocks -b 4096 -c 2
1:02.50s: badblocks -b 512 -c 16
1:02.57s: badblocks -b 2048 -c 4
1:03.64s: badblocks -b 8192 -c 1
1:10.68s: badblocks -b 512 -c 4
1:10.69s: badblocks -b 1024 -c 2
1:11.07s: badblocks -b 2048 -c 1
1:14.60s: badblocks -b 512 -c 2
1:15.02s: badblocks -b 1024 -c 1
1:22.85s: badblocks -b 512 -c 1
1:47.08s: badblocks -b 1024 -c 4
1:47.21s: badblocks -b 4096 -c 1
1:47.49s: badblocks -b 2048 -c 2
1:47.96s: badblocks -b 512 -c 8

আমি মনে করি, বেঞ্চমার্কের উদ্দেশ্যে নন-এলোমেলো টেম্পলেট ব্যবহার করা ভাল, যেমন -t 0
মিমভি-রু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.