저는 다음을 사용하여 많은 계산을 수행하는 Python으로 작성된 프로그램을 실행하고 있습니다.치아노.
CPU를 많이 사용하는 프로그램이기 때문에 노트북의 다른 모든 활동을 방해합니다.
이를 위해 프로세스의 좋음 수준을 19로 설정하고 cpulimit
CPU 사용량을 10%로 낮췄습니다.
불행하게도 노트북이 때때로 몇 분 동안이라도 멈추는 현상이 발생했기 때문에 이러한 시도는 작동하지 않았습니다.
이 문제를 해결하는 방법을 알고 있나요? 스케줄러가 올바르게 실행되도록 어떻게 지시합니까?
노트북은 Intel Core i5-3317U를 탑재한 Samsung Ultrabook(새 시리즈 9)입니다. 운영 체제는 Linux, Ubuntu 15.10, 커널 4.2.0입니다.
편집: 문제는 쓰레기(메모리 부족, 지속적인 스와핑)로 인해 발생한 것 같습니다.
답변1
CPU는 제한되어 있지만 이러한 무응답은 일반적으로 스왑으로 인해 발생합니다(즉, 프로세스가 다른 작업을 디스크에 푸시하고 다시 넣는 데 많은 시간을 소비하게 됩니다).
메모리 사용량을 제한하는 가장 좋은 방법은 일반적으로 프로그램 내에서 수행됩니다. 이것이 불가능하고 메모리 소비가 느린 경우(해제되지 않았기 때문에) 프로그램을 종료하고 자주 다시 시작해야 할 수도 있습니다. 물론 이는 중간 결과가 정기적으로 작성되는 경우에만 작동합니다.
프로그램 외부에서 다음을 사용하여 메모리 양을 제한할 수 있습니다.timeout
스크립트(이것은 coreutils 시간 초과가 아닙니다!) 메모리를 제한하는 옵션이 있어 -m
너무 많은 메모리를 소비하기 시작하면 프로세스가 종료됩니다.
처리를 다시 시작할 수 없는 경우 선택할 수 있는 옵션은 다음과 같습니다.
- 설치할 수 있는 경우 컴퓨터에 추가 메모리를 구입하세요.
- SATA SSD를 설치하고(노트북이 지원하는 경우) 교체합니다.
- 더 작은 단위로 작동하도록 소프트웨어를 다시 작성