アイドル状態の場合、使用可能なメモリは合計メモリよりはるかに少なくなります。

アイドル状態の場合、使用可能なメモリは合計メモリよりはるかに少なくなります。

サーバーがあり、free出力は次のとおりです。

root@server:~# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G        903M         22G        7.7G        8.2G         22G
Swap:          975M         38M        937M

このサーバーは、まったく負荷がなく、負荷平均が0.00のSSHなど、いくつかのサービスのみを実行しながら、完全にアイドル状態です。クリアバッファを使ってみましたが、sync; echo 3 > /proc/sys/vm/drop_cachesバッファがダウンしていますが、ご覧のとおり、まだ8.2Gを使用しています。

合計31Gのうち1Gのみを使用し、22Gしか使用できないのはなぜですか? OOMハーベスタはより多くのメモリを要求するプロセスを終了するため、カーネルは実際には22G以上の空き容量を提供できないようです。しかし、その理由は何ですか?

カーネルバージョンでUbuntu 18.04サーバーを実行しています4.15.0-24-generic

ベストアンサー1

いいですね。状況はここで説明されているものと似ています。https://serverfault.com/questions/288319/linux-not-freeing-large-disk-cache-when-memory-demand-goes-up

私の場合は、lsofpostgresqlクエリログファイルが276Mと疑われました。私はまた、postgresqlの共有バッファがそれに関連している可能性があることをここで読みました。https://serverfault.com/questions/515125/oom-despite-available-memory-cache/856010#856010

postgresqlサービスを再起動できますが、バッファ/キャッシュが7.5G減少しました。本番環境では、これらの応答をさらに詳しく調べることができます。

おすすめ記事