LoginSignup
1
1

More than 5 years have passed since last update.

rshをバックグラウンドで多数実行

Posted at

症状

条件は以下.

$ cat /etc/redhat-release 
CentOS release 5.4 (Final)
$ uname -a
Linux mike.bw.nitech.ac.jp 2.6.18-164.2.1.el5 #1 SMP Wed Sep 30 12:52:46 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
test.sh
#!/bin/bash

for i in `seq 1 200`
do
  rsh cnode005 "echo $i" &
done

というシェルスクリプトを実行すると,169までは実行されるが,それ以降はpoll: protocol failure in circuit setupというエラーが出て実行されない(この169というのは再現性がある.つまり同時並列rshのリミットがその値なのだろう).直後にまたtest.shを実行すると,最初から同様のエラーが出るが,少し間をおいて実行するとまた,169までは実行される...

test2.sh
#!/bin/bash

for i in `seq 1 100`
do
  rsh cnode005 "echo $i"
done
for i in `seq 1 100`
do
  rsh cnode006 "echo $i"
done

のように,別のリモートホストに100回づつ接続するのであれば問題は生じない.
つまりこのリミットはリモートホスト側の制限ということになる.

現状

あるサイトを参考にしてrsh-nオプションを付けて,リモートホストで< /dev/nullを加えてみたが,解決されなかった.

test.sh
#!/bin/bash

for i in `seq 1 200`
do
  rsh cnode005 -n "echo $i < /dev/null" &
done

結論

分からん...

まぁ,なんにせよ,rshやsshには(それを利用するmpirunなどにも)ある時間内の同時接続数制限があると考えてプログラムを考えた方が良さそうだ...

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1