1
  1. 以下のように、db からデータを読み取り、CSV ファイルにロードする py スクリプトがあります。

    with open(filePath, 'a') as myfile:
        myfile.write(myline)
    
  2. ファイルの準備ができたら、私の py スクリプトは subprocess.call(...) から SQLLDR を開始し、それらすべてをロードします。

上記のすべての手順を非常に低い優先度で実行する必要があります。私はそれを設定os.nice(19)して、すべてのsubprocess.call(...)関数に渡しました。これは上記のステップ 2 に適しています。

サーバー上でファイルを作成および書き込み中に「ナイスネス」を設定するにはどうすればよいですか? ファイルの書き込み/読み取り中に os を(設定後にos.nice(19))渡すことは可能ですか?

4

3 に答える 3

2

デフォルトでは、2.6 以上の Linux では、io 優先度は nice 値から計算されます。つまり、優先度の低いプロセスは自動的に IO への影響が低くなりますが、必要に応じて、ioniceコマンドを使用してプロセスの io 優先度を指定できます。別の値に設定します。

于 2013-10-23T14:10:35.827 に答える
0

nice が構築されるsetpriority(2)のマニュアルにあるように:

fork(2) によって作成された子は、親の nice 値を継承します。nice 値は execve(2) 全体で保持されます。

そのため、サブプロセスは現在のナイス設定を継承します。ただし、Alexander が指摘しているように、ほとんどの時間をディスクへの書き込みが完了するまで待機するプロセスでは、大きな違いは見られません。

于 2013-10-23T13:43:16.583 に答える