දෘ drive තැටියක ක්රියාකාරිත්වය පරීක්ෂා කරන්නේ කෙසේද (එක්කෝ පර්යන්තය හෝ GUI හරහා). ලිවීමේ වේගය. කියවීමේ වේගය. හැඹිලි ප්රමාණය සහ වේගය. අහඹු වේගය.
දෘ drive තැටියක ක්රියාකාරිත්වය පරීක්ෂා කරන්නේ කෙසේද (එක්කෝ පර්යන්තය හෝ GUI හරහා). ලිවීමේ වේගය. කියවීමේ වේගය. හැඹිලි ප්රමාණය සහ වේගය. අහඹු වේගය.
Answers:
hdparm
ආරම්භ කිරීමට හොඳ ස්ථානයකි.
sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 12540 MB in 2.00 seconds = 6277.67 MB/sec
Timing buffered disk reads: 234 MB in 3.00 seconds = 77.98 MB/sec
sudo hdparm -v /dev/sda
තොරතුරු ද ලබා දෙනු ඇත.
dd
ලිවීමේ වේගය පිළිබඳ තොරතුරු ඔබට ලබා දෙනු ඇත.
ධාවකයේ ගොනු පද්ධතියක් නොමැති නම් ( පසුව පමණක් ), භාවිතා කරන්න of=/dev/sda
.
එසේ නොමැතිනම්, එය / tmp මත සවි කර ලිවීමෙන් පසුව පරීක්ෂණ ප්රතිදාන ගොනුව මකන්න.
dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output
10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s
gnome-disks
ඔබට තවත් යමක් අවශ්යද?
/dev/urandom
මෙන්ම /dev/zero
යෙදවුම් ද නිර්දේශ කරමි dd
.
/tmp
ගොනු පද්ධතිය බොහෝ විට මේ දවස් ramdisk භාවිතා කර ඇත. එබැවින් ලිවීම /tmp
ඔබේ තැටි උප පද්ධතිය නොව ඔබේ මතකය පරීක්ෂා කරන බවක් පෙනේ.
Suominen හරි, අපි යම් ආකාරයක සමමුහුර්තයක් භාවිතා කළ යුතුයි; නමුත් සරල ක්රමයක් ඇත, conv = fdatasync විසින් එම කාර්යය කරනු ඇත:
dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
1024+0records in
1024+0 records out
402653184 bytes (403 MB) copied, 3.19232 s, 126 MB/s
/dev/urandom
මෘදුකාංග මත පදනම් වූ සහ .රා මෙන් මන්දගාමී බැවින් එය භාවිතා කිරීම මම නිර්දේශ නොකරමි . රැම්ඩිස්ක් මත අහඹු දත්ත කැබැල්ලක් ගැනීම වඩා හොඳය. දෘ disk තැටි පරීක්ෂා කිරීමේදී අහඹු ලෙස කමක් නැත, මන්ද සෑම බයිටයක්ම ලියා ඇති ආකාරයටම (sdd සමඟ dd ද ඇත). නමුත් අපි අඩු කළ zfs තටාකය පිරිසිදු ශුන්ය හෝ අහඹු දත්ත සමඟ පරීක්ෂා කළහොත් විශාල කාර්ය සාධන වෙනසක් ඇත.
තවත් දෘෂ්ටි කෝණයකින් සමමුහුර්ත කාලය ඇතුළත් කිරීම විය යුතුය; සියලුම නවීන ගොනු පද්ධති ගොනු මෙහෙයුම් වලදී හැඹිලි භාවිතා කරයි.
මතකයේ නොව තැටියේ වේගය සැබවින්ම මැනීමට, හැඹිලි ආචරණයෙන් මිදීමට අපි ගොනු පද්ධතිය සමමුහුර්ත කළ යුතුය. එය පහසුවෙන් කළ හැකිය:
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 in
1024+0 records out
104857600 bytes (105 MB) copied, 0.270684 s, 387 MB/s
real 0m0.441s
user 0m0.004s
sys 0m0.124s
එබැවින් තැටි දත්ත සමුදාය 104857600 / 0.441 = 237772335 B / s -> 237MB / s
එය හැඹිලි වලට වඩා 100MB / s ට වඩා අඩුය.
සතුටු මිණුම් සලකුණු කිරීම,
ඔබට නිරවද්යතාව අවශ්ය නම්, ඔබ භාවිතා කළ යුතුය fio
. එයට අත්පොත ( man fio
) කියවීම අවශ්ය නමුත් එය ඔබට නිවැරදි ප්රති .ල ලබා දෙනු ඇත. ඕනෑම නිරවද්යතාවයක් සඳහා, ඔබට මැනීමට අවශ්ය දේ හරියටම සඳහන් කළ යුතු බව සලකන්න. උදාහරණ කිහිපයක්:
විශාල කුට්ටි සහිත අනුක්රමික READ වේගය (මෙය ඔබගේ ධාවකයේ පිරිවිතරයන්හි ඔබ දකින අංකයට ආසන්න විය යුතුය):
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
සසම්භාවී 4K කියවීම QD1 (මෙය සැබෑ ලෝක කාර්ය සාධනය සඳහා සැබවින්ම වැදගත් වන අංකයයි.
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
මිශ්ර අහඹු 4K සමමුහුර්තකරණය සමඟ QD1 කියවා ලියන්න (මෙය ඔබගේ ධාවකයෙන් ඔබ අපේක්ෂා කළ යුතු නරකම අවස්ථාවයි, සාමාන්යයෙන් පිරිවිතර පත්රයේ ලැයිස්තුගත කර ඇති අංකවලින් 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
ගොනු විශාලත්වය වැඩි කිරීම සඳහා තර්කය වැඩි කරන්න. විශාල ගොනු භාවිතා කිරීමෙන් ඩ්රයිව් තාක්ෂණය සහ ස්ථිරාංග මත පදනම්ව ඔබට ලැබෙන සංඛ්යා අඩු විය හැකිය. කුඩා ලිපිගොනු භ්රමණ මාධ්ය සඳහා "ඉතා හොඳ" ප්රති results ල ලබා දෙනු ඇත, මන්ද කියවීමේ හිස එතරම් චලනය කිරීමට අවශ්ය නොවන බැවිනි. ඔබගේ උපාංගය හිස්ව තිබේ නම්, ධාවකය පුරවා ගැනීමට තරම් විශාල ගොනුවක් භාවිතා කිරීමෙන් එක් එක් පරීක්ෂණය සඳහා නරකම හැසිරීම ඔබට ලැබෙනු ඇත. SSD සම්බන්ධයෙන්, ගොනු විශාලත්වය එතරම් වැදගත් නොවේ.
කෙසේ වෙතත්, සමහර ගබඩා මාධ්ය සඳහා ගොනුවේ ප්රමාණය කෙටි කාල සීමාව තුළ ලියා ඇති මුළු බයිට් තරම් වැදගත් නොවන බව සලකන්න. නිදසුනක් ලෙස, සමහර එස්එස්ඩී වලට පෙර මකාදැමූ බ්ලොක් සමඟ සැලකිය යුතු වේගවත් කාර්ය සාධනයක් තිබිය හැකිය, නැතහොත් එය ලිවීමේ හැඹිලියක් ලෙස භාවිතා කරන කුඩා එස්එල්සී ෆ්ලෑෂ් ප්රදේශයක් තිබිය හැකි අතර එස්එල්සී හැඹිලිය පිරී ඇති විට කාර්ය සාධනය වෙනස් වේ. තවත් උදාහරණයක් ලෙස, සීගට් එස්එම්ආර් එච්ඩීඩී වල ගිගාබයිට් 20 ක පමණ කෑෂ් ප්රදේශයක් ඇති අතර එය ඉතා ඉහළ කාර්ය සාධනයක් ඇති නමුත් එය සම්පුර්ණ වූ පසු කෙලින්ම එස්එම්ආර් ප්රදේශයට ලිවීම මඟින් කාර්ය සාධනය මුල් පිටපතෙන් 10% දක්වා අඩු කළ හැකිය. මෙම කාර්ය සාධන පරිහානිය දැකීමට ඇති එකම ක්රමය නම් පළමුව 20+ GB හැකි ඉක්මනින් ලිවීමයි. ඇත්ත වශයෙන්ම, මේ සියල්ල ඔබගේ කාර්ය භාරය මත රඳා පවතී: අභ්යන්තර හැඹිලිය පිරිසිදු කිරීමට උපාංගයට ඉඩ දෙන දිගු ප්රමාදයකින් ඔබේ ලිවීමේ ප්රවේශය පුපුරා ගියහොත්, කෙටි පරීක්ෂණ අනුපිළිවෙල ඔබගේ සැබෑ ලෝක ක්රියාකාරිත්වය වඩා හොඳින් පිළිබිඹු කරයි. ඔබට බොහෝ IO කිරීමට අවශ්ය නම්, ඔබ දෙකම වැඩි කළ යුතුය--io_size
සහ --runtime
පරාමිතීන්. සමහර මාධ්යයන්ට (උදා: බොහෝ ෆ්ලෑෂ් උපාංග) එවැනි පරීක්ෂණ වලින් අමතර ඇඳුම් ලැබෙනු ඇති බව සලකන්න. මගේ මතය අනුව, කිසියම් උපකරණයක් මේ ආකාරයේ පරීක්ෂණ වලට මුහුණ දීමට තරම් දුර්වල නම්, එය ඕනෑම අවස්ථාවක වටිනා දත්ත රඳවා ගැනීමට භාවිතා නොකළ යුතුය.
ඊට අමතරව, සමහර උසස් තත්ත්වයේ එස්එස්ඩී උපාංගවලට ඊටත් වඩා බුද්ධිමත් ඇඳුම් මට්ටම් කිරීමේ ඇල්ගොරිතම තිබිය හැකි අතර අභ්යන්තර එස්එල්සී හැඹිලියට එකම ලිපින අවකාශයට (එනම් පරීක්ෂණ ගොනුව මුළු SLC හැඹිලියට වඩා කුඩා වේ). එවැනි උපාංග සඳහා, ගොනු විශාලත්වය නැවත වැදගත් වීමට පටන් ගනී. ඔබේ සැබෑ වැඩ ප්රමාණය ඔබට අවශ්ය නම් සැබෑ ජීවිතයේ ඔබ සැබවින්ම දකින ගොනු ප්රමාණ සමඟ පරීක්ෂා කිරීම වඩාත් සුදුසුය. එසේ නොමැතිනම් ඔබේ සංඛ්යා ඉතා හොඳ පෙනුමක් ඇති විය හැකිය.
fio
පළමු ධාවනයේදී අවශ්ය තාවකාලික ගොනුව නිර්මාණය කරන බව සලකන්න . ස්ථිර ආචයනයකට ලිවීමට පෙර දත්ත සම්පීඩනය කිරීමෙන් වංචා කරන උපාංගවලින් හොඳ සංඛ්යාවක් ලබා ගැනීම වළක්වා ගැනීම සඳහා එය අහඹු දත්ත වලින් පුරවනු ඇත. තාවකාලික ගොනුව fio-tempfile.dat
ඉහත උදාහරණ වලින් කැඳවා වත්මන් වැඩ නාමාවලියෙහි ගබඩා කරනු ඇත. එබැවින් ඔබ පළමුව පරීක්ෂා කිරීමට අවශ්ය උපාංගයේ සවිකර ඇති නාමාවලියට වෙනස් විය යුතුය.
ඔබට හොඳ SSD එකක් තිබේ නම් සහ ඊටත් වඩා වැඩි සංඛ්යාවක් දැකීමට අවශ්ය නම්, --numjobs
ඉහළින් වැඩි කරන්න . එය කියවීම් සහ ලිවීම් සඳහා වන එකඟතාවය අර්ථ දක්වයි. ඉහත උදාහරණ සියල්ලම numjobs
සකසා ඇති 1
බැවින් පරීක්ෂණය තනි නූල් ක්රියාවලියක් කියවීම සහ ලිවීම (සමහරවිට පෝලිම් කට්ටලයක් සමඟ iodepth
) විය හැකිය. ඉහළ මට්ටමේ එස්එස්ඩී (උදා: ඉන්ටෙල් ඔප්ටේන්) වැඩි නොවී ඉහළ සංඛ්යාවක් ලබා ගත යුතුය numjobs
(උදා: 4
ඉහළම පිරිවිතර අංක ලබා ගැනීමට ප්රමාණවත් විය යුතුය) නමුත් සමහර “ව්යවසාය” එස්එස්ඩී වලට යන්න අවශ්ය වන්නේ 32
- 128
පිරිවිතර අංක ලබා ගැනීමට නම් ඒවායේ අභ්යන්තර ප්රමාදය උපාංග ඉහළ නමුත් සමස්ත ප්රතිදානය උමතු ය.
max_sectors_kb
. 1 MB බ්ලොක් ප්රමාණය භාවිතා කිරීමට ඉහත උදාහරණ විධාන මම වෙනස් කළෙමි. කියවීමටද එය fsync
වැදගත් නොවන බව මම පරීක්ෂා කළෙමි .
iodepth
කිරීමට 1
මෙතරම් ගැඹුරින් "ඉතා අඩු" නම් සැබෑ ලෝකයේ වැඩසටහන් බොහෝ විට නොව එහි ප්රතිඵලයක් ලෙස ඕනෑම ඉහළ 1. වඩා ගැඹුරු සමග වැඩ කරන්නේ බව දක්නට නොමැත්තේ / තර්ක ක්රියාත්මක හරියටම නිසා සසම්භාවී ප්රවේශ සඳහා ඔබගේ I / O උපාංගය නරකයි. සමහර එස්එස්ඩී උපාංග 32 ට වඩා වැඩි ගැඹුරකින් ප්රතිලාභ ලබන බව සත්යයකි. කෙසේ වෙතත්, ඔබට කියවීමේ ප්රවේශය අවශ්ය වන සහ 32 ට වඩා වැඩි අයඩෙප්ත් ඉහළ මට්ටමක තබා ගත හැකි ඕනෑම සැබෑ ලෝක වැඩ බරක් වෙත යොමු කළ හැකිද? ටීඑල්; DR: ඔබට ඉහළ ප්රමාද උපාංගයක් සහිත ඉතා ඉහළ කියවීමේ මිණුම් ලකුණක් ප්රතිනිෂ්පාදනය කිරීමට අවශ්ය නම්, භාවිතා කරන්න, iodepth=256 --numjobs=4
නමුත් එවැනි සංඛ්යා සැබෑ ලෙස දැකීමට බලාපොරොත්තු නොවන්න.
ඔබට තැටියේ කියවීමේ හා ලිවීමේ වේගය තත්ය කාලීනව නිරීක්ෂණය කිරීමට අවශ්ය නම් ඔබට iotop මෙවලම භාවිතා කළ හැකිය .
විශේෂිත යෙදුමක් හෝ වැඩ බරක් සඳහා තැටියක් ක්රියා කරන ආකාරය පිළිබඳ නිවැරදි තොරතුරු ලබා ගැනීමට මෙය ප්රයෝජනවත් වේ. ප්රතිදානය මඟින් ඔබට ක්රියාවලියකට කියවීමේ / ලිවීමේ වේගය පෙන්වන අතර සේවාදායකයා සඳහා කියවීමේ / ලිවීමේ වේගය බොහෝ සෙයින් සමාන වේ top
.
ස්ථාපනය කරන්න iotop
:
sudo apt-get install iotop
එය ක්රියාත්මක කරන්න:
sudo iotop
වඩාත් සාමාන්ය හා න්යායාත්මක පරීක්ෂණවලට එදිරිව නිශ්චිත කාර්ය භාරයක් සඳහා තැටියක් ක්රියා කරන්නේ කෙසේද යන්න තේරුම් ගැනීමට මෙම මෙවලම උපකාරී වේ.
බොනී ++ යනු ලිනක්ස් සඳහා මා දන්නා අවසාන මිණුම් ලකුණයි.
(මම දැනට අපගේ වින්ඩෝස් මත පදනම් වූ යන්ත්රය පරීක්ෂා කිරීම සඳහා බොනී ++ සමඟ ලිනක්ස් ලයිව්සීඩී වැඩ කරමින් සිටිමි!)
එය හැඹිලිය, සමමුහුර්තකරණය, අහඹු දත්ත, තැටියේ අහඹු පිහිටීම, කුඩා ප්රමාණයේ යාවත්කාලීන කිරීම්, විශාල යාවත්කාලීන කිරීම්, කියවීම්, ලිවීම් යනාදිය ගැන සැලකිලිමත් වේ. ගොනු පද්ධතිය නවක වදය සඳහා ඉතා තොරතුරු සහිත විය හැකිය.
එය උබුන්ටු වල ඇතුළත් කර ඇත්දැයි මට අදහසක් නැත, නමුත් ඔබට එය පහසුවෙන් ප්රභවයෙන් සම්පාදනය කළ හැකිය.
වේගය ලියන්න
$ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s
බ්ලොක් ප්රමාණය ඇත්ත වශයෙන්ම තරමක් විශාලය. ඔබට 64k හෝ 4k වැනි කුඩා ප්රමාණවලින් උත්සාහ කළ හැකිය.
කියවීමේ වේගය
මතක හැඹිලිය ඉවත් කිරීමට පහත විධානය ක්රියාත්මක කරන්න
$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
දැන් ලිවීමේ පරීක්ෂණයෙන් සාදන ලද ගොනුව කියවන්න:
$ dd if=./largefile of=/dev/null bs=4k
165118+0 records in
165118+0 records out
676323328 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
තව ටිකක්: සරල බොනී ++ උදාහරණය .