আমি কীভাবে আমার স্যামসাং এসএসডি তে টিবিডাব্লু পর্যবেক্ষণ করতে পারি?


13

সাধারণ জ্ঞান হিসাবে, এসএসডিগুলির ন্যানড কোষগুলি মারা যাওয়ার আগে সীমিত সংখ্যক পিই (প্রোগ্রাম-ইরেজ) চক্র থাকে।

অতএব, এনএনএন্ড মারা যাওয়ার আগে এটি কত দিন স্থায়ী হবে তা নির্ধারণ করার জন্য আপনার এসএসডি-তে কতটা ডেটা লেখা হয়েছে তা জানা খুব সহায়ক।

আমার একটি স্যামসুং 850 প্রো 512 জিবি এসএসডি রয়েছে এবং আমি উবুন্টু 14.04 চালাচ্ছি।

আমি কীভাবে আমার ড্রাইভের জন্য টিবিডাব্লু (টোটাল-বাইটস-লিখিত) পেতে পারি?

উত্তর:


16

সম্পূর্ণ বিবরণ: এই উত্তরে উপস্থিত স্কিপ্ট / কমান্ডগুলি আমার নিজস্ব নয়, বরং জেডিজি লিভারের কাজ। এগুলি তার ওয়েবসাইটে একটি ব্লগ পোস্ট থেকে উত্সাহিত করা হয়েছিল ।


বিশেষ দ্রষ্টব্য:

  • এটি কেবল স্যামসাং এসএসডি-র জন্য সঠিক সংখ্যার প্রতিবেদন করবে
  • আপনার smartctlইনস্টল করা দরকার

পদ্ধতি 1:

এখানে একটি সুবিধাজনক ছোট স্ক্রিপ্ট যা আপনাকে আপনার এসএসডি এর টিবিডাব্লু, এবং অন্যান্য কিছু তথ্যের সাথে পর্যবেক্ষণ করতে দেয়:

#!/bin/bash

#######################################
# Variables                           #
#######################################

SSD_DEVICE="/dev/sda"

ON_TIME_TAG="Power_On_Hours"
WEAR_COUNT_TAG="Wear_Leveling_Count"
LBAS_WRITTEN_TAG="Total_LBAs_Written"
LBA_SIZE=512 # Value in bytes

BYTES_PER_MB=1048576
BYTES_PER_GB=1073741824
BYTES_PER_TB=1099511627776

#######################################
# Get total data written...           #
#######################################

# Get SMART attributes
SMART_INFO=$(sudo /usr/sbin/smartctl -A "$SSD_DEVICE")

# Extract required attributes
ON_TIME=$(echo "$SMART_INFO" | grep "$ON_TIME_TAG" | awk '{print $10}')
WEAR_COUNT=$(echo "$SMART_INFO" | grep "$WEAR_COUNT_TAG" | awk '{print $4}' | sed 's/^0*//')
LBAS_WRITTEN=$(echo "$SMART_INFO" | grep "$LBAS_WRITTEN_TAG" | awk '{print $10}')

# Convert LBAs -> bytes
BYTES_WRITTEN=$(echo "$LBAS_WRITTEN * $LBA_SIZE" | bc)
MB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_MB" | bc)
GB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_GB" | bc)
TB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_TB" | bc)

# Output results...
echo "------------------------------"
echo " SSD Status:   $SSD_DEVICE"
echo "------------------------------"
echo " On time:      $(echo $ON_TIME | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta') hr"
echo "------------------------------"
echo " Data written:"
echo "           MB: $(echo $MB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "           GB: $(echo $GB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "           TB: $(echo $TB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------"
echo " Mean write rate:"
echo "        MB/hr: $(echo "scale=3; $MB_WRITTEN / $ON_TIME" | bc | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------"
echo " Drive health: ${WEAR_COUNT} %"
echo "------------------------------"

এখানে আউটপুট নমুনা:

------------------------------
 SSD Status:   /dev/sda
------------------------------
 On time:      2 hr
------------------------------
 Data written:
           MB: 25,098.917
           GB: 24.510
           TB: .023
------------------------------
 Mean write rate:
        MB/hr: 12,549.458
------------------------------
 Drive health: 100 %
------------------------------

এই ডেটাটি সঠিক, কারণ আমি কেবলমাত্র আমার নতুন 850 প্রো ইনস্টল করেছি।


পদ্ধতি 2:

বিকল্পভাবে, কেবলমাত্র টিবিডাব্লু পাওয়ার জন্য এখানে একটি ওয়ান-লাইনার রয়েছে:

echo "GB Written: $(echo "scale=3; $(sudo /usr/sbin/smartctl -A /dev/sda | grep "Total_LBAs_Written" | awk '{print $10}') * 512 / 1073741824" | bc | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"

এটি আমার SAMSUNG MZ7LN512HMJP-000L7 SSD এর জন্য কাজ করে না। স্মার্টটেল Total_LBAs_Written2268 বলে রিপোর্ট করেছে এবং এটি 1.1 এমবি লিখিত উত্পন্ন করেছে - এক বছরের বেশি পুরানো ড্রাইভের জন্য এটি স্পষ্টতই ভুল এবং এটি আমার প্রাথমিক সিস্টেম ড্রাইভ :(
আইসিডোগ

@ আইসইডোগ :( আপনি উবুন্টুর কোন সংস্করণটি চালাচ্ছেন?
ইউআরএইজিএফটিফর নট ইউসিংগিট

আমি ফেডোরা ২ on-এ রয়েছি I আমি মনে করি আমার এসএসডি সম্ভবত সঠিকভাবে সংখ্যাগুলি রিপোর্ট করছে না।
আইসিডোগ

আমার গবেষণাটি দেখায় যে প্রতিটি এলএসডি "এলবিএ লেখা" প্রতিটি ইউনিট আসলে কী বোঝায় তার নিজস্ব গুণক রয়েছে বলে মনে হয়। স্যামসাং 850 এর জন্য আমার কাছে নম্বর নেই তবে এটি কেবল একটি খাত নয় ...
ljwobker

3

গুরুতর এসএসডি লাইফটাইম বাকি

ক্রিশিয়াল এসএসডি (মাইক্রন দ্বারা তৈরি) এর জন্য বাকী আজীবন প্রশ্নটি আরও সহজ করা হয়েছে।

https://www.micron.com/~/media/documents/products/technical-note/solid-state-storage/tnfd22_client_ssd_smart_attributes.pdf

এই ডকটি 202 শতাংশ পার্সেন্ট লাইফটাইম বাকি হিসাবে চিহ্নিত করে। উবুন্টুতে উদাহরণ হিসাবে 16.04 ( sudo smartctl /dev/sda1 -a) 202 কে অজানা হিসাবে প্রতিবেদন করেছে, তবে 90 এর মান (আমার ক্ষেত্রে) পিডিএফ-এর বর্ণনার সাথে মেলে এবং 90% বাকী জীবন নির্দেশ করে। আপনার যথাযথ ড্রাইভের ক্রিসিয়াল ডটকমের সাহিত্যে যে টিবিডাব্লু দেওয়া হয়েছে এটি যথাযথভাবে মাপা যেতে পারে। প্রকৃতপক্ষে, আজীবন বাকি বরং আরও দরকারী।


1

গৃহীত উত্তরের ব্লুটেড আউটপুট রয়েছে, অত্যধিক অকেজো স্ক্রিপ্ট-উইজার্ডারি এবং এর থেকে প্রাথমিক প্যারামিটারের নামগুলি গোপন করে smartctl। এখানে একটি ভাল সংস্করণ;

#!/bin/bash

device=${1:-/dev/sda}
sudo smartctl -A $device |awk '
$0 ~ /Power_On_Hours/ { poh=$10; printf "%s / %d hours / %d days / %.2f years\n",  $2, $10, $10 / 24, $10 / 24 / 365.25 }
$0 ~ /Total_LBAs_Written/ {
    lbas=$10;
    bytes=$10 * 512;
    mb= bytes / 1024^2;
    gb= bytes / 1024^3;
    tb= bytes / 1024^4;
    printf "%s / %s  / %d mb / %.1f gb / %.3f tb\n", $2, $10, mb, gb, tb
    printf "mean writes per hour:  / %.2f",  mb/poh
}
$0 ~ /Airflow_Temperature_Cel/ { print $2 " / " $10}
$0 ~ /Wear_Leveling_Count/ { printf "%s / %d (%% health)\n", $2, int($4) }
' |
    sed -e 's:/:@:' |
    sed -e "s\$^\$$device @ \$" |
    column -ts@

নমুনা আউটপুট:

$ for i in /dev/sd{a,b,c,d}; do ssd-tbw $i;done   |sort -k2,2
/dev/sda    Airflow_Temperature_Cel    49
/dev/sdb    Airflow_Temperature_Cel    49
/dev/sdc    Airflow_Temperature_Cel    45
/dev/sdd    Airflow_Temperature_Cel    47
/dev/sda    mean writes per hour:      655.80
/dev/sdb    mean writes per hour:      646.97
/dev/sdc    mean writes per hour:      874.49
/dev/sdd    mean writes per hour:      733.95
/dev/sda    Power_On_Hours             27292 hours / 1137 days / 3.11 years
/dev/sdb    Power_On_Hours             27300 hours / 1137 days / 3.11 years
/dev/sdc    Power_On_Hours             14432 hours / 601 days / 1.65 years
/dev/sdd    Power_On_Hours             23255 hours / 968 days / 2.65 years
/dev/sda    Total_LBAs_Written         36655329806  / 17898110 mb / 17478.6 gb / 17.069 tb
/dev/sdb    Total_LBAs_Written         36172538301  / 17662372 mb / 17248.4 gb / 16.844 tb
/dev/sdc    Total_LBAs_Written         25846999325  / 12620605 mb / 12324.8 gb / 12.036 tb
/dev/sdd    Total_LBAs_Written         34955224738  / 17067980 mb / 16668.0 gb / 16.277 tb
/dev/sda    Wear_Leveling_Count        93 (% health)
/dev/sdb    Wear_Leveling_Count        93 (% health)
/dev/sdc    Wear_Leveling_Count        95 (% health)
/dev/sdd    Wear_Leveling_Count        94 (% health)

এবং এক-লাইনার

$ sudo /usr/sbin/smartctl -A /dev/sda | 
     awk '$0~/LBAs/{ printf "TBW %.1f\n", $10 * 512 / 1024^4 }'
TBW 17.1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.