Eclipse가 RAM을 차지하지 못하도록 제한

Eclipse가 RAM을 차지하지 못하도록 제한

나는 과학적 작업을 위해 Ubuntu 14.04에서 Eclipse를 사용하고 있으며 내 코드는 많은 RAM을 소비합니다. Eclipse에서 코드를 실행하면 시스템 모니터에서 RAM 사용량이 거의 100%까지 올라가고 동시에 OS가 매우 응답하지 않는 것을 볼 수 있습니다(예를 들어 터미널을 여는 데 1분 이상 소요됨). OS가 항상 응답성을 유지하도록 Eclipse에서 사용되는 RAM의 양을 제한하는 방법이 있습니까?

감사해요!

답변1

Eclipse에서 애플리케이션을 실행하면 OS에 별도의 스레드가 생성됩니다. 해당 스레드의 RAM 사용량은 Eclipse로 제어할 수 없습니다.

시스템 충돌을 방지하는 한 가지 방법은 스왑 파티션 크기를 늘리는 것입니다. 이 경우에도 시스템은 매우 느려지지만 충돌은 발생하지 않습니다.

응용 프로그램의 RAM 사용량을 제어하는 ​​다른 방법이 있습니다. 예를 들어 사용량이 특정 값을 초과하면 프로그램을 종료하는 것입니다. 메모리 사용량에 대해 이러한 엄격한 제한을 설정하면 예측할 수 없는 동작/충돌이 발생할 수 있습니다. RAM 사용량 제한에 대해 설명하는 아래 링크를 참조하세요.

https://unix.stackexchange.com/questions/44985/limit-memory-usage-for-a-single-linux-process

https://stackoverflow.com/questions/26860822/how-limit-memory-usage-for-a-single-linux-process-and-not-kill-the-process

RAM을 덜 사용하도록 코드를 최적화하거나 RAM에 보관하는 대신 데이터를 하드 디스크에 덤프하고 필요할 때 읽는 방법을 생각해 보는 것이 좋습니다. RAM을 늘리는 것이 더 좋습니다!

답변2

여기바로 이 문제에 대한 Perl 스크립트입니다.

소개

타임아웃 스크립트는 Linux에서 블랙박스 프로세스의 시간과 메모리 소비를 제한하기 위한 리소스 모니터링 프로그램입니다. 명령줄에 지정한 명령을 실행하고 해당 명령의 메모리 및 시간 소비를 관찰하고, 제한을 벗어나면 프로세스를 중단하고 미리 설정된 메시지로 사용자에게 알립니다.

이 스크립트의 가장 큰 특징(그리고 실제로 이 스크립트가 나타난 이유)은 직접 생성된 프로세스를 감시할 뿐만 아니라 이후에 분기된 하위 항목도 추적한다는 것입니다. 감시되는 프로세스의 범위가 프로세스 그룹 또는 프로세스 트리에 의해 제한되는지 여부를 선택할 수 있습니다.

원천

관련 정보