메모리 압축으로 인해 메모리 사용량이 높아질 수 있습니까?

메모리 압축으로 인해 메모리 사용량이 높아질 수 있습니까?

다소 시간이 걸릴 수 있지만 현재 Dockerized Java 애플리케이션 중 하나에 몇 가지 문제가 발생하고 있습니다.스택오버로우 질문

우리는 도커 메모리 제한을 2GB로 설정했는데, 이는 Java 애플리케이션이 사용할 수 있는 것보다 훨씬 큰 수치이므로 이 문제의 가능한 원인을 찾고 있습니다.

메모리 조각 모음/압축 중에 시스템이 할당된 메모리에 대해 해당 작업을 수행하는 응용 프로그램에 대해 더 높은 메모리 사용량을 보고하여 docker의 OOM 킬러를 트리거할 수 있습니까?

EC2 서버 중 하나에 대한 추가 정보

고양이 /proc/pagetypeinfo

Page block order: 9
Pages per block:  512

Free pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10
Node    0, zone      DMA, type    Unmovable      1      0      0      1      2      1      1      0      1      0      0
Node    0, zone      DMA, type      Movable      0      0      0      0      0      0      0      0      0      1      3
Node    0, zone      DMA, type  Reclaimable      0      0      0      0      0      0      0      0      0      0      0
Node    0, zone      DMA, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
Node    0, zone      DMA, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
Node    0, zone    DMA32, type    Unmovable   2160   1450    509    358     72      0      0      0      0      0      0
Node    0, zone    DMA32, type      Movable  39753  18110   3832    317     88     18      2      0      0      0      0
Node    0, zone    DMA32, type  Reclaimable    479    970      7      6      3      0      1      0      0      0      0
Node    0, zone    DMA32, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
Node    0, zone    DMA32, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
Node    0, zone   Normal, type    Unmovable     72    410    350      0      0      0      0      0      0      0      0
Node    0, zone   Normal, type      Movable 132228  61046   1635      0      0      0      0      0      0      0      0
Node    0, zone   Normal, type  Reclaimable      0      2      7      1      0      0      0      0      0      0      0
Node    0, zone   Normal, type   HighAtomic      2      0     15     11      7      2      0      0      0      0      0
Node    0, zone   Normal, type      Isolate      0      0      0      0      0      0      0      0      0      0      0

Number of blocks type     Unmovable      Movable  Reclaimable   HighAtomic      Isolate
Node 0, zone      DMA            1            7            0            0            0
Node 0, zone    DMA32           59         1391           78            0            0
Node 0, zone   Normal          448         5888          127            1            0

고양이 /proc/sys/vm/extfrag_threshold

500

고양이 /sys/kernel/debug/extfrag/extfrag_index

Node 0, zone      DMA -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000
Node 0, zone    DMA32 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 0.988 0.994 0.997 0.999
Node 0, zone   Normal -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 0.979 0.990 0.995 0.998 0.999

무료 -h

    total        used        free      shared  buff/cache   available
Mem:            15G         11G        1.5G        1.2M        2.4G        3.7G
Swap:          4.0G        907M        3.1G

이 문제는 프로덕션 서버(거의 1년 동안 실행됨)에서만 발생하며, 낮은 환경은 주말마다 중지되며 지금까지 이 문제를 수동으로 발생시키지 못했습니다. 그럼에도 불구하고 우리는 이 문제가 발생할 가능성이 훨씬 줄어들기를 바라면서 다음 주에 서버를 교체하려고 노력할 것입니다.

나는 그것이 긴 기회라는 것을 알고 있습니다. 나는 Linux 메모리 관리에 관한 전문가가 아니며 아마도 근본 원인이 될 가능성은 거의 없지만 대답을 알고 싶은 질문입니다.

관련 정보