【发布时间】:2012-10-24 06:15:32
【问题描述】:
我有一些小事务需要在 java 程序中同步到文件系统 (ext4) 到 SSD 上。
如果我需要在每次事务后与文件系统同步,将这些事务顺序写入文件的最快方法是什么? 每个事务的数据确实很小,但如果可以增加事务/秒,则可以写入更多(例如填满一页)。
数据写入一次后,只能读取。
另外,是否对文件系统进行了任何调整以提高性能? 是否有更适合该任务的稳定文件系统?
更新:这似乎是一个文件系统问题。使用同步时,Ext4 比 Ext3 慢得多? 建议? UPDATE 问题的解决方案是预分配文件(在 java _file.setLength(size) 中)。这将导致在 ext4 上预先分配空间并且将所有元数据写入一次。在此之后,写入文件将只编辑用户数据,元数据保持不变。 在我的情况下,这导致了 10 倍的加速。
【问题讨论】:
-
阅读了我的 sqlalchemy 使用的一些设计模式。这是 python 的东西,但我认为你会发现文档有用。
-
你有这些模式的链接吗?
标签: java performance solid-state-drive ext4