1

我的托管服务提供商 (pairNetworks) 对在服务器上运行的脚本有一定的规则。我正在尝试压缩文件以进行备份,并且理想情况下希望使用 bzip2 来利用其令人敬畏的压缩率。但是,当尝试压缩这个 90 MB 的文件时,该过程有时会运行 1.5 分钟以上。资源规则之一是脚本只能执行 30 CPU 秒。

如果我使用 nice 命令来“优化”进程,这是否会破坏总 CPU 处理时间?我可以使用其他命令代替 nice 吗?或者我是否必须使用不需要很长时间的不同压缩实用程序?

谢谢!


编辑:这是他们的支持页面所说的:

  • 运行任何需要超过 16MB 内存空间的进程。
  • 运行任何需要超过 30 CPU 秒才能完成的程序。

编辑:我从命令行在 bash 脚本中运行它

4

4 回答 4

5

nice对您没有帮助 -无论实际需要多少秒, CPU 秒数仍然相同。

于 2008-12-04T18:59:54.353 回答
5

nice 会改变进程的优先级,因此会更快(或更晚)获得它的 CPU 秒数,所以如果规则真的是关于 CPU 秒数的,就像你在问题中所说的那样,nice 根本不会为你服务,它只是在不同的时间被杀。

至于解决方案,您可以尝试将文件分成三个 30 MB 的片段(请参阅 split(1)),您可以在分配的时间内对其进行压缩。然后你解压缩并使用 cat 将各个部分放在一起。根据它是二进制文件还是文本,您可以使用 -l 或 -b 参数进行拆分。

于 2008-12-04T19:02:08.687 回答
3

您必须找到压缩比和 CPU 消耗之间的折衷方案。bzip2 有 -1 ... -9 选项 - 尝试“调整”它(-1 是最快的)。另一种方法是咨询您的提供商 - 可能会授予您的脚本特殊权限以运行更长时间。

于 2008-12-04T19:06:30.893 回答
1

不,nice只会影响您的流程安排方式。简而言之,一个需要 30 CPU 秒的进程总是需要 30 CPU 秒,即使它被抢占了几个小时。

当我用一些繁重的处理加载我机器的所有内核时,我总是会感到兴奋,但它们都很好。我喜欢在网上冲浪时看到 CPU 监视器达到最大值,而没有任何明显的延迟。

于 2008-12-04T19:01:12.650 回答