2016-08-05 22 views
2

CSVファイルで5000個の値を持つJMeterのスクリプトがSynchronization Timerで実行されると、エラー次View Results in Treeショーでのレスポンスデータ:のJMeterのUbuntu:java.net.SocketExceptionが:開いているファイルが多すぎます

java.net.SocketException: Too many open files

IまだGoogle上で満足のいく答えを見つけることができませんでした。

これを解決する方法はありますか?

+0

あなたはそのファイルを5000回開いていますか?それは悪いアプローチです。値を一度だけ読み込んで、Beanshellロジックを作成して、必要に応じてその値を使用することができます。 –

+0

いいえ、一度だけです。 CSVには5000の電子メール値が含まれています。 – Anonymous

答えて

2

プロセスごとに開いているファイルハンドルまたはファイルディスクリプタの数を増やします。

コマンドulimit -aを使用して、プロセスごとにいくつのオープンファイルハンドルが許可されているか調べることができます。

$ ulimit -a 
core file size  (blocks, -c) unlimited 
data seg size   (kbytes, -d) unlimited 
file size    (blocks, -f) unlimited 
open files     (-n) 1024 
pipe size   (512 bytes, -p) 10 
stack size   (kbytes, -s) 8192 
cpu time    (seconds, -t) unlimited 
max user processes   (-u) 2048 
virtual memory  (kbytes, -v) unlimited 

オープンファイル(-n)1024は、1プロセスあたり1024個のオープンファイルハンドルしか許可されていないことがわかります。 Javaプログラムがこの制限を超えると、エラーはjava.net.SocketException: Too many files openとなります。

I/O exception (java.net.SocketException)およびjava.net.SocketException: Too many open filesを参照してください。

+0

私はrootを使ってログインし、これらのコマンドを実行しました。しかし、私は他の普通のユーザーに切り替えると、開いているファイル番号が元の値であることがわかりました。すべてのユーザーの開いているファイルハンドルの数を設定できますか? – niaomingjian

関連する問題