4つのWebサーバー、2つのデータベースサーバー(読み取りと書き込み)、Redis、およびロードバランサーがあります。 PHP 7.0&Apache2&MySQL 5.7を使用していますが、同時にサーフィンをする3000人のユーザーで負荷テストを行うと、サーバーが1つずつクラッシュします。
Apacheサーバーは強力で、それぞれに32GBのRAMが搭載されており、残念ながらすべてのサーバーがRAMの最大使用量に達しています。
私たちはコードに多くの変更を加えました、しかしそれは私には正しく感じられません、私のホスティングプロバイダーはこれが彼らができる最善であると彼らが言うので私のサーバーをさらに構成するのを手伝うことができません、そしてここで私はあなたが必要ですヘルプ-何が欠けていますか? PHP/Apache/MySQLのどの構成を設定する必要がありますか?
このサイトは、たとえば300のクライアントに対して適切に機能することを明確にしますが、アクセスするクライアントが増えるにつれて、応答時間は要求ごとに50秒に達します。これは本当に奇妙なことです。
私は本当に絶望して混乱しています、私たちは何を見るべきですか?
どうもありがとう。
去年の夏は6000人もいました。ロードバランサーを備えた4台のサーバーがそのような要求を処理しないのはどうしてですか?
では、何が変わったのでしょうか?質問に答えるために、ほとんどの場合、バックエンドのコード処理で行き詰まり、時にはtcpソケットの枯渇などによって、そして他の場合には、Apacheとphpの間の単純なプールなどの制限です。
このプロセスに従ってください:
「非記述phpアプリケーションを取得するにはどうすればよいですかxベンチマーク?は非常に幅広い質問ですが、プロセスは一般的に、フロントエンドの静的サービングを要件に適合させてから、バックエンドコードをミックスに追加します。バックエンドコードのixの速度低下、またはそれを排除します。
数千人のユーザーにヒットし始めたら同時ユーザー..特定の制限(ファイルシステム速度、メモリ、CPU速度、通信遅延、非効率wordpress)に対してブラッシュアップします。コードと遅いデータベース呼び出し、およびCPUでの大量のコンテキスト切り替え)が複雑になり、すぐにサービスが急激に低下します。