Автор Тема: Бавен трансфер от стар SSD и избор на М.2 SSD  (Прочетена 24307 пъти)

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Това имах предвид.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Dojnow

  • Напреднали
  • *****
  • Публикации: 69
    • Профил
Добре де, за какво фрагментиране става въпрос? Аз ли недоразбирам или темата е за SSD?
Първият параграф в Performance Consistency https://www.anandtech.com/show/6722/plextor-m5m-256gb-msata-review/3 Всяка памет, вкл. SSD и RAM, в която се записват, изменят и изтриват (структури от) данни се фрагментира. Един файл може да се помести в един или повече последователни 512 KB, 1 MB, 2 MB, ... блокове, а може да е разпръснат и в непоследователни, което не е добре за скоростта на запис и износването, както трябва да се има предвид и "Partitions Alignment".
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
На мен не ми харесва думата фрагментиране. Това си е нещо вътрешно за SSD до което нямаш достъп. Как си ги разоределя и менка вътрешно блоковете (с цел разпределяне на износването)  се е негова вътрешна работа. Отвънка обаче LBA секторите изглеждат последователно.


Подравняването на партициите обаче е много важно нещо. Според онази статия на Сеагете вътрешно дисковете имат 4096 битови сектори, обаче външно ги съобщават на 512. Т. Е цепят сектора на 8 части.
Затова партицията трябва да почва на число делящо се на 4096 байта на цяло число без остатък (ако гледаме началната стойност на дяла в байтове.)

Ако гледаме началната стойнист на дяла в LBA секори трябва числото да се дели без остатък на 8.

Ако това условие Не е изпълнено например  когато   се чете 1 сектор (512байта)  вместо да се прочете 1сектор винаги ще се четят два съседни сектора. Защото сектора ще се разпредели върху два съседне 4096 вътрешни физически сектора. Съжалявам че не мога да дам пример сега щото мажа на таб. Но го проверих. Сентос 7 инсталацията се съобразява с това и наисина прави дялове които да почват кратно на 4096 байта. Gparted също се съобразява и ги подравнява.

https://www.seagate.com/gb/en/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/

---
Сега да не вземе някой да каже че това било само за хардовете. Вътрешно ssd работят и търкат даже по големи блокове от фалш памет от 4096. Но понеже няма друга информащия по въпроса а и цялата индустрия явно се е насочилила към 4096 блокове то ще се съобразяваме с кратно на 4096 байта.

Прочетох също че единствено intel SSD имали в програмата им за управление опция за смяна на сектора на 4096. Така че и външно да го съобщава на 4096. Но тази смяна било по съществото си флашване на нов firmware. А моят кингстън е 512 секторен, както и всички продавани ssd-та.




« Последна редакция: Dec 31, 2019, 15:44 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Ето как е направил инсталацията Центос7 и е подравнил дяловете.
на ССД-то 500GB (nvme0n1) има два дяла.
boot 1GB и root / останалото.

[root@sabi ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk
├─sda1        8:1    0  15.6G  0 part [SWAP]
└─sda2        8:2    0 450.1G  0 part /home
sdb           8:16   0 465.8G  0 disk
└─sdb1        8:17   0 465.8G  0 part
sr0          11:0    1  1024M  0 rom 
nvme0n1     259:0    0 465.8G  0 disk
├─nvme0n1p1 259:1    0     1G  0 part /boot
└─nvme0n1p2 259:2    0 464.8G  0 part /
[root@sabi ~]#
[root@sabi ~]#
[root@sabi ~]# fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/nvme0n1: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8ce42bb8

        Device Boot      Start         End      Blocks   Id  System
/dev/nvme0n1p1   *        2048     2099199     1048576   83  Linux
/dev/nvme0n1p2         2099200   976773119   487336960   83  Linux

Command (m for help): q


fdisk-a ги изобразява началото и края на дяловете в LBA Сектори по 512 байта.
(накрая обаче има една колона Blocks за големината на дяла и е в размерност x 1024 - защо така го изобразява не е ясно и тази колона не бива да се гледа)

boot -дяла започва на (2048 x 512) /4096 = 256 (цяло число)
/      -дяла започва на (2099200 x 512) /4096 = 262400 (цяло число)

ако например /      -дяла започваше на друг сектор например 2099201
(2099201 x 512) /4096 = 262400.125 (дробно число) което ще е грешно и най вероятно системата ще работи по бавно и диска ще се износва повече.



« Последна редакция: Jan 04, 2020, 11:54 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.