これについては非常に具体的にしようと思います。簡単ではないので、フォローしてみてください。
NGINX上のPHPで実行されるスクリプトがあります-PHP-fpmFastCGI。このスクリプトは、アクセスしようとしているユーザーから情報を取得し、リアルタイムでいくつかのアルゴリズムを実行します。バックグラウンドで実行されているスケジュールされたプロセスにすることはできません。場合によっては、ページの読み込みに5〜12秒かかることもありますが、問題ありません。通常、ユーザーからデータを収集し、サードパーティのサーバーにいくつかの送信リクエストを送信し、データを収集して分析し、ユーザーに応答を返します。
問題は、このスクリプトを実行しているユーザーが多く、サーバーが非常にビジー状態になることです。これらのユーザーはすべてサーバー上でアクティブな接続であり、応答を待っているためです。1台のロードバランサーで2台のサーバーを実行していますが、それだけでは不十分です。サーバーには、一度に1,500を超えるアクティブな接続がある場合があります。これらのサーバーがその時間枠でどのように応答するかを想像できます。
私は解決策を探しています。LBにサーバーをどんどん追加することはできますが、それが唯一の解決策であるというのはばかげているように聞こえます。私たちはそのスクリプトを実行し、最大限に最適化しました。私はあなたに約束することができます-ライブトラフィックで私たちに応答するのに時間がかかるサードパーティのサーバーに依存しているため、そのスクリプトを長時間実行するための実際の解決策はありません。
このスクリプトをそのままにしておくために考えられる解決策はありますか?しかし、どういうわけか、これらのアクティブな接続がサーバー全体の機能に与える影響を減らすことができますか?時々、彼らは単に応答するのをやめます。
読んでいただきありがとうございます!