java - 我如何保证我的文件尾随 Linux 缓存中的最新缓冲区

标签 java linux performance file-io io

问题是我想保证我的文件拖尾几乎永远不会进行磁盘 I/O。

由于文件(本质上是日志文件)正在由 Java 服务器写入磁盘,我希望它们被实时读取并传输到另一台设备。

假设目标设备可以吸收与生成日志文件的源服务器一样多的数据,并且没有网络饱和或类似问题,那么,如果我总是从文件末尾读取,是不是保证我正在读取的数据始终来自 Linux 的缓冲区缓存?

文件每小时滚动一次。

最佳答案

在从文件缓存中丢弃文件之前,您需要确保正在读取文件。如果您距离文件末尾只有几 MB,我认为您不会遇到问题。

在 Linux 上,在我看来您可以安全地使用总内存的 10% 左右的磁盘缓存。 (但是我没有证据证明这一点)

关于java - 我如何保证我的文件尾随 Linux 缓存中的最新缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230180/

相关文章:

java - 我将如何使用 Java 8 和 lambda 打印 JVM 的系统属性?

java - 致命异常 : AsyncTask #1 java. lang.RuntimeException:执行 doInBackground() 错误时发生错误

python - 无法在 Flask 服务器上获得外部可见性

JavaScript if 语句替代语法

java - spring 错误 :org. springframework.web.context.ContextLoader - 上下文初始化失败

java - 用最终的外部类对象实例化内部类是否安全?

c - 无法从共享对象打印到文件

linux - nginx 将 .php URI 重定向到友好的对应方

performance - 使用 'exists' 进行额外的哈希查找?

android - 使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?