これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド starmanp です。
プログラム:
NAME
スターマン - スターマンランチャー
SYNOPSIS
スターマン --listen :5001 --listen /tmp/starman.sock
スターマン --ワーカー 32 --ポート 8080
OPTIONS
-l、-聞く
--listen HOST:PORT --listen :PORT --listen UNIX_SOCKET
--listen ホスト:ポート:SSL
リクエストを待機するためにバインドする TCP アドレス、ポート、および UNIX ドメイン ソケットを指定します。
必要に応じて何度でも繰り返し、TCP ドメイン ソケットと UNIX ドメイン ソケットを混在させることができます。
TCP ソケットの場合、ポートの後に「:ssl」を追加して、その接続を指定できます。
そのポートでは SSL を使用する必要があります。 SSL サポートは実験的なものであり、まだサポートされていないことに注意してください。
広くテストされています。
デフォルトは任意の IP アドレスとポート 5000 です。
- ホスト
--ホスト 127.0.0.1
バインドするアドレスを指定します。
このオプションは、plackup との互換性のためのものであり、使用することをお勧めします。
代わりに「--聞いてください」。
- 港
--ポート 8080
バインドするポートを指定します。
このオプションは、plackup との互換性のためのものであり、使用することをお勧めします。
代わりに「--聞いてください」。
-S、--ソケット
-S /tmp/starman.sock
バインドする UNIX ドメイン ソケットへのパスを指定します。
このオプションは、plackup との互換性のためのものであり、使用することをお勧めします。
代わりに「--聞いてください」。
- 労働者
ワーカープールの数を指定します。 デフォルトは 5 です。
Starman はデフォルトで、このワーカーに基づいて他の予備サーバー構成をセットアップします。
値があることを確認します 常に の 「N」個のワーカー プロセスが実行中です。 たとえ
アイドル状態のワーカーは存在せず、Starman は予備のプロセスを生成しません。
本番環境でメモリ使用量などを微調整してやりたいこと
環境。
- やり残し
リスナーソケットのバックログ数(リッスンキューサイズ)を指定します。 デフォルトは
1024.
運用システムでは、非常に低い値を設定すると、フロントエンド プロキシでのフェイルオーバーが可能になる可能性があります。
(nginx のように) 複数の Starman クラスターがある場合、より迅速に実行されます。
単純なベンチマークを実行していて接続エラーが発生する場合は、この値を増やすと、
パラメータを使用すると、それらを回避できます。 増やすことも検討すべきです
「net.core.somaxconn」。 以下の場合、これは実際の実稼働システムには推奨されないことに注意してください。
フェイルオーバーする別のクラスターがある場合 (上記を参照)。
--最大リクエスト数
1000 つのワーカー プロセスごとに処理するリクエストの数。 デフォルトは XNUMX です。
--preload-app
このオプションを使用すると、Starman は指定された PSGI アプリケーションをマスター親にプリロードできます。
子を事前フォークする前のプロセス。 これにより、コピーオンライトによるメモリの節約が可能になります。
メモリ管理。 設定されていない場合 (デフォルト)、フォークされた子はアプリケーションを次の場所にロードします。
初期化フック。
このオプションを有効にすると、ソケットや
データベース接続はロード時にマスタープロセスによって開かれ、マスタープロセスによって共有されます。
複数の子供たち。
Starman 0.2000 以降、このオプションはデフォルトで false になっているため、明示的に設定する必要があります。
このオプションは、アプリケーションをマスター プロセスにプリロードします。
あるいは、-M コマンドライン オプション (plackup の共通オプション) を使用してプリロードすることもできます。
モジュール ではなく自体。
スターマン -MCatalyst -MDBIx::Class myapp.psgi
CoW でメモリを節約するためにマスター プロセスにモジュールをロードしますが、
「myapp.psgi」の実際のロードは子ごとに行われ、リソース管理が可能になります。
データベース接続などの安全性が向上します。
このオプションを有効にすると、「HUP」シグナルがマスタープロセスに送信されます。 意志 拾う
加えたコード変更。 詳細は「シグナル」を参照してください。
--キープアライブを無効にする
キープアライブ永続接続を無効にします。 を実行すると便利な回避策です。
壊れたフロントエンド プロキシの背後にあるスターマンが、接続をプールしようとします。
バックエンド ワーカーの数 (つまり、Apache mpm_prefork + mod_proxy)。
--キープアライブタイムアウト
Starman が終了する前に後続のリクエストを待機する秒数。
キープアライブ永続接続が有効な場合の接続。 これを高く設定すると、
この値を指定すると、負荷の高いサーバーでパフォーマンスの問題が発生する可能性があります。 高いほど
タイムアウトが発生すると、より多くのバックエンド ワーカーが接続を待機することになります。
暇なクライアント。
デフォルトは1です。
--読み取りタイムアウト
Starman が新しい接続でリクエストを待機するまでの秒数。
それを閉じます。 これを高い値に設定すると、重大なパフォーマンスの問題が発生する可能性があります。
ロードされたサーバー。 タイムアウトが長いほど、より多くのバックエンド ワーカーが占有され続けます。
アイドル状態のクライアントとの接続を待機しています。 プロキシ/ロードの場合、これが必要になる可能性があります
バランサーは、クライアントを待機している間、開いている接続のプールを維持することを好みます (例:
アマゾンELB)。
デフォルトは5です。
- ユーザー
小さい番号 (<1024) のポートでリッスンするには、次のようにサーバーを起動する必要があります。
根。 「--user」オプションを使用して、サーバーが処理するユーザーIDまたはユーザー名を指定します。
ポートにバインドした後、 に切り替える必要があります。
デフォルトは現在のユーザーIDです。
- グループ
バインド後にサーバーが切り替えるグループ ID またはグループ名を指定します。
港。 このオプションは通常、「--user」とともに使用されます。
デフォルトは現在のグループ ID です。
--pid
pidファイルのパスを指定します。 「plackup」で説明されている「-D|--daemonize」オプションとともに使用します。
-h」。
- エラーログ
エラーログを書き込むファイルのパス名を指定します。 これにより、
「--daemonize」を使用してもエラーにアクセスできます。
--ssl-証明書
SSL証明書ファイルへのパスを指定します。
--sslキー
SSLキーファイルへのパスを指定します。
--enable-ssl
SSL を有効にする を TCPソケット。 これは実験的な機能です。
--disable-proctitle
proctitleを「スターマン(マスター)」と「スターマン(ワーカー)」に設定する動作を無効にします。
それぞれマスターとワーカーに。
Starman は、共通バックエンドである Plack::Runner に与えられた他のオプションを通過します。
plackup は使用するため、「--access-log」や「plackup -h」などのほとんどのオプションは「plackup -h」で説明されています。
「--daemonize」はスターマンでも正常に機能します。
環境変数「STARMAN_DEBUG」を 1 に設定すると、Starman サーバーが実行されます。
デバッグモード。
信号
HUP 「HUP」シグナルをマスタープロセスに送信すると、すべてのワーカーが正常に再起動されます。
(つまり、現在実行中のリクエストはリクエストが完了するとシャットダウンされます)、
デフォルトでは、ワーカーは、
アプリケーション。
ただし、「--preload-app」オプションを有効にした場合、コードは
起動プロセスでは、行ったコードの変更は反映されません。 プリロードしたい場合
アプリ コードの変更をリロードしてグレースフル リスタートを実行することをお勧めします。
スーパーデーモンが「HUP」を受信したときに「QUIT」シグナルを送信するように構成された Server::Starter を使用します。
すなわち:
start_server --interval 5 --port 8080 --signal-on-hup=QUIT -- \
starman --preload-app myapp.psgi
次に、HUP シグナルを「start_server」プロセスに送信して、正常にリロードします。
スターマンクラスター(マスターとワーカー)。
Server::Starter 0.12 以降では、「--signal-on-term」も設定できるはずです
最初に Starman を安全にシャットダウンしてから「start_server」を停止できるように、QUIT します。
デーモンプロセスも同様です。
てぃん、とぅ
「TTIN」シグナルをマスタープロセスに送信すると、動的に数が増加します。
「TTOU」信号により減少します。
INT、TERM
「INT」または「TERM」シグナルをマスタープロセスに送信すると、すべてのワーカーが強制終了されます。
すぐにサーバーをシャットダウンしてください。
QUITを
「QUIT」シグナルをマスタープロセスに送信すると、ワーカーが正常にシャットダウンされます。
(つまり、リクエストが完了すると、現在実行中のリクエストがシャットダウンされます)。
リロード 、 お申込み
アプリケーションをリロードするにはシグナル (上記を参照) を使用することをお勧めします。
plackup から「-r」または「-R」(リロードフラグ)を使用することはお勧めできません。 これらのオプションにより、
個別のディレクトリ監視プロセスが必要になるため、これらを組み合わせたい場合は作業が困難になります。
Server::Starter などの他のプロセス デーモン ツールを使用します。
違い WITH プラクアップ
「starman」実行可能ファイルは、基本的に「Starman」サーバーで「plackup」を使用するのと同等です。
ハンドラー、つまり「plackup -s Starman」。ただし、「starman」の遅延によりアプリケーションがロードされるのが異なります。
デフォルトでは遅延ローダー。これは「--preload-app」で無効にできます。
また、「starman」コマンドは、環境 (「-E」) を次の値に自動的に設定します。
展開.
「plackup」にこだわる理由がない限り、「starman」を使用することをお勧めします。
互換性。
onworks.net サービスを使用してオンラインで starmanp を使用する