Am Wed, Apr 19, 2023 at 01:00:33PM -0700 schrieb Mark Knecht: > I think technically they default to the physical block size internally > and the earlier ones, attempting to be more compatible with HDDs, > had 4K blocks. Some of the newer chips now have 16K blocks but > still support 512B Logical Block Addressing. > > All of these devices are essentially small computers. They have internal > controllers, DRAM caches usually in the 1-2GB sort of range but getting > larger. Actually, cheap(er) SSDs don’t have an own DRAM, but rely on the host for this. There is an ongoing debate in tech forums whether that is a bad thing or not. A RAM cache can help optimise writes by caching many small writes and aggregating them into larger blocks. > The bus speeds they quote is because data is moving for the most > part in and out of cache in the drive. Are you talking about the pseudo SLC cache? Because AFAIK the DRAM cache has no influence on read performance. > What I know I'm not sure about is how inodes factor into this. > > For instance: > > mark@science2:~$ ls -i > 35790149 000_NOT_BACKED_UP > 33320794 All_Files.txt > 33337840 All_Sizes_2.txt > 33337952 All_Sizes.txt > 33329818 All_Sorted.txt > 33306743 ardour_deps_install.sh > 33309917 ardour_deps_remove.sh > 33557560 Arena_Chess > 33423859 Astro_Data > 33560973 Astronomy > 33423886 Astro_science > 33307443 'Backup codes - Login.gov.pdf' > 33329080 basic-install.sh > 33558634 bin > 33561132 biosim4_functions.txt > 33316157 Boot_Config.txt > 33560975 Builder > 33338822 CFL_88_F_Bright_Syn.xsc > > If the inodes are on the disk then how are they > stored? Does a single inode occupy a physical > block? A 512 byte LBA? Something else? man mkfs.ext4 says: […] the default inode size is 256 bytes for most file systems, except for small file systems where the inode size will be 128 bytes. […] And if a file is small enough, it can actually fit inside the inode itself, saving the expense of another FS sector. When formatting file systems, I usually lower the number of inodes from the default value to gain storage space. The default is one inode per 16 kB of FS size, which gives you 60 million inodes per TB. In practice, even one million per TB would be overkill in a use case like Dale’s media storage.¹ Removing 59 million inodes × 256 bytes ≈ 15 GB of net space for each TB, not counting extra control metadata and ext4 redundancies. The defaults are set in /etc/mke2fs.conf. It also contains some alternative values of bytes-per-inode for certain usage types. The type largefile allocates one inode per 1 MB, giving you 1 million inodes per TB of space. Since ext4 is much more efficient with inodes than ext3, it is even content with 4 MB per inode (type largefile4), giving you 250 k inodes per TB. For root partitions, I tend to allocate 1 million inodes, maybe some more for a full Gentoo-based desktop due to the portage tree’s sheer number of small files. My Surface Go’s root (Arch linux, KDE and some texlive) uses 500 k right now. ¹ Assuming one inode equals one directory or unfragmented file on ext4. I’m not sure what the allocation size limit for one inode is, but it is *very* large. Ext3 had a rather low limit, which is why it was so slow with big files. But that was one of the big improvements in ext4’s extended inodes, at the cost of double inode size to house the required metadata. -- Grüße | Greetings | Qapla’ Please do not share anything from, with or about me on any social network. FINE: Tax for doing wrong. TAX: Fine for doing fine.