おそらく次のようなものLinux メモリ使用量がプロセス合計よりも高い。しかし、使用されたメモリはGB単位のRSSプロセスの合計よりも低くても高くなりました。
uname -sr
Linux 5.0.9-...
cat /proc/meminfo
MemTotal: 8155920 kB
MemFree: 280200 kB
MemAvailable: 328152 kB
Buffers: 144 kB
Cached: 704380 kB
SwapCached: 15440 kB
Active: 2374160 kB
Inactive: 1195784 kB
Active(anon): 2259104 kB
Inactive(anon): 1026600 kB
Active(file): 115056 kB
Inactive(file): 169184 kB
Unevictable: 238012 kB
Mlocked: 0 kB
SwapTotal: 8388604 kB
SwapFree: 5908220 kB
Dirty: 168 kB
Writeback: 0 kB
AnonPages: 3097284 kB
Mapped: 255492 kB
Shmem: 420252 kB
KReclaimable: 81636 kB
Slab: 346972 kB
SReclaimable: 81636 kB
SUnreclaim: 265336 kB
KernelStack: 14720 kB
PageTables: 70776 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 12466564 kB
Committed_AS: 9429628 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 2112 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 4764008 kB
DirectMap2M: 3614720 kB
すべてのプロセス(出力で個別に合計されます)、slabinfo、buff / cache、swapのRSS合計はtop
100 MB以上変更されませんが、使用可能なメモリはGBだけ増加します。後ろにffmpegの起動...過度の長期圧縮操作でffmpegを起動すると、すべてのディスクスラッシングが確実に削除され、毎回使用可能なメモリが大幅に増加するようです(良い一時的なソリューションですが、長期的なソリューションでは許可されていません)。 ffmpeg の実行中に使用可能なメモリがダウンし、ディスクがクラッシュしますが、使用可能なメモリは GB 単位で増加します。この動作はffmpegが実行されている場合にのみ存在します。 ffmpegが実行されていない場合、使用可能なメモリはディスクスラッシングの原因から最大数百MBに移動します。システムを使った過去2ヶ月間、他のどのプログラムも同じ効果を出さなかったようです。面白いと迷惑。
答え1
私は主にBSDベースのシステムを使用しています。しかし、私が見ると、あなたの状況は非常に似ているようです。あなたのデータが「期待どおりに」動作しているようです。メモリは無限に高速なので、スワップよりも優れています。したがって、あなたのシステムは最善を尽くしています管理するその記憶、そしてただアプリケーションではなく、システムが適切であると判断したときにアプリケーションがそれを使用できるようにします。 IOW あなたのシステム消費するそのリソースを次のようにプロキシできるようにメモリそれ適切とみなされます。その逆は真実ではありません。
これで何かを追加できます。そうでなければ承認するの。あなたするカーネルの動作を必要に応じて変更するためにカーネルを「調整」するオプションがあります。でも正直気持ちいいですね。
ファタイ
答え2
Committed_AS
それより大きい場合、MemTotal
ページが表示されます。しきい値に達すると、メモリの回復によって一部のキャッシュが削除され、一部のページがディスクに移動されるなど、同様のアクティビティが実行されます。
これらのリサイクル動作が気に入らない場合は、RAMを追加してください。
実際に割り当てられたメモリを追跡できないプログラムやカーネルの「メモリリーク」は深刻な状況です。リサイクル行為をValgrindやLeakSanitizerなどのツールを使用して発見した漏れと混同しないでください。