멀티 태스킹 작업 갯수를 지나치게 높히면 연산이 중간에 멎어버릴 수도 있나요?
글쓴이: ytt123 / 작성시간: 월, 2009/07/20 - 3:38오후
리눅스에서 수행되는 메모리를 주로 쓰는 연산인데요
작업 하나가 보통 20분 정도면 끝나는데
필요에 의해 8개의 작업을 각각 다른 디렉토리에 돌렸는데,
약 6시간이 지났는데도 작업 한개만 정상 종료 되었을 뿐 나머지 작업은 여전히 돌고 있는건지 아님 멈춘건지 끝이 나질 않는군요. 물론 결과 파일도 생성되지 않구요. 그런데 ps치면 작업은 분명히 걸려 있습니다.
컴퓨터가 원래 그런건가요? ^^;;
제가 알기론 컴퓨터는 멀티 태스킹을 한다고 알고 있는데, 메모리에 지나친 부하가 걸리면 그냥 멎어 버리는 건가요?
만약 그렇다면 그 부하량을 예측할 수도 있는 건지 궁금하군요.
Forums:
수백개도 아니고
수백개도 아니고 8개면 속도에만 관련 있을뿐 아무런 문제가 없습니다.
한개당 cpu 100%점유로 20분씩이면 대충 계산해도 8개 모두 결과를 얻는데 160분은 지나야 겠죠. 프로세스 스위칭을 생각하면 10% 정도는 더 걸릴 수도 있을겁니다.
그리고 메모리를 많이 차지하는 계산이고, 실제 컴퓨터에 메모리가 계산에 충분하지 않다면 디스크 스왑이 자주 발생해서 많이 늦어질 수도 있습니다.
감사..
음..그럼 디스크 스왑이 문제였을 가능성이 커 보이네요.
만약 그렇다면 디스크 스왑이 그렇게 시간을 많이 잡아 먹는다는 것이 새롭군요.
디스크 스왑이라는
디스크 스왑이라는 것이 ram이 모자랄때 쓰이지 않는 일부를 스왑영역(보통 하드디스크)에 옮겨서 임의로 ram을 늘려 사용하는 것이니까 느릴 수 밖에 없습니다.
혹시...
혹시 이 경우, 각각의 process가 swap을 얼마나 쓰고 있는지를 확인할 수 있는 리눅스 명령어가 있는지요.
ps 명령어만으로는 정보가 없는 것 같아서요,
그리고 위 사례의 경우에서는 오히려 swap을 안쓰게 하는 것이 효율적이지 않을까요?
swap을 안쓰게 되면 디스크 i/o에 낭비하는 시간이 없어질 것이고 (맞나요?), 그럼 뭐, 잘은 모르지만
8개의 process가 메모리를 적당히 쪼개 쓰던, 대기하고 있다가 쓰던간 메모리 안에서만 작업이 이루어지니까
정말 160분 + 약간의 알파....시간만 소요되지 않을까 해서요.
댓글 달기