我的最终用户希望在 Linux 机器上同时运行批处理进程。他们认为同时运行多个进程将减少周转时间。这些进程承担了相当多的繁重工作。
我对此的看法是,并发运行只会争夺资源并导致资源争用。一些测试似乎证实了我的假设。
我在 SF 上发现了以下类似的帖子。
有人能指出能证明这两个理论的权威资源吗?
可以进行什么样的测试来验证这个假设?
答案1
要验证任何假设,您只需同时或并行运行作业并记录结果即可。如果您有多个 CPU,您可能会处于更好的位置,具体取决于这些 CPU 的执行方式。
但要问用户为什么会这样想。你只有理论。进行烘焙测试,看看哪种方法耗费更少的资源和时间。
注意!:我遇到了同样的问题,但不是多个 ETL,而是作业与备份竞争。停止备份使 ETL 运行得更快,所以他们把责任归咎于备份!(但停止 ETL 使备份运行得更快,所以要小心你如何提出你的论点!)由于 DBA 无法理解他们有磁盘争用,不想改变或除了“让备份不影响 ETL”之外没有其他事情可做,最后我编写了一个脚本来轮询 ETLS 的结束,并且只在它们完成后运行,如果在早上 7 点之前完成,否则不要运行。我们的时间窗口有限。
你需要调查以下事情进程亲和性
以及针对磁盘布局/ RAID 等对 I/O 进行的任何调整,标准性能考虑。