메모리 사용량이 높으면 zip 명령이 실패합니다.

메모리 사용량이 높으면 zip 명령이 실패합니다.

보고서를 생성하고 이메일을 통해 보낼 수 있는 여러 Perl 스크립트가 있습니다. 이메일을 통해 파일을 보내는 스크립트에는 .zip확장이 필요합니다. 보고 스크립트는 .txt또는 .xls파일을 생성한 후 다음 zip명령을 실행합니다.

print `zip -m $zip_filename $output_filename`;

특정 상황(보통 Perl 스크립트가 많은 메모리를 사용하는 경우)에서 위 명령이 실패하는 경우가 발생합니다. 내가 수집한 바에 따르면 명령을 실행하는 데 메모리가 부족하기 때문에 스크립트가 실패합니다 zip. 이는 산발적인 문제이며 파악하기가 약간 어렵습니다.

.zip파일을 생성해야 하는데 다른 압축 방법을 사용할 수 없습니다.

누군가 여기서 무슨 일이 일어나고 있는지 말해줬으면 좋겠어요. 플래그가 -m원인일 수도 있다고 생각됩니다.

나에게 이상한 점은 zip명령 을 수동으로 여러 번 실행했지만 bash많은 메모리를 사용하더라도 결코 실패하지 않는다는 것입니다.

free다음은 제가 말하는 메모리 양에 대한 아이디어를 제공하는 명령의 결과입니다 . 보고 스크립트는 때때로 10GB가 넘는 메모리를 사용합니다.

-bash-4.1$ free
             total       used       free     shared    buffers     cached
Mem:      49409336   48948192     461144          0    1184716    8147564
-/+ buffers/cache:   39615912    9793424
Swap:      2047992    2047988          4

$output_filename여러 파일과 일치하는 패턴일 수 있습니다.

관련 정보