1

私のホスティング プロバイダー (pairNetworks) には、サーバー上で実行されるスクリプトに関する特定の規則があります。バックアップ目的でファイルを圧縮しようとしていますが、理想的には bzip2 を使用して、その素晴らしい圧縮率を利用したいと考えています。ただし、この 90 MB のファイルを圧縮しようとすると、プロセスが 1.5 分以上かかることがあります。リソース ルールの 1 つは、スクリプトは 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 はまったく役に立ちません。別の時間に殺されました。

解決策として、割り当てられた時間内に圧縮できるように、ファイルを 3 つの 30 MB に分割してみてください (split(1) を参照)。次に、圧縮を解除し、 cat を使用してピースをまとめます。バイナリかテキストかに応じて、-l または -b 引数を使用して分割できます。

于 2008-12-04T19:02:08.687 に答える
3

圧縮率と CPU 消費の間の妥協点を見つける必要があります。bzip2 には -1 ... -9 オプションがあります。「調整」してみてください (-1 が最速です)。もう 1 つの方法は、プロバイダーに相談することです。スクリプトに特別なアクセス許可を付与して、より長く実行できる場合があります。

于 2008-12-04T19:06:30.893 に答える
1

いいえ、niceプロセスのスケジュール方法にのみ影響します。簡単に言えば、30 CPU 秒かかるプロセスは、何時間もプリエンプトされたとしても、常に 30 CPU 秒かかります。

マシンのすべてのコアに重い処理をロードするとき、私はいつもスリルを感じますが、それらはすべてうまくいきます。目立った遅延なしに Web をサーフィンしているときに、CPU モニターが最大になっているのを見るのが大好きです。

于 2008-12-04T19:01:12.650 に答える