ソケットチャンネルを開くときはいつでも。クライアントが受け入れるならば、1つのファイルディスクリプタが内部で作成されるので、Linuxで最大1024のクライアントを作成できます。
しかし、Linuxでファイル記述子の制限を増やさずにクライアントを増やしたいと思います。 (ulimit -n 20000) Javaでソケットを増やすにはどうすればいいですか?ファイルの制限を大きくしないで20000クライアントをJavaで開くにはどうすればよいですか?
答えて
セッションが1024個のファイル記述子に制限されている場合は、単一のJVMからセッションを使用することはできません。
しかし、ulimitはプロセスごとの制限であるため、より多くのJVMを開始することで回避できます(つまり、2048接続にはそれぞれ1024を使用する2つのJVMが開始されます)。
UDPを使用している場合は、1つのローカルソケットで自分自身を多重化できますか?受信パケットは、送信元アドレスとポートで区切ることができます。
TCPの場合は、運が悪いので、各ソケットを閉じた後にTIME_WAITになると状態が悪化します。
膨大な数の接続に対処しようとしている場合、親プロセスにデータを受け入れて転送する以外に、軽量のdataserverプロセスを実装することがスケーラブルな方法です。
このように、各dataserverが飽和状態になると、新しいインスタンスを生成して、自分自身に別の1024の接続を与えることができます。必要に応じて別々のマシンにそれらを存在させることさえできます。
申し訳ありませんが、私はあなたを正しく理解できませんでした。もう一度私に説明してください。 – Deepak
なぜulimitを増やせませんか?人為的な限界のようです。 Javaコード(afaik)からは、システムにアクセスしてulimitをリセットする方法はありません。プロセスを開始する前に設定する必要があります。起動スクリプトなどです。
のJBoss起動スクリプト
は、彼らがJBossを起動する前にレン
がリミットRLIMIT_NOFILEが作動するシステムによって強制されて...「のulimit -n $ MAX_FD」をpeformし、プロセスのfd最高制限することができます作成します。開いているファイル、パイプ、ソケットごとに1つのfdが使用されます。
ハードリミットとソフトリミットがあります。 (シェルやjvmのような)どのプロセスもソフトの値を変更することが許されますが、特権を持つプロセス(rootユーザーが実行するシェルのような)だけがハード値を変更することができます。
a)マシンの制限を変更できない場合は、そのマシンを見つけてください。
b)なんらかの理由でulimitを入力することができない場合は、JNA:man setrlimit(2)を使用して基本システムコールを呼び出すことができます。 (.exec()それがコマンドに組み込まれているとして行うことはありません)
も参照してくださいWorking With Ulimit
- 1. WANを介して大きなファイルを開くにはどうすればよいですか?
- 2. wsgiで大きなファイルのアップロードを制限するにはどうすればよいですか?
- 3. アプリケーションでファイルを開くにはどうすればよいですか?
- 4. IDLEで.rarファイルを開くにはどうすればよいですか?
- 5. .appファイルをobjective-cで開くにはどうすればよいですか?
- 6. ファイルをXMLとして開くにはどうすればよいですか?
- 7. iOS - SDK - UIWebViewで大きなキーノートファイルを開くにはどうすればよいですか?
- 8. URLを新しいタブではなく既存のタブで開くようにブラウザに強制するにはどうすればよいですか?
- 9. 最大値ではなく0からカウンタを開始するにはどうすればよいですか?
- 10. vimで大きな/巨大なファイルを開くことができず、 "新しいファイル"モードで開きます
- 11. ボタンを大きくするにはどうすればいいですか
- 12. 新しいアクティビティを作成するのではなく、すでに開いているアクティビティを開くにはどうすればよいですか?
- 13. Androidエミュレータ/シミュレータではなく実際のデバイスにAPKをインストールしないように制限するにはどうすればよいですか?
- 14. OutlookにないハードドライブからOutlookの.msgファイルを開くにはどうすればよいですか?
- 15. ターゲットコントローラでデータを失うことなくモーダルビューを開くにはどうすればよいですか?
- 16. ロータスビューをいくつかのフォルダの内容に制限するにはどうすればいいですか?
- 17. タブでpopup.htmlのリンクを開くにはどうすればよいですか?
- 18. サブフォームのデータシートモードでクエリを開くにはどうすればよいですか?
- 19. リンクツールバーボタンのモーダルダイアログボックスをプログラムで開くにはどうすればよいですか?
- 20. Visual Studioではなく、Webブラウザでリンクを開くにはどうすればよいですか?
- 21. jQueryイベントがどのくらい遠くまで届くかを制限するにはどうすればよいですか?
- 22. 大きなCSVファイルを扱うにはどうすればいいですか?
- 23. 別のポップアップウィンドウでdivを開くにはどうすればいいですか(ライトボックスモーダルウィンドウではなく)
- 24. Javaを使用して大きなXMLファイルを解析するにはどうすればよいですか?
- 25. ファイルを正しく開くためにはどうすればよいですか?
- 26. Socket.io:2つのウィンドウを開く認証済みクライアントを扱うにはどうすればよいですか?
- 27. 新しいタブでPDFファイルを開くにはどうすればよいですか?
- 28. Android Targetsdk23カスタムボタンでメニューを開くにはどうすればよいですか?
- 29. Xcode 4でメモリブラウザを開くにはどうすればよいですか?
- 30. Visual Studio 2010で.rptprojを開くにはどうすればよいですか?
これらのファイルが必要ですか?彼らには何が含まれていますか? –
@Adam:私は彼が "ファイル記述子"を意味していると思います。物理的なファイルは含まれていませんが、オープンソケットはfdを使います。 – unwind
@unwind:ああ、そうです。ありがとう! :) –