繁体   English   中英

如何在java中处理大日志文件

[英]How to process large log file in java

我有 4 个文件,每个文件 200 MB。 我创建了 4 个线程并并行运行 4 个线程,每个线程处理并添加到 Array 阻塞队列中。

其他一些线程正在接受数组阻塞队列并处理并添加到批处理中。 批处理大小为 5000 并执行批处理并将记录插入数据库。但它仍然需要完整的 4 个文件大约 6 分钟才能完成。

在这种情况下如何提高性能?

1) 确保您有足够的内存用于队列 + 处理器缓冲区 + db 缓冲区。

2) 5k 的批量大小比需要的要多一点,一般情况下,您可以达到 100 的速度,但在这里并没有太大区别。

3)您可以在多个线程中将数据推送到oracle。 获取 ID 字段填充的序列,如果您没有很多索引,您将能够并行插入 1 个表。 否则考虑禁用/重新计算索引,或插入临时表,然后将所有内容移动到主表中。

4) 与 DB 管理员同事一起查看 oracle 设置。 诸如扩展大小/增加之类的事情可以改变性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM