
当社には、インターネット接続と電話回線を管理する小規模なネットワーク(営業時間中はおそらく 15 人のユーザー、約 30 台のデバイス)があります。
ネットワークの主な用途は、ユーザーがビジネス (顧客、売上、請求書など) を管理するために使用する、Web ベースの外部ホスト データベース インターフェイスにアクセスすることです。この Web ベースのデータベース インターフェイスは、過去 1 年半にわたって開発された PHP/MySQL アプリケーションです。主な (唯一の) プログラマーとして、私はホスティング ソリューションからソース コード、テクノロジの選択まで、このアプリケーションとネットワークに関するすべてにアクセスできます。
数か月前、データベース インターフェースを使用して行われたクリックの約 5% で、速度が大幅に低下していることに気付きました。つまり、ほとんどのクリックでは 1 ~ 2 秒でコンテンツが配信されますが、クリックの 1 つが読み込まれるまでに最大 1 分かかることがあります。
私が驚くのは
- ページのコンテンツとは関係ないようです。同じページを何度も読み込むと、95% の確率で動作しますが、1 回のクリックでは読み込みに 1000% から 2000% の時間がかかることがあります。異なるページを何度も読み込んでも同じ結果になります。
- ウェブベースのインターフェースはオフィス外からアクセスしても速度が低下しないつまり、ローカル ネットワークの背後で使用した場合にのみ速度が低下します。
- 他のウェブページは遅くなっていないようですが、遅くなったページを停止して再読み込みすると問題なく動作します。これは数秒間発生し、このしきい値の間に行われたすべてのクリックをブロックしますが、2秒後に行われたクリックはブロックされないと思います。
- このウェブサイトは、jquery と jquery-ui のほか、いくつかのライブラリ (jquery cookie master、xdate) を使用しています。これらのライブラリが当社のサーバーから読み込まれるか、jquery と ajax.googleapis から直接読み込まれると、速度低下が発生します。
こうした状況に直面して、私はネットワークの専門家に相談し、最終的にネットワーク機器を変更しました。現在は、Cisco ASA-5505 ファイアウォールとマネージド Cisco Catalyst スイッチを使用しています。
- 以前は、google.comへのpingがタイムアウトしたり、読み込みに最大13000ミリ秒かかることがありましたが、通常は20〜30ミリ秒です。
- また、ISPに相談したところ、800GB毎月のアップロード量は です。写真や重いファイルは管理していますが、800 GB は通常の使用量からは程遠いです。しばらくの間、ネットワーク アップロード トラフィックが多いと、ページがリソースをロードできない可能性があると考えていました。ISP の履歴を見ると、速度低下と大量のアップロードがほぼ同時に発生しているようです。どちらが先に発生したかはわかりませんが、どちらも同じ週に発生しているようです。
- 明らかに多数のパケット損失エラーが発生していました
- 速度低下がどのプロトコルに影響するかは、はっきりわかりません。ダウンロードの失敗を直接経験したことはありませんし、ダウンロードが失敗したというユーザーからの苦情もありませんが、NetBeans 経由で FTP にファイルをアップロードすると影響があります。ただし、ユーザーは
transmit
クライアントとファイルを転送し合うために使用しており、ファイルが正しくアップロードされない、またはクライアントが破損したファイルを受信したという苦情は受けていません。
残念ながら、苦情がなかったからといって、そのようなことが起こらなかったわけではありません。そのようなときは、ユーザーとのコミュニケーションがやや緊張します。ネットワークの遅さが原因だと思います(しゃれです)。
私たちが雇った専門家がネットワークに新しい部品を設置するために来たとき、彼らはいくつかの構成と監視を行いました。今では、ping は正常に戻り、パケット損失エラーははるかに少なくなり、インターネット上での通常のパケット損失のみであると考えられるようになりました。また、私たちが確認した限りでは (まだ数日しか経っていませんが)、膨大なアップロードは停止しています。
しかし、クリックの 5% はまだ読み込みに時間がかかります。
Firebug のネット タブでデバッグして、Web サイトのどの部分の読み込みが遅いかを確認してみました。サーバー自体は、ページの複雑さに応じて 200 ~ 800 ミリ秒で応答し、問題ないようです。ほとんどの画像は問題なく読み込まれ、ライブラリも同様ですが、速度低下が発生すると、1 つ以上の画像またはライブラリが読み込まれるまで永遠に待機します。常に同じライブラリやイメージとは限りません
私の考えでは、ページを表示するために画像やライブラリを読み込むときに、ネットワークの負荷によってリソースが目的地に正しく到達できなくなるのではないかと思います。
画像や js ライブラリなど、特定のリソースの読み込みを妨げている原因を特定するにはどうすればよいですか?
私はWiresharkやその他の高度な(私の観点からすると)ネットワークツールを使用するための技術的なスキルが不足していますが、必要なら学習するつもりです。そうは言っても、この時点での監視は無関係に思えます。遅いのは見たくないし、遅いのはわかっています。知りたいのはローカルネットワーク内の目的のコンピュータにリソースが到達できない原因。
答え1
したがって、実際にネットワークにアクセスして詳細に診断しない限り、ここでの回答は「方向性を示して」それが機能するかどうかを確認するものになる可能性が高いでしょう。
そうは言っても、私はこの種のことを扱うときは、一種のオッカムの剃刀のアプローチをとります。
あなたは次のように述べました:
「Web ベースのインターフェースは、オフィス外からアクセスしても速度低下しません。つまり、ローカル ネットワーク内で使用される場合にのみ速度が低下します。」
これが本当に正確であれば、注目すべき部分です。
問題は「ローカル ネットワーク」内のどこかにあるはずです。外部でホストされているサーバー/アプリケーション上にはありません。そうしないと、同じ問題が別の場所から再現される可能性があります。
では、どこに?すでにネットワーク機器をいくつか交換しましたが、効果がないようです。
ここで私がお勧めするのは、単純に聞こえるかもしれませんが、ネットワークの最も遠い外部ポイントから逆方向に作業することです。
- ローカル LAN に一度も接続したことがなく、ドメインの一部でもないラップトップを、ローカル ネットワークの ISP に直接接続します。直接接続が鍵です。ファイアウォールなどを介さずにラップトップを ISP のネットワークに直接接続し、どのような応答/パフォーマンスが得られるかを確認し、正常に動作する既知の外部設定と比較します。
- 手順 1 で問題が発生しない場合は、ラップトップを 1 レイヤー戻して ASA ファイアウォールに直接接続し、ファイアウォール経由で再度テストします。
- 2 番目で問題がなければ、今度は管理対象スイッチの後ろの別のレイヤーに戻ります。
- 3 で問題がなければ、ネットワークの問題ではないことがわかります。
などなど(外部で「問題」のあるクライアントを試すなど)、特定の「レイヤー」でなぜ、または具体的に何が問題を引き起こしているのかがわからなくても、少なくとも何が/どこで問題が発生しているかを客観的に言えるようになるまで続けます。その後、その特定の「レイヤー」をさらに深く掘り下げていきます。
答え2
ローカルネットワークを検査するには、おそらく nmap (または wireshark など) を使用する必要があります。これにより、ウイルスに感染して何千ものスパム ARP 要求を送信している Windows コンピューターや、BitTorrent クライアントを使用しているユーザーなど、ローカルネットワークやインターネットアップロードを飽和させる可能性のあるものを見つけるのに役立ちます。
もう 1 つの可能性は、ほとんどの ISP が完璧からは程遠いということです。ISP にはパケット損失やアップロードの安定性の問題がある場合があります。smokeping などの監視ツールをインストールし、インターネット上のターゲットを監視すると、この問題 (パケット損失、アップロードの遅延、ping の遅延) を確認できるほか、問題がいつ発生するか (ジョン・ドウがオフィスにいて、コンピューターをネットワークに接続するたびに発生するか?) も確認できます。