タグ付けされた質問 「unicorn」

5
上流のUNIXソケットへのnginxスループットを増やす必要があります— Linuxカーネルのチューニング?
私は、次のように、上流のUnixソケットへのプロキシとして機能するnginxサーバーを実行しています: upstream app_server { server unix:/tmp/app.sock fail_timeout=0; } server { listen ###.###.###.###; server_name whatever.server; root /web/root; try_files $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } 一部のアプリサーバープロセスは、リクエスト/tmp/app.sockが利用可能になったときに順番にプルします。ここで使用している特定のアプリサーバーはUnicornですが、この質問に関係があるとは思いません。 問題は、ある程度の負荷を超えると、nginxは十分な速度でソケットを介してリクエストを取得できないように見えることです。設定したアプリサーバープロセスの数は関係ありません。 私はnginxエラーログにこれらのメッセージの洪水を受け取っています: connect() to unix:/tmp/app.sock failed (11: Resource temporarily unavailable) while connecting …

2
CPUあたりのユニコーンプロセスの最適数
Unicornの下でRuby on Rails Webアプリを実行しています。私たちのアプリは厳密にはCPUバウンドではありません(デュアルXeon E5645システムw / 12コアがあり、ピーク負荷平均値は約6です)。最初は40人のUnicornワーカーで開始しましたが、アプリケーションのメモリフットプリントは時間とともに増加しました。そのため、ワーカープロセスの数を減らす必要があります。標準(CPUコアの数+ 1)の式はUnicornにも適用されると思いましたが、同僚はCPUごとにさらに多くのUnicornインスタンスを予約する必要があると私に納得させ、このリンクを提供しました。しかし、アイドル状態のUnicornプロセスにこれほど多くのメモリを費やす必要があるのはなぜか、はっきりとはわかりません。 私の質問は、CPUコアごとに複数のUnicornインスタンスを持つ理由は何ですか?これは、ユニコーンの建築上の特殊性によるものですか?忙しいUnicornプロセスは新しい接続を受け入れられないことは承知しています(UNIXドメインソケットを使用して、UnicornインスタンスBTWと通信しています)が、これに対処するためにバックログが正確に導入されたと考えました。CPUルールごとにこの2〜8個のUnicornインスタンスを克服することは可能ですか?

2
upstartでさまざまな停止/再起動信号を定義する方法
すべてのシステムをupstartを使用してさまざまなアプリケーションプロセスを管理するように変換し始めています。私が常に欠けているのは、プロセスstopまたはrestartイベントに別のシグナルを送信する機能です。 たとえば、WebプロセスをUnicornで実行します。Unicornには、優れた信号処理APIがあります。プロセスを正常にリロードしたい場合は、マスターpidにUSR2シグナルを送信します。それらを正常にシャットダウンするには、QUITコマンドを送信します。TERM(upstartのデフォルトの停止信号)は即時シャットダウンを構成します。 別の例はResqueの使用です。ワーカーを正常にシャットダウンするには、QUITシグナルを送信します。TERMシグナルは、ワーカーの子がフォークされているかどうかに関係なく、即座にシャットダウンします。 upstartはカスタム信号をサポートしていますか?どこにも見当たらないようで、「間違ったツール」を使っているのではないかと心配です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.