2013-02-08 1 views
1

Java에서 내 응용 프로그램 중 하나를 조정하려고합니다. JAVA-Profiler를 사용 중이고 일부 보고서가 있습니다. 응용 프로그램의 페이지 오류 수는 30000에서 35000 범위에 이르는 것으로 나타났습니다. 이 번호가 너무 높거나 정상적인 경우 어떻게 결정합니까? 처음 1 분과 30 분 후에 동일한 데이터가 나타납니다.성능 조정, 감지 및 페이지 오류

내 RAM은 2GB이고 단일 스레드로 응용 프로그램을 사용하고 있습니다.

스레드는 3 초마다 큐에서 메시지를 읽으려고 시도하며 큐는 비어 있습니다.

처리가 진행되지 않으므로 페이지 폴트가 전혀 발생하지 않아야한다고 생각합니다. 여기 나를 안내하십시오.

+0

당신과 당신의 프로그램이 컴퓨터에서 실행되지 않고 PF의 수를 테스트하기 위해'sar' 같은 것을 사용할 수 있습니다. http://www.cyberciti.biz/faq/linux-command-to-see-major-minor-pagefaults/ –

답변

1

JVM을 시작하면 최대 힙 크기가 연속 블록으로 예약됩니다. 그러나이 가상 메모리는 해당 페이지에 액세스 할 때만 주 메모리로 변환됩니다. 즉 힙이 4KB 씩 커질 때마다 한 페이지 오류가 발생합니다. 또한 같은 방식으로 쓰레드 스택에서 페이지 폴트를 얻는다.

35K 페이지 결함은 약 140MB의 힙을 사용하고 있음을 나타냅니다.

기타 8 파운드에 25 파운드를 살 수 있습니다. 업그레이드를 고려해보십시오.

+0

답변 해 주셔서 감사합니다. 내 힙 크기가 약 140MB라고 말할 때 가까이 있습니다. 내 최대 힙 메모리는 250MB입니다. 페이지 폴트 시나리오를 최적화하기위한 다른 대안이 무엇인지 알아야합니다. 가능한 최적화를 알고 싶습니다. RAM을 늘릴 수 있습니다. 나는 동의한다. 이 외에도 SWAP 메모리를 늘리는 데 도움이됩니까? 캐시를 늘리면 도움이 될까요? 하드웨어 업그레이드가 필요없는 다른 최적화가 있습니까? –

+1

java는 힙에 대해 큰 페이지를 사용할 수 있으며 (OS에서도 지원해야 함), TLB 항목/누락이 적어서 페이지 테이블의 메모리가 적습니다. – bestsss