2015-07-19 164 views
2

我使用Spring批处理来处理大量数据(150 GB)以生成60 GB的输出文件。我正在使用垂直缩放方法和15个线程(步骤分区方法)。Spring批处理 - 使用内存数据库处理大文件

作业执行详细信息存储在内存数据库中。 CPU利用率更多的是因为它运行在单台机器上,文件大小很大。但服务器具有像32核心处理器一样的良好配置,并且我正在使用10 GB内存进行此过程。

我的问题是,如果我把它移动到单独的数据库它会减少一些CPU利用率?另外,使用内存数据库进行生产是一个糟糕的选择/决策?

问候, 桑卡

回答

0

当你在谈论从内存移动分贝单独的数据库,你只是在谈论的批生产运行表(job_instance,job_execution,step_execution,...),右?

如果是这样,我不会指望CPU使用率会下降很多。根据您的块大小,数据处理需要更多的CPU使用量,而不是更新批处理运行时表。

如果使用内存数据库进行生产是一个很好的决定与否,取决于您的需求。需要考虑的两点:

  • 您丢失了写入批处理运行时表的任何信息。这可能对调试会话很有帮助,或者只是有一种历史记录。但是你也可以在日志文件中“坚持”这些信息。
  • 您将无法执行可重新启动的作业。如果你的工作需要数小时才能完成,这可能是一个问题。但对于工作而言,只能从文件读取,写入文件,并在几分钟内完成,这不是一个真正的问题。
+0

谢谢..我明白了。 – Shankar