これは、aws ami linux ec2インスタンス(4つのCPUコア、Intel(R)Xeon(R)CPU E5-2666 v3 @ 2.90GHz、8GB RAM)で64ビットrarを実行しています。
8568個のファイルを含むフォルダがあります。 rarファイルを作成してここにすべてのファイルを追加すると、追加されたファイルの処理を開始するのに約3分かかります。これは普通ですか?遅延理由が何であるかをご存知ですか(ファイル分析中ですか?)私が使用するコマンドは次のとおりです。
/usr/local/bin/rar a -r -iddpq -ierr /path/to/compress/myfile.rar /path/to/compress/*.log
各ファイルのサイズは約980バイトです。
答え1
範囲を絞ったテストを実行した後、最終的にファイルを開き、内容を読む前にバイナリが各ファイルをrar
7回呼び出したことを発見しました。stat
ソースコードの動作を追跡したかったのですが(少なくともDebianでは)使用できません。
$ strace -o rar.strace rar a -r -iddpq -ierr path/to/compress/myfile.rar path/to/compress/*.log
...
$ grep /5.log rar.strace
execve("/usr/bin/rar", ["rar", "a", "-r", "-iddpq", "-ierr", "path/to/compress/myfile.rar", "path/to/compress/1.log", "path/to/compress/2.log", "path/to/compress/3.log", "path/to/compress/4.log", "path/to/compress/5.log"], [/* 16 vars */]) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
stat64("path/to/compress/5.log", {st_mode=S_IFREG|0644, st_size=980, ...}) = 0
open("path/to/compress/5.log", O_RDONLY|O_LARGEFILE) = 5