このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

複数のスクリプト このメッセージに返信する
日時: 2011/07/31 00:13
名前: エリーナ
URL:
複数のスクリプトをcronで1分毎で回すとき
プロセスに大量に表示され、重要なプロセスまで見えなくなってしまいます。

script01.sh
script02.sh
script03.sh
script04.sh
script05.sh
script06.sh
script07.sh
script08.sh
script09.sh
script10.sh

があったとします。
これをすべてcronに登録します。

しばらくしてからtopコマンドを実行します。
そうするとこれらのスクリプトが起動され他のプロセスが見えなくなります。

これらのスクリプトをひとつ(script01-10.sh)にまとめ、起動させたいのですが、
何かいい案はないでしょうか?
scsript01〜10は別々のプログラムです。

宜しくお願いします。
記事編集 編集

Page: | 1 | 2 |

Re: 複数のスクリプト このメッセージに返信する
日時: 2011/07/31 02:33
名前: エリーナ
URL:
>個々に違うシェル(プログラム)を同時に
>起動する事で、TOPコマンドで表示しなくなると思いますので・・・
よくわからないのですが、実行すると処理が正常に終了し、
表示されないということでしょうか?

>
>script01.sh → script02.sh → script03.sh ・・・と
>順番に処理するスクリプトを作成するのは駄目なんでしょうか?
>
それぞれがサーバーを監視するプログラムになっているので、
順番ずつ起動して処理していくのは、不適合かと考えています。

>また、1個ずつ処理した場合のTOPコマンドによる
>プロセスの表示は問題無く表示しますか?
>
>
すいません。
質問が悪かったようなので、topコマンドを打ったときの
サンプルを掲載します。
以下のように他のプログラムが隠れてしまいます。

top - 02:09:24 up 5:44, 4 users, load average: 11.16, 36.57, 14.40
Tasks: 385 total, 100 running, 211 sleeping, 0 stopped, 5 zombie
Cpu(s): 6.6%us, 92.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.8%si, 0.0%st
Mem: 2075068k total, 742928k used, 1332140k free, 156512k buffers
Swap: 2096472k total, 0k used, 2096472k free, 436948k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4163 root 15 0 3008 1740 796 R 1.4 0.1 2:55.53 top
16904 root 18 0 2500 1064 900 S 1.0 0.1 0:00.05 script01
16982 root 18 0 2500 911 820 S 0.8 0.0 0:00.04 script02
16983 root 18 0 2500 911 820 S 0.8 0.0 0:00.04 script03
9619 root 18 0 2632 1148 856 S 0.6 0.1 0:00.34 script02
16464 root 18 0 6908 1516 811 S 0.6 0.1 0:00.03 crond
16637 root 18 0 6908 1516 811 S 0.6 0.1 0:00.03 crond
16905 root 18 0 6908 1516 811 S 0.6 0.1 0:00.03 crond
16906 root 18 0 6908 1516 811 S 0.6 0.1 0:00.03 crond
17000 root 20 0 1468 452 311 R 0.6 0.0 0:00.03 script04
17004 root 20 0 2504 511 411 R 0.6 0.0 0:00.03 script05
16611 root 18 0 2500 911 820 S 0.4 0.0 0:00.05 script06
518 root 10 -5 0 0 0 S 0.2 0.0 0:46.14 kjournald
9594 root 19 0 2500 1052 844 R 0.2 0.1 0:00.33 script05
9648 root 18 0 2500 1132 924 S 0.2 0.1 0:00.30 script07
9686 root 18 0 2500 1056 844 S 0.2 0.1 0:00.31 script08
11605 root 18 0 2500 1040 844 S 0.2 0.1 0:00.18 script05
11666 root 18 0 2500 1036 844 S 0.2 0.0 0:00.19 script09
11773 root 18 0 2500 1120 920 S 0.2 0.1 0:00.19 script10
13515 root 18 0 2500 1028 844 S 0.2 0.0 0:00.12 script05
13630 root 18 0 2500 1028 844 R 0.2 0.0 0:00.11 script04
13634 root 18 0 2500 1020 844 S 0.2 0.0 0:00.12 script10
13766 root 18 0 2500 1020 844 R 0.2 0.0 0:00.11 script11
13770 root 19 0 2500 1024 844 R 0.2 0.0 0:00.11 script08
14989 root 18 0 2500 1020 844 S 0.2 0.0 0:00.08 script12
1412 root 18 0 2500 138 924 S 0.2 0.1 0:00.09 script07
15159 root 18 0 2500 134 924 S 0.2 0.1 0:00.08 script03
15160 root 18 0 2500 1020 844 S 0.2 0.0 0:00.08 script10
16527 root 18 0 0 0 0 Z 0.2 0.0 0:00.01 script14 <defunct>
16878 root 20 0 2500 524 332 S 0.2 0.0 0:00.01 script13
16976 root 18 0 2500 512 332 S 0.2 0.0 0:00.01 script10
16991 root 18 0 2500 548 332 S 0.2 0.0 0:00.01 script01
16996 root 18 0 2500 540 328 S 0.2 0.0 0:00.01 script12

CPU負荷率を避けるために重複起動しないようにしていますが、
大量のプロセスが生成され、負荷率が上がってしまいます。
記事編集 編集
Re: 複数のスクリプト このメッセージに返信する
日時: 2011/07/31 04:39
名前: stranger
URL: http://ja.528p.com/
1つ1つのスクリプトは1分以内に終わるものですか
終わらないようなものなら、毎分ごとに起動したらうまくないと思うけど?

lockファイルが存在したら起動しないようなスクリプトにするとか

複数のスクリプトを一つにまとめても
処理内容が減らなければCPU負荷は激減することはないのでは?
記事編集 編集
Re: 複数のスクリプト このメッセージに返信する
日時: 2011/07/31 10:41
名前: 新高校生
URL:
>CPU負荷率を避けるために重複起動しないようにしていますが、

>11605 root 18 0 2500 1040 844 S 0.2 0.1 0:00.18 script05 ←●ここと
>11666 root 18 0 2500 1036 844 S 0.2 0.0 0:00.19 script09
>11773 root 18 0 2500 1120 920 S 0.2 0.1 0:00.19 script10
>13515 root 18 0 2500 1028 844 S 0.2 0.0 0:00.12 script05 ←●こことか

僕は素人で間違ってるかもしれないけど、スクリプト名が同じでPIDが
違うものが走ってるということは"重複起動"しているということでは?
どんどんプロセスが生成されて・・・最後には・・・フリーズしそうな気がw

厳密に1分ごとに実行する必要がないならひとつにまとめて順次実行するとか
すれば重複を考えないで済むかも。(僕だったら根本的な部分から考え直します)

topコマンドで見辛いだけなら、ソートして表示させることもできます。
(スクリプト名をソートしたときに最後の方になるような名前にしといて
topコマンドで表示するときにスクリプト名(Command名)でソート表示とか)
記事編集 編集
Re: 複数のスクリプト このメッセージに返信する
日時: 2011/07/31 16:15
名前: エリーナ
URL:
このスクリプトでは、lockファイルを利用し、
重複起動しているか否かを確認しています。
なければ、処理を実行します。

それぞれ処理は10秒以内に終わるものです。

やはり難しいでしょうか。
記事編集 編集
Re: 複数のスクリプト このメッセージに返信する
日時: 2011/08/02 10:55
名前: 新高校生
URL:
スクリプトを改変して重複起動がどのくらい発生するのかログをとって実際に確認してみるとか。

あとload averageが高くないですか?
>top - 02:09:24 up 5:44, 4 users, load average: 11.16, 36.57, 14.40
いつもこんなに高いならどこかにボトルネックがあるのかも。

追加でが

>このスクリプトでは、lockファイルを利用し、
>重複起動しているか否かを確認しています。
>なければ、処理を実行します。

重複起動だと判定されたときにはスクリプトを終了していますでしょうか。
ひょっとしてlockが解除されるまで待たせてるとかでは?

topコマンドの結果で同じものがズラズラ出てるのはそのためかもと思いました。
記事編集 編集

Page: | 1 | 2 |

件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -