Linuxで許可されているオープンファイルの最大数

Linuxで許可されているオープンファイルの最大数

Linuxで設定できるオープンファイルの最大数に(技術的または実際的な)制限はありますか?構成が大きい場合(例:1-100M)、副作用はありますか?

ここでは、組み込みシステムではなくサーバーの使用を考えています。開いているファイルを多用するプログラムはもちろん、メモリを消費して速度が遅くなりますが、制限が必要なものよりはるかに大きく設定されている場合(たとえば、設定だけでメモリが消費される)、副作用に興味があります。

ベストアンサー1

私はこの制限の主な理由が過度のメモリ消費を避けるためだと思います(開いている各ファイル記述子はカーネルメモリを使用します)。また、バグのあるアプリケーションがファイル記述子を漏洩し、システムリソースを消費するのを防ぎます。

しかし、現代システムのRAMが10年前のシステムと比べてどれほど面白いのかを考えると、今日のデフォルトはかなり低いと思います。

2011年以降、Linuxのファイル記述子の基本的なハード制限は次のとおりです。1024から4096に増加

MongoDBなどの一部のソフトウェアは、デフォルトの制限よりも多くのファイル記述子を使用します。モンゴルDBの人々この制限を64,000に増やすことをお勧めします。rlimit_nofile一部のアプリケーションでは300,000を使用しました。

ソフト制限をデフォルト値(1024)に保つ限り、ハード制限を増やすことはおそらく非常に安全です。プログラムは、setrlimit()制限をソフト制限の上に上げるように呼び出す必要があり、ハード制限によって制限されます。

また、いくつかの関連質問を参照してください。

おすすめ記事