有没有办法找出Linux / Unix上的SSD页面大小?fdisk输出中的“物理块”是什么?


17

到处我读到内部的SSD在4K或更大的“页”,这在约128-256页(“嵌段”结构的分组12)。SSD使用这些页面和块,“它们只能在块级别擦除数据”(因此,页面块称为“ [NAND]擦除块”)。并模拟该分区的512B块(出于传统原因这样做)。

我正在尝试接受SSD方面的知识,因为在Samsung 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

这里的“物理”扇区大小是多少?这似乎不是SSD驱动器本身的参数,因为每个人都说SSD页为4K +。它是磁盘的模拟参数吗?分区的扇区大小是“逻辑”吗?另外,I / O大小是多少?

聚苯乙烯

这个问题可能是一样的这一个USB闪存 -答案是缺少点在那里,man fsstatfsstat displays the details associated with a file system,问题是关于磁盘本身。我的帖子有更多详细信息,也许它会吸引更好的回复?

Answers:


11
  • 报告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保持及时的性能有很大帮助。


“英特尔的白皮书表明4 KiB对齐就足够了。” 您如何从链接文件中获得这些信息?我仔细查看了一下,论文声称的位置并不清楚。
马修

@Matthew:第7页:“大多数新的HDD和Intel SSD在4096字节(4KB)对齐的情况下性能更好”
AlexP

我将其读取为“相比512字节”,这不足为奇。此外,以下数字似乎暗示4KiB页面大小。我没有读到这意味着“ 4KiB对于页面大于4KiB的驱动器来说已经足够了”……或意味着要对非英特尔驱动器说些什么
马修

+1严格遵守KiB / MiB标记--- man units怀疑论者请参见
XavierStuvw

为什么预留空间过多……对于SSD的及时维护有很大帮助
XavierStuvw

2

smartctl(可在中找到smartmontools)应该为您完成。


2
OP将如何使用此工具?
roaima

目前,我正在使用相同的512B物理和逻辑扇区smartctl -i /dev/sda,不确定如何读取内核smartctl --all /dev/sda并使smartctl --xall /dev/sda内核陷入恐慌
。– xealits

2
已经读了SMART,我认为它没有解决这样的信息作为固态硬盘的内部结构-它会监视错误的一些参数/一盘的“健康”,试图磁盘故障的可能性捕
xealits
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.