についてfs.file-max
は、ほとんどの場合、放っておけばよいと思います。なんらかの非常にビジーなサーバーを実行していて、実際にファイル ハンドルが不足している場合は、それを増やすことができますが、増やす必要がある値は、実行しているサーバーの種類と負荷によって異なります。その上です。一般に、ファイル ハンドルが不足しなくなるまで、または負荷を処理するためにより多くのメモリまたはシステムが必要であることに気付くまで、それを増やす必要があります。file-max をデフォルトよりも小さくして「調整」することによるメリットは非常に小さいため、考える価値はありません。私の電話は fs-max 値 83588 で問題なく動作します。
ところで、最新のカーネルはすでに経験則を使用して、システムのメモリ量に基づいて file-max を設定しています。fs/file_table.c
2.6 カーネルから:
/*
* One file with associated inode and dcache is very roughly 1K.
* Per default don't use more than 10% of our memory for files.
*/
n = (mempages * (PAGE_SIZE / 1024)) / 10;
files_stat.max_files = max_t(unsigned long, n, NR_FILE);
のfiles_stat.max_files
設定ですfs.file-max
。これは、1MB の RAM ごとに約 100 になります。
もちろん、ulimits は、ユーザーまたはプロセスによって割り当てられるリソースを制限することに関するものです。複数のユーザーがいる場合や、そのような状況の場合は、システム リソースをどのように分割し、メモリ使用量やプロセス数などを制限するかを決めることができます。設定できる制限の詳細についての決定的なガイドは、setrlimit manです。ページ(そしてもちろんカーネル ソース)。