web-dev-qa-db-ja.com

Samba testparmメッセージの解決:rlimit_max:rlimit_max(8192)がWindowsの最小制限(16384)を下回っています

sambaのtestparmは次のメッセージを生成する場合があります。

rlimit_max: rlimit_max (8192) below minimum Windows limit (16384) 

これは、このLinuxコマンドulimit -n 16384。を使用して最大オープンファイル制限を増やすことで解決されるようです。

これは通常のSambaボックスの安全な変更ですか?ブート時にsambaサービスが使用できるように、この設定はどこに保存する必要がありますか?

9
jcalfee

まず、これは単なる警告です。 MS Windowsでは、クライアントとサーバーのファイルハンドラーの数は同じである必要があります。そうでない場合、e。のときに「too many files open」メッセージが表示されます。 g。ネットワーク経由でファイルをコピーする。最近のSambaバージョンは、これを自分で処理します。

ただし、この警告を削除したい場合は、ローカルファイルの制限を変更することで削除できます。ローカル(ユーザーまたはセッション)の制限とグローバル(システム全体)の制限を区別すると、常に役立ちます。グローバルな制限を確認してください

 cat /proc/sys/fs/file-max

グローバルな制限がローカルの制限をはるかに超える可能性があります。典型的なGNU/Linuxの制限は100kの範囲にあると思います。本当に長い間調べていません。次のコマンドを実行すると、この値を一時的に変更できます

sysctl -w fs.file-max=n

または、/etc/sysctl.confを編集してsysctl -pを実行することにより、永続的に実行します。

ローカルの制限を確認するには、関係するユーザーに切り替えます。 g。サンバ、そして実行

ulimit -Hn
ulimit -Sn

これにより、ローカルセッションのハード制限とソフト制限が表示されます。ハード制限はシステムによって適用され、ソフト制限はローカルセッションによって適用されます。必要に応じて、ローカルのソフト制限をグローバルのハード制限まで増やすことができます。

実行することで一時的に制限を変更できます

ulimit -Hn n
ulimit -Sn m

または、/etc/security/limits.confを使用してユーザー制限を設定し、どのユーザーに制限を適用するかを指定することもできます。 g。

samba soft nofile 16384
samba hard nofile 32768

いつものように、ファイルとコマンドの両方のマンページは、より多くの洞察を提供します。お役に立てば幸いです。

8
bjanssen

制限は/etc/security/limits.confから取得されます。

ulimit -nで実際の制限を表示します

行を編集(または追加)して変更できます

*               -       nofile          16385

そして、env paramをリロードします(またはシェルを終了して、シェルに再度入ります)。

3
Loris

/etc/samba/smb.confファイルのタイプミスは、この種のエラーを生成する可能性があります。私はこれを link に従って行い、私の問題を調べて私の問題をタイプミスであると判断しました:「yes」ではなく「yess」。

0
Chiadi

簡単なことですが、この質問には多くの人が時間を浪費していると思います(私のように)。

パラメータの制限[〜#〜] nofile [〜#〜]を「/etc/security/limits.conf」または「/ etc/security/limits」のような別の代替ファイルに設定する必要があります。 d/limit-file.conf "したがって、

*    -    nofile  16384

問題は、この構成が現在のセッションに適用されないことです。変更を適用するには終了してログインする必要があるため、TESPARMを使用したテストは失敗します。

セッションを再起動したくない場合は、このコマンドを適用してこの問題を解決してください:

ulimit -n 16384

お役に立てれば!

0
Marcelo Guedes