이는 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
소스 코드의 동작을 추적하고 싶었지만 (적어도 데비안에서는) 사용할 수 없습니다.
$ 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