免責事項。まず、私はSUではありません。私は少し経験のある中級レベルのコンピューターユーザーです。私はいくつかの基本的なコードを書くことができ、20年以上コンピューターを使用しています。 MSDOS、何年にもわたってWindowsに、私はOS Xを使用しています。私は数週間、高低を検索してきたので、助けを求めるために大砲に来ることにしました。これで大丈夫だといいのですが。
まず、私はOS X 10.11.6
にいます。
私はCrashplanバックアップソフトウェアに問題があり、サポート担当者と協力して取り組んでいました。それはすべてエラーに帰着しました:
Java.io.FileNotFoundException (Too many open files in system)
読んだところ、システムで許可されている開いているファイルの数を増やす必要があることがわかりました。 /Library/LaunchDaemons
にあるファイルの値を作成および変更しました。
limit.maxfiles.plist
とlimit.maxproc.plist
の2つのファイルを作成しました
limit.maxfiles.plist
内に配置しました:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>54000</string>
<string>54000</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
limit.maxproc.plist
内に配置しました:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxproc</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxproc</string>
<string>4096</string>
<string>4096</string>
</array>
<key>RunAtLoad</key>
<true />
<key>ServiceIPC</key>
<false />
</dict>
</plist>
再起動し、ターミナルでlaunchctl limit maxfiles
を実行してこれが有効になっていることを確認しました。これは、それが有効であることを示しました。
クラッシュプランを再開しましたが、同じエラーが発生しました。私はクラッシュプランの人々に確認しました、そして彼らは基本的に難しいと言いました、それは問題です、それを直してください(それは私が思うに十分に公平です)。
そのため、900000000に達するまで、開くことができるファイルの数を増やし続けました。はい、合計9億個のファイルを開くことができます。私の総ドライブ数よりも多い。エラーは引き続き発生します。 launchctl limit maxfiles
で確認すると、有効であることがわかります。
だから、それは私を困惑させたままにしました。次に、周りを見回して、ulimit -S -n 900000
のようなコマンドを実行できることがわかりました。これにより、システムの他の部分で再生できるファイルが増えます。それがどのように機能するかはわかりませんが、ulimit -a
を確認したところ、有効でした。ただし、Crashplanでも同じ問題が発生します。
だから今はどうしたらいいのかわからないので、OSを知っている人に聞いてみました。誰かが私がこれを解決するために何を試みることができるかについていくつかのガイダンスを提供できますか?
本当にありがとう。
多分これは実際にあなたのための質問に答えます。以下をターミナルウィンドウに貼り付けます。
while true; do
Sudo lsof |
awk '{ files[$1]++ } END { for (key in files) { print key, files[key] } }' |
sort -n -k 2 | tail -10
sleep 60;
done
それが何をしようとしているのか:
すぐに犯人を見るか、やがてリストの最後に向かって動き始めます。