java内存映射文件,SSD的4k或8k块读/写?

Posted

技术标签:

【中文标题】java内存映射文件,SSD的4k或8k块读/写?【英文标题】:java memory mapped file, read/write in 4k or 8k blocks for a SSD? 【发布时间】:2013-05-27 19:54:51 【问题描述】:

我有一个内部页面大小为 8k 的 SSD,但 linux 仅支持 4k 页面大小。我的问题是,当使用 java 内存映射文件时,我一次可以在 4k 或 8k 块中获得更好的性能读/写。我正在使用内存映射文件构建基于磁盘的哈希映射,其中每个存储桶是 4k 或 8k 块。如果 ssd 将读取 8k,即使我只访问它的前 4k,那么似乎我应该使用 8k 块,否则我会浪费一半的读取。但是,由于 linux 仅在 4k 块中工作,我不知道从操作系统的角度读取两页是否会有开销,即使从 ssds 的角度来看它只有一页,如果你得到我的 jist。

【问题讨论】:

【参考方案1】:

您可以通过使用开放寻址来完全避免选择块大小。然后让操作系统和硬件来找出执行每个操作的最有效方式。

【讨论】:

以上是关于java内存映射文件,SSD的4k或8k块读/写?的主要内容,如果未能解决你的问题,请参考以下文章

SSD trim及4k对齐

固态硬盘怎么4K对齐 三种固态硬盘4K对齐方法

截断内存映射文件

硬盘4K对齐是啥意思?具体该怎么做?

linux 下ssd分区,4k对齐

4K加速普及,8K近在咫尺,下一个是?