Java 서버 애플리케이션을 사용하려면 OS에 얼마나 많은 메모리가 남아 있어야 합니까?

Java 서버 애플리케이션을 사용하려면 OS에 얼마나 많은 메모리가 남아 있어야 합니까?

-Xms256m -Xmx1024m을 사용하여 Tomcat을 실행하고 있지만 힙 사용량을 늘리고 싶다고 가정해 보겠습니다.

할당할 수 있는 가장 큰 안전 힙 크기는 얼마입니까?

이 질문에서는 시스템에 5GB RAM이 있고 az/Linux 시스템이 있다고 가정합니다. 그러나 가능하다면 더 폭넓은 경험 법칙에 따른 답변을 원합니다.

그리고 중복이라면 죄송합니다. 나는 이런 종류의 것에 대한 더 많은 정보를 찾지 못했다는 것에 놀랐습니다.

다음과 중복되지 않음:나는 보았다여기그러나 그의 대답은 아무런 근거도 없이 단지 추측일 뿐인 것 같습니다. 해당 질문의 다른 답변은 명확하지 않거나 내 문제에 구체적이지 않습니다. 1) 저는 윈도우 32비트 시스템을 사용하고 있지 않습니다. 2) PermGen에 대해 묻지 않았습니다. 비록 좋은 답변에서 언급되었을 수도 있지만, 3) 세 번째 답변은 "마지막으로 다른 것도 고려해야 합니다"라고 말했습니다. 서버에서 실행 중이고 RAM도 필요한 것입니다." 그러나 이는 정확한 대답은 아닙니다. 지금은 OS의 메모리 사용량이 걱정됩니다.

편집하다: 전용 시스템이라 OS 메모리 사용량이 가장 걱정이 됩니다. 다른 프로그램은 걱정하지 않아요.

GC

답변1

할당하려는 최대 힙 크기는 시스템의 자체 리소스 활용도, 실행 중인 다른 서비스 등에 따라 결정됩니다. 불필요한 메모리 페이징을 방지하기 위해 OS에서 사용할 수 있는 충분한 메모리를 남겨두는 힙 크기를 할당하려고 합니다. 이는 Windows에서 더 큰 문제이지만 Linux에서도 문제가 나타납니다(저는 Linux보다 Windows 전문가이므로 죄송합니다).

먼저 시스템의 리소스 활용도를 확인하고 싶습니다.http://www.cyberciti.biz/faq/linux-check-memory-usage/

다음으로 페이지 파일이 어떻게 구성되어 있는지 확인하고 싶습니다.http://www.cyberciti.biz/faq/linux-check-the-size-of-pagesize/

그런 다음 이전에 수집한 정보를 기반으로 다양한 구성을 시도하고 페이지 파일 활용도를 관찰해야 합니다.http://www.cyberciti.biz/faq/linux-check-swap-usage-command/

페이지 파일이 많이 활용되고 있다면 힙 크기가 너무 큰 것입니다. 활용률이 매우 낮거나 전혀 사용되지 않는 경우 힙 크기를 늘려 성능을 향상할 수 있습니다. (실제 성능 결과는 Java 앱마다 다르며 힙 크기를 늘리면 일부 앱의 성능이 저하될 수 있습니다. 프로그래밍되어 있습니다).

OS에 페이지 파일을 쉽게 유지 관리할 수 있는 충분한 여유 RAM이 있고 애플리케이션에 충분한 메모리가 할당되도록 적절한 양의 메모리를 할당해야 합니다. Windows에서는 로드 시 최소 25%의 여유 RAM을 유지하려고 노력합니다. 다른 구성을 시도하고 시스템 성능을 지켜보겠습니다.

한 가지 더 중요한 참고 사항: Java 8에서는 이러한 항목을 전혀 정의할 필요가 없습니다. Java 8은 이러한 값을 정적으로 할당하는 것보다 자체적으로 유지 관리하는 것이 더 나은 것 같습니다.

관련 정보