我在任何地方都读到内部 SSD 的结构是 4K 或更大的“页面”,这些“页面”被分组为大约 128-256 页(1 , 2)的“块” 。SSD 使用这些页面和块,“它们只能在块级别擦除数据”(因此页面块称为“[NAND] 擦除块”)。并且模拟分区的 512B 块(这样做是出于遗留原因)。
我正在尝试接受 SSD 方面的教育,因为在三星 9 np900x3c 笔记本电脑上写入我的 Sandisk U100 期间我有一些奇怪的滞后/冻结。一件有用的事情是正确找出我的 SSD 有哪些页面/块?
/sys/...
Linux 上是否有用于确定 SSD 页面大小的实用程序或文件?
或者“可能需要驱动器和谷歌搜索 NAND 芯片上的部件号”,如评论中所述?
谷歌搜索我的 Sandisk SSD 我找不到合适的数据表/规格。但是Sandisk和人们确实提到了“4K 随机读/写”。这是否意味着磁盘有 4K 页?
此外,还fdisk
显示扇区大小(物理和逻辑)和 I/O 512 字节:
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 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 identifier: 0x4b914713
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 50331647 25164800 83 Linux
/dev/sda2 50331648 239583231 94625792 83 Linux
/dev/sda4 239583232 250068991 5242880 82 Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)
这里的“物理”扇区大小是多少?好像不是SSD驱动本身的参数,因为大家都说SSD页面是4K+。它是磁盘的模拟参数吗?“逻辑”是分区的扇区大小?另外,什么是 I/O 大小?
聚苯乙烯
这个问题可能是一样的这一个USB闪存-答案是缺少点在那里,man fsstat
说fsstat displays the details associated with a file system
,问题是关于磁盘本身。我的帖子有更多细节,也许它会吸引更好的回应?
Ale*_*exP 14
报告fdisk
的物理块大小是磁盘在询问时报告的物理块大小。它很少与 SSD 页面或擦除块有任何关系。
4 KiB 读/写是 I/O 性能的常用度量,代表“小”I/O 操作。
SSD 没有标准方法来报告其页面大小或擦除块大小。很少有制造商在数据表中报告它们。(因为它们可能会在 SKU 的生命周期内发生变化,例如因为供应商的变化。)英特尔的一份白皮书表明 4 KiB 对齐就足够了。
对于实际使用,只需将所有数据结构(分区、LUKS 容器的有效负载、LVM 逻辑卷)与 1 或 2 MiB 边界对齐。毕竟它是一个 SSD——它旨在处理常见的文件系统,例如 NTFS(使用 4 KiB 分配单元)。如果 Windows 认为将分区对齐到 1 MiB 就足够了,您可以打赌任何 SSD 制造商都会确保他们的产品在这样的配置下运行良好。
最好在任何分区外保留大约 5% 到 10% 的未分配空间。超额配置空间对 SSD 及时保持其性能有很大帮助。
小智 7
我通过查看\nSMART 属性 241 Total_LBA_Written 测试了误报 SSD。
\n警告:以下命令将损坏您的数据:
\n然后dd if=/dev/zero of=/dev/ssd_drive bs=1 count=1
\n(需要在没有文件系统开销的情况下执行此操作)。
对于报告扇区大小为 512 的 Samsung 850 EVO,\n仅写入一个字节,计数就会增加 8。
\n所以 8\xc3\x97512=4096 ,写入bs=4096
也增加了 8。
这意味着驱动器将始终在内部写入 4096 字节扇区。
\n 归档时间: |
|
查看次数: |
15947 次 |
最近记录: |