我不确定这是否是提出这个问题的正确堆栈。我有以下情况:
我有8个CPU
我有 16 GB 内存
我正在运行一个使用 3 CPU 和 6 GB RAM 的程序(因此使用率低于 50%)。
我的问题:
如果我将 CPU 减少到 4 个 CPU,将 RAM 减少到 8 GB,我假设现在同一程序的使用率为 75%。然而,它会增加交货时间吗?假设我的程序扫描某些内容,并且此扫描需要 1 小时。如果我如上所述减少 CPU 和 RAM,同样的扫描是否需要 1 小时?
取决于其他正在运行的进程以及操作系统本身使用的内存。如果其他进程没有重大活动,那么减少 CPU 数量应该没有关系。
操作系统本身需要一些内存。您应该关心的参数是更少的“总”内存和更多的“空闲”内存(但是您可以通过增加总内存来增加可用内存)。如果启动应用程序后仍有剩余可用内存,则不应发生内存交换。您可以在操作系统中禁用内存虚拟化,这样,如果没有可用内存,进程就会失败。这可以防止所有内存交换、内存直写等操作,从而减少执行时间。但如果没有足够的可用内存,那么任何进程都可能随时失败。
您提到您的应用程序会扫描内容。我假设它扫描外部存储器,即硬盘驱动器。这花费了最多的时间,并且几乎独立于 CPU 和内存。由于这一瓶颈,实际上可能会出现这样的情况:您的应用程序使用一个 CPU 和一些最小数量或 RAM 运行得同样快(或慢)。