Is there a way to find out SSD page size on Linux/Unix? What is "physical block" in fdisk output?
The physical block size reported by
fdisk
is the physical block size reported by the disk when asked. It seldom has any relationship with SSD pages or erase blocks.4 KiB reads/writes are a common measure of I/O performance, representing "small" I/O operations.
There is no standard way for a SSD to report its page size or erase block size. Few if any manufacturers report them in the datasheets. (Because they may change during the lifetime of a SKU, for example because of changing suppliers.) There is a whitepaper from Intel which suggests that 4 KiB alignment is enough.
For practical use just align all your data structures (partitions, payload of LUKS containers, LVM logical volumes) to 1 or 2 MiB boundaries. It's an SSD after all--it is designed to cope with usual filesystems, such as NTFS (which uses 4 KiB allocation units). If Windows considers that aligning partitions to 1 MiB is enough you can bet that any SSD manufacturer will make sure that their products work well with such a configuration.
Best leave about 5% to 10% of unallocated space outside any partitions. Having overprovisioned space is of great help to SSDs in maintaining their performance in time.
smartctl
(available in smartmontools
) should do it for you.