3

多くのものを実行するサーバーがいくつかあります。それらはすでに頻繁に負荷がかかりすぎており、クラッシュする傾向があります。

別の Ruby プログラムのラッパーである Ruby プログラムがあります。ラッパーは、別のサービスを呼び出すメインの Ruby スクリプトを実行するスレッドを生成します。別のサービスは、応答を返すのに 10 ~ 20 秒かかる場合があるため、アクティブに処理されません。引数ごとにこれを行うため、最悪の場合、一度に 60 個ずつ行います。

結局のところ、スレッドは IO で待機していたので、大きな問題になるとは思いませんでしたが、他の Ruby スクリプトを実行する 60 のスレッドを作成すると、多くの場合、タイムアウトしたり、サーバーを停止したりして、負担がかかるようです。そこにオーバーヘッドがあると思いますか?Linux が各 bash および Ruby インスタンスに対して内部的に行う必要があることを考慮していなかったのでしょうか?

内部の多くはまだ私にとって魔法のようであるため、私は自分自身を Linux の初心者だと考えています。誰かが私のアプローチがばかげている理由を説明できますか?10 スレッドに制限するか、スレッドを作成するループに 2 番目の遅延を入れたほうがよいでしょうか? Ruby で外部コマンドを実行するための bash 環境を作成する際のオーバーヘッドはどれくらいですか? そのオーバーヘッドを減らすために、いくつかのコマンドを連続して使用してコマンドを作成したほうがよいでしょうか?

前もって感謝します

4

0 に答える 0