検索
ホームページバックエンド開発PHPチュートリアル同時アクセスが多いように Web サイトを最適化するにはどうすればよいですか?

たとえば、ダブル 11 で突然大渋滞が発生しました

返信内容:

高い同時アクセス、バックグラウンド アーキテクチャが鍵となります。

同時アクセスが多い問題を解決または改善するには、いくつかのアイデアがあります:
1. Squid または Varnish をキャッシュ プロキシとして使用し、頻繁にアクセスされる画像やその他の静的コンテンツをキャッシュして、アクセスを向上させます。速度;
2. CDN コンテンツ配信ネットワークを使用して、メイン サーバーの負荷を軽減します (CDN 関連のコンテンツを添付します。CDN は、ネットワーク全体にノード サーバーを配置することによって形成される、既存のインターネットに基づくインテリジェントな仮想ネットワークの層です)。システムは、ネットワークトラフィック、各ノードの接続と負荷ステータス、ユーザーまでの距離、応答時間などの包括的な情報に基づいて、ユーザーのリクエストをユーザーに最も近いユーザーにリアルタイムでリダイレクトできます。
3. 使用します。 LVS サーバーの負荷分散、LVS サーバー Keepalived と組み合わせて高可用性を実現
4. LVS は、Nginx で改良された Taobao の Tnginx など、Nginx との負荷分散にも使用できます。
5. 高度なビューの作成など、DNS サーバーでの作業も可能です。これにより、さまざまなネットワーク セグメントからの Web サーバーへのアクセス速度の問題を解決できます。
6.データベース IO など、まだ IO にあります。ストレージは、データが失われないようにする必要がある一方で、RAID や LVM などのパフォーマンスを保証する必要があります。ストレージは、一連のストレージ (GFS、OCFS など) 間のデータ同期も考慮する必要があります。これを達成するには)、データのバックアップなど; データベースがある場合は、クエリ キャッシュなどの使用を検討してください。私もこれについて勉強中ですが、拡張すべきことがたくさんあります。
7. プログラムも最適化できます。たとえば、Java Web プログラムで Hibernate フレームワークを使用している場合、クエリはキャッシュされます。
8. ハードウェア層: 帯域幅の増加、RPM パフォーマンスの高いハード ドライブの購入など。 🎜>
最後に、@ Yang Yi が述べたように、
淘宝網は一夜にして大量の同時実行を達成できるわけではなく、段階的に達成されます。淘宝網がいつ設立され、現在までどのくらいの期間発展してきたかを考えてみてください。 。ダブルイレブンを生き残るためには、この点でのアリババの躍進を賞賛する必要があります。
参照: コンテンツ配信ネットワーク_百度百科
この種の問題は、一言で明確に説明することはできません。結局のところ、実際のシナリオはビジネスごとに異なりますしかし、基本的な考え方はほぼ同じであり、ほぼすべてが段階的に拡張および進化しています
CDN は動的であり、静的分離キャッシュ負荷分散と高可用性...ほぼすべて これらなしでは生きていけません @文国兵の答えを補足するために、この偉大なマスターはサーバーアーキテクチャレベルから比較的完全な答えを与えてくれました。
特定のサーバーレベルでの高い同時実行処理について話しましょう。
1. キャッシュ メカニズムには、ページ キャッシュ (Squid)、データ キャッシュ (memcache)、クエリ キャッシュ、コンパイル キャッシュなど、さまざまな種類があります (PHP はコンパイル時にコンパイル キャッシュを持つスクリプト言語です)。
2. データベース IO が最大の問題であるため、最初にデータをメモリに書き込み、次に定期的にハードディスクに書き込むという NOSQL ソリューションがあります。
3. プログラムの最適化、実行効率の向上、使用。より良いアルゴリズムなど。 (階層化を使用するのは、プログラムごとに得意なことが異なるためです。たとえば、中間層には JAVA が適しており、最下層には C++ が適しており、中間層には実行効率を高めることができる今人気の Node.js があります。マルチスレッド、およびいくつかのセキュリティ問題)
4. キュー システム。一部のデータは、受信後すぐに処理する必要はありません。キュー (先入れ先出し) を作成し、処理を遅らせます。
答えが間違っていたら、まだ勉強不足なのでご容赦ください。 質問が大きすぎます。Double 11 のようなトラフィックに遭遇する Web サイトはほとんどありません。

これについて一般的に言えば、ボトルネックを見つけて最適化し、新しいボトルネックを見つけて最適化し続けることです。このサイクルが繰り返されます。タオバオでもこうやってやってくる
ボトルネックはどこですか?

ステートレスというのは簡単に言うと、マシン上に各種キャッシュを追加するだけでOKです。ステータスのスケールアップやスケールアウトに関しては、一貫性やダウングレード(受信コメントの確認の削除など)など、特定の犠牲を適切に払う必要があります。
1 すでにウェブサイトをお持ちのようですが、どの言語で開発されていますか?どのような環境に導入されますか?サーバーは何台ありますか?さまざまな構成とは何ですか?
2 パフォーマンスの問題が発生したようです。パフォーマンスは何ですか?ブラウザが固まってしまった?クラッシュしますか?
3 「例えばダブル11で突然大渋滞が発生する」なんてことはあり得ません。ダブル11イベントを何年もやってるのに、毎年撲殺されていませんか?この問題を解決する唯一の方法は、ダブル11の価格を上げることです。

テクノロジーは万能だと言いますが、毎年予想を超える莫大なコストとトラフィックに誰もが不意を突かれています。独自の Web サイトを最適化するときは、まずこの外部要因を回避する必要があります。そうすれば、技術的な問題は問題になりません。 ME: js、css、img にクラウド ストレージを使用し、Web プログラムのキャッシュを最適化し、デザイン的には優れているが実際の使用にはあまり興味のない Web サイト上の機能を削減し、ソリッド ステート ドライブに置き換えて、より優れたハードウェアをインストールします。 ダブル11を経験したばかりの者として、一言付け加えさせていただきます。
実際、これらはウェブサイトのテクノロジーであり、上でより明確に説明しています。
ダブル 11 の前に複数回のオンライン ストレス テスト訓練が行われる予定であり、各システムのパフォーマンスが達成できる QPS については明確に理解していることを付け加えておきたいと思います。
その後、これまでの経験に基づいて、サーバー容量を通常のピーク値の 10 倍近くに拡張します。
さまざまなダウングレード プランもあります。重要な瞬間には、ボタン 1 つで一連のダウングレード機能を実行できます。
ダブル 11 の日には、各システムの水位 (つまり、現在の QPS/限界 QPS) を確認できる大型スクリーンがあります。
それでも、12 時になるとすぐに、瞬間的な膨大な量が常に存在し、その場でいくつかのシステムが麻痺しました... 中国語の場合は、この本を読むことができます ---大規模 Web サイトの技術アーキテクチャ_基本原則と事例分析_Li Zhihui ちょっと話題が大きくて

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDをどのくらいの頻度で再生する必要がありますか?セッションIDをどのくらいの頻度で再生する必要がありますか?Apr 23, 2025 am 12:03 AM

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPでセッションCookieパラメーターをどのように設定しますか?PHPでセッションCookieパラメーターをどのように設定しますか?Apr 22, 2025 pm 05:33 PM

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は何ですか?PHPでセッションを使用する主な目的は何ですか?Apr 22, 2025 pm 05:25 PM

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションをどのように共有できますか?サブドメイン間でセッションをどのように共有できますか?Apr 22, 2025 pm 05:21 PM

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!