oom_reaper luôn tắt ứng dụng của chúng tôi mặc dù bộ nhớ không được sử dụng bởi chính quy trình.
free -m, ngay trước khi trình diệt OOM kết thúc quá trình, chỉ ra rằng "chia sẻ" và "buff/cache" cần toàn bộ bộ nhớ:
root@local:/tmp# miễn phí -m
tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Mem: 3861 627 95 3037 3138 26
Hoán đổi: 0 0 0
Xóa bộ đệm bằng cách sử dụng tiếng vang 3 > /proc/sys/vm/drop_caches
không làm gì cả.
linuxatemyram.com không áp dụng ở đây.
Tôi cũng đã loại trừ rằng bộ nhớ được sử dụng bởi đĩa RAM/tempfs bằng cách sử dụng df -t tmpfs --total -h
.
meminfo, ngay trước khi kẻ giết người OOM kết thúc quá trình, đã trả về như sau:
root@local:/tmp# awk '$3=="kB"{$2=$2/1024;$3="MB"} 1' /proc/meminfo | cột -t
MemTotal: 3861,26 MB
Bộ nhớ miễn phí: 108,297 MB
Bộ nhớ khả dụng: 49,6445 MB
Bộ đệm: 2,82422 MB
Bộ nhớ cache: 3069,16 MB
SwapCached: 0 MB
Đang hoạt động: 42,8164 MB
Không hoạt động: 578,258 MB
Đang hoạt động (không hoạt động): 2,78125 MB
Không hoạt động (không hoạt động): 542,719 MB
Hoạt động (tệp): 40.0352 MB
Không hoạt động (tệp): 35,5391 MB
Không thể tránh khỏi: 2964,51 MB
Đã khóa: 18,6484 MB
SwapTotal: 0 MB
Trao đổi miễn phí: 0 MB
Bẩn: 0,09375 MB
Viết lại: 0 MB
Trang Anon: 513.977 MB
Đã ánh xạ: 85,9766 MB
Shmem: 2987,97 MB
KCó thể nhận lại: 37.6602 MB
Phiến: 104,531 MB
SCó thể thu hồi: 37,6602 MB
Yêu cầu bồi thường: 66,8711 MB
KernelStack: 6,625 MB
Bảng trang: 11,4961 MB
NFS_Không ổn định: 0 MB
Thoát: 0 MB
Ghi lạiTmp: 0 MB
Giới hạn cam kết: 1930,63 MB
Đã cam kết_AS: 5638,47 MB
VmallocTotal: 3.35544e+07 MB
VmallocĐã sử dụng: 27.3516 MB
VmallocChunk: 0 MB
Bộ nhớ trong: 3.23438 MB
Phần cứng bị hỏng: 0 MB
Trang AnonHuge: 0 MB
ShmemHugeTrang: 0 MB
ShmemPmdMapped: 0 MB
FileHugePages: 0 MB
FilePmdMapped: 0 MB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Kích thước trang lớn: 2 MB
Dung lượng lớn: 0 MB
DirectMap4k: 179,078 MB
DirectMap2M: 3850 MB
ipcs -m --human trả về:
root@local:~# ipcs -m --human
------ Đoạn bộ nhớ dùng chung --------
key shmid chủ perms size nattch status
0x00000000 2 người dùng 600 512K 2 đích
0x00000000 262202 người dùng 600 512K 2 đích
Khi ứng dụng của chúng tôi bị chấm dứt, "buff/cache" và "shared" cũng được phát hành lại.
Trình lược tả bộ nhớ cũng không có vấn đề gì.
Làm cách nào để biết dữ liệu nào nằm trong "chia sẻ" và "buff/cache"?
Hệ thống: Ubuntu Server 20.04, 5.11.0-41-generic (HWE)