記憶體壓縮會導致感知記憶體使用量較高嗎?

記憶體壓縮會導致感知記憶體使用量較高嗎?

這有點遙遠,但我們目前的 Docker 化 Java 應用程式之一遇到了一些問題:堆疊溢位問題

我們已將 docker 記憶體限制設為 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

貓/系統/核心/調試/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

我們僅在生產伺服器(已運行近一年)上遇到此問題,我們的較低環境每個週末都會停止,到目前為止我們尚未設法手​​動觸發此問題。儘管如此,我們將在下週嘗試更換伺服器,希望這個問題發生的可能性會小得多。

我知道這是一個不太可能的事情,我不是 Linux 記憶體管理方面的專家,而且它可能不太可能是根本原因,但這是一個我很想知道答案的問題。

相關內容