web-dev-qa-db-ja.com

Linuxの単一プロセスで使用可能なメモリ量を確認するにはどうすればよいですか?

Redis専用のLinuxサーバーがあります。 Redisは想定ほぼすべてのRAMをそれ自体に取り込むことです。 LinuxがRedisのメモリ消費に制限を課すのではないかと心配しています。

問題はこれです:OSがそれを妨げることなく、1つのプロセスがどれだけのRAMを占める可能性があるかを正確に決定する方法は?

インターネット上の情報は矛盾しています。 overcommit_ratio、ulimit、および正解に影響を与える可能性のある他の多くのものがあります。また、すべての情報の99%は、プロセスのメモリをリソースが不足している少量に制限することに重点を置いています。私の重要な巨大なプロセスが、私が提供しようとしているすべての広大なRAMをスムーズに使用することを保証することに興味があります。

1
Gherman

通常の状況では、redisプロセスはシステムで利用可能なメモリと同じ量のメモリを取得する必要があります(+スワップがある場合)。

Redisのドキュメント( https://redis.io/topics/admin )は、オーバーコミットを1(チェックしない)に設定することを提案しています。これは、実際に仮想メモリのアドレス空間の大部分を割り当てることができるため、有益な場合があります。それをすべて使用します。もちろん、メモリを使いすぎてoom-killer(オペレーティングシステム)によって強制終了される可能性があります https://stackoverflow.com/questions/20207697/redis-process-was-killed-by-を参照) os-is-there-a-bug

2
Juraj Martinka