Страница 3 из 7

Скрипт вывода основных данных по использованию SSD

Добавлено: 03 июн 2019, 22:31
demonlibra
WWolf писал(а):
03 июн 2019, 22:26
сброс буферов после записи? sync вместо второй записи?
Моя твою не понимать :crazy:
Лучше пальцем покажите чего исправить.

Скрипт вывода основных данных по использованию SSD

Добавлено: 03 июн 2019, 22:40
WWolf
demonlibra, да я с телефона, не вижу даже где скрипт который ковыряете...
Я так понимаю две dd пользуете? Вот после первой вызовите sync, а вторую уберите

Скрипт вывода основных данных по использованию SSD

Добавлено: 03 июн 2019, 23:42
demonlibra
Команда sync ситуацию кардинально изменила. И без двух dd параметр 241 теперь меняется, но есть небольшое хаотичное несоответствие.
Запись командой dd 10Мб = 10485760 байт

После sync изменение 241 параметра = 11153408 байт
После sync изменение 241 параметра = 11243520 байт
После sync изменение 241 параметра = 11333632 байт

Добавил команду sync перед первым извлечением параметра 241 и после dd.
Ситуация стабилизировалась. Теперь после трех запусков сценария цифры повторяются
изменение 241 параметра = 10784768 байт

После двойного исполнения команды dd соответствие было байт в байт.
Может еще надо что-то дописать? Или это и есть правильные цифры?

Код: Выделить всё

sync
Total_LBAs_Written=`sudo smartctl /dev/"$dev" --all | grep "Total_LBAs_Written"`
Total_LBAs_Written=${Total_LBAs_Written##* }
echo "241 до записи = $Total_LBAs_Written"
			
dd if=/dev/urandom of="ssd_test" bs=1M count=10 status=progress
sync

Total_LBAs_Written_check=`sudo smartctl /dev/"$dev" --all | grep "Total_LBAs_Written"`
Total_LBAs_Written_check=${Total_LBAs_Written_check##* }
echo "241 после записи = $Total_LBAs_Written_check"

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 00:17
WWolf
Sync вообще завершает все операции записи, сбрасывая всё из буферов на диски... Если после каждого sync идёт изменение параметров, то это говорит лишь о постоянной работе с диском, что обычно не свойственно линуксу... Но тут же ещё Трим имеет место быть, возможно это он баламутит картину...
В общем, направление мысли правильное, надо маны почитать по синку и возможно есть ещё какие-то механизмы

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 09:16
demonlibra
sync это конечно может и правильно, но для теста необходимо соответствие. Так что пока дублирование dd больше подходит.

darkfenix, что у Вас выдает последний вариант сценария?

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 10:07
rogoznik
demonlibra, сделал 2 замера

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 10:58
demonlibra
darkfenix писал(а):
04 июн 2019, 10:07
сделал 2 замера
Это точно последняя версия сценария, с двумя dd?

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 13:52
rogoznik
demonlibra писал(а):
04 июн 2019, 10:58
Это точно последняя версия сценария, с двумя dd?
С гитхаба взял

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:06
demonlibra
Я на github`е и меняю постоянно. Я же не знаю когда вы скачали сценарий, до или после последних изменений.
Скачайте еще раз и попробуйте. В последнем сценарии две команды dd.

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:17
rogoznik
demonlibra, вновь взял с гитхаба
Screenshot_20190604_160916.png

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:29
demonlibra
Закомментировал первую команду dd и раскомментировал sync.
Пожалуйста, попробуйте еще раз. Думаю в Вашем случае меньше 100 вводить смысла нет.

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:38
WWolf
demonlibra писал(а):
04 июн 2019, 14:29
Думаю в Вашем случае меньше 100 вводить смысла нет.
это как раз тот случай, когда запись прошла в буфер, а не в диск и без sync не обойтись...

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:47
WWolf
demonlibra, если не нравится синк, то у dd есть флаги
fdatasync - write output file data before finishing
nocache - Request to drop cache. See also oflag=sync

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 14:57
demonlibra
Вроде результаты те же. В принципе небольшое расхождение наверное не критично.
Жду вывод сценария с командами sync от darkfenix

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 15:05
rogoznik
demonlibra, эм...ввел 100, а скрипт использовал значение по умолчанию(10)

Код: Выделить всё

Обнаружены следующие диски:

NAME   SIZE MODEL            SERIAL
sda  223,6G LDNDISK SSD 240G 2018081604063
sdc  931,5G nal USB 3.0      201503310007F
------------------------------------------------------

Обнаружены следующие диски SSD:

NAME   SIZE MODEL            SERIAL
sda  223,6G LDNDISK SSD 240G 2018081604063
------------------------------------------------------

Введите идентификатор диска /dev/sda

Device Model:     LDNDISK SSD 240GB
Serial Number:    2018081604063
User Capacity:    240 057 409 536 bytes [240 GB]

241 Total_LBAs_Written: 50691
241 Lifetime_Writes_GiB: 
241 Host_Writes_32MiB: 

Sector Size: 512

Всего записано данных: 0 ТБайт
Всего занято на разделах диска: 55 Гбайт

Вероятно данные TBW определены неверно.
Производитель заложил в параметр 241 только ему ведомые значения.
Занимаемое место на диске (55 Гбайт) больше определенного значения TBW (0 Гбайт).

Введите Y для выполнения тестовой записи: y
Введите полный путь к файлу на SSD для тестовой записи (по умолчанию ssd_test): /home/darfenix/ssd_test
Введите объем данных в Мб (по умолчанию 10): 100
------------------------------------------------------

241 до записи = 50694

10+0 записей получено
10+0 записей отправлено
10485760 bytes (10 MB, 10 MiB) copied, 0,0680257 s, 154 MB/s

241 после записи = 50695
Разница = 1
Коэффициент = 10485760

Расчитанное значение TBW после тестовой записи: 0.483 ТБайт
------------------------------------------------------

9 Power_On_Hours: 512
Всего отработано: 512 часов = 21 дней = 0.05 лет

Нажмите ENTER чтобы закрыть окно

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 15:29
demonlibra
В условиях напортачил. Пробуем опять.
Как-то и sync не так работает. Надо сценарий раза три запустить прежде чем получить адекватные значения.

А еще наверное разные контроллеры с разными прошивками работают по разному.
Вот бы получить решение от человека разбирающегося в данном вопросе.

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 16:24
slant
demonlibra писал(а):
03 июн 2019, 17:21
Есть мысль для проверки сделать принудительную запись, например 100 Мбайт и вычисление разницы значений параметра 241 до и после.
Вы забыли, что SSD перезапись делает блоками. Т.е. пишите вы 1 байт, а SSD нужно перезаписать целый блок, 4-16КБ (а может и другое число - это от производителя зависит). И в статистику идет обычно именно эта цифра. Что из этого следует? Что, как минимум, надо знать размер минимального блока перезаписи для конкретного SSD, чтоб этот метод нормально работал.

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 16:25
rogoznik
demonlibra, сделал 3 замера

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 17:22
demonlibra
darkfenix, вроде похоже на правду. И значения совпадают.

Только я забыл в строку расчета коэффициента вставить введенное значение записываемых мегабайт.
В расчете использовалось значение 10, так что ваши
Рассчитанное значение TBW после тестовой записи: 0.161 ТБайт
на самом деле в 10 раз больше.

Сценарий на github поправил.

Скрипт вывода основных данных по использованию SSD

Добавлено: 04 июн 2019, 17:28
rogoznik
Как-то с трудом верится что я перезаписал на этот диск инфы уже на полтара террабайта. Ну да ладно пусть будет так