হার্ড ড্রাইভের পারফরম্যান্স কীভাবে পরীক্ষা করবেন (টার্মিনাল বা জিইউআইয়ের মাধ্যমে) লেখার গতি পড়ার গতি ক্যাশে আকার এবং গতি. র্যান্ডম গতি.
টার্মিনাল পদ্ধতি
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
একটি বিট আরো এ: সাধারণ বনি++ উদাহরণ.
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 .