プロが教えるわが家の防犯対策術!

サーバ上にPHPのプログラムを書いているのですが、
携帯からアクセスすると、Webブラウザからアクセスするのに比べて
コネクションを貼るまでの時間が体感できるほど遅く感じます。

PHPは関係なく、単純にサーバ側の問題のようです。
というのも、a.txt という1byteのファイルをサーバに置いているのですが、
サーバAにおいて携帯(DoCoMo P902i)でアクセスすると瞬時ですが
サーバBにおいて同じ携帯でアクセスすると5秒くらいかかります。

どこがボトルネックになっているのかを究明したいのですが、
今のところさっぱりお手上げです。
どういう原因が考えられるでしょうか?ご教示ください。お願いします。

A 回答 (12件中1~10件)

違うサーバに 問題のサーバの設定やファイルを丸々コピーしても起きないのでしょうか?


(ドメインはどうしようもないので IPでアクセスするくらいしか方法はないと思いますが。)
もしくは 別のページを用意してアクセスして GETと返答の中身で判断するとか…
後は アクセスが少ない 早朝時間帯(6時ごろ とか)に試すとかでも余計なパケットは
なくなるかもしれませんが…(その辺はサイトの人気次第ですけど)

AUとdocomoの違い というよりは端末ごとに結構違うはずなのでなんとも言いがたいです。
端末以外だと KDDIのネットワークからやってくる とかくらいでしょうか。
(そこにある proxyの仕様とかまでは存じません)

auの方が酷い のは同じ原因ではない可能性もあるわけですからそれはそれで別サーバで試してみては?

※なんか 質問者の方と関係のない会話を続けるのが質問者の方に非常に恐縮ですが…
 
    • good
    • 0

holy666さん、ありがとうございます。



朝方の時間帯に制限をかけてキャプチャしてみましたが、比較的以前より見やすくはなりました。
しかし、私からのアクセスだけには出来なく、元々の見方が分からないものですからやはり分かりにくい状況です。
現在、別サーバに移すとか何か方法を考えてみます。

>なんか 質問者の方と関係のない会話を続けるのが質問者の方に非常に恐縮ですが…
そうですね・・・。
私も気にはなっていたのですが、質問内容が同じような感じで、同じ質問を作成するのもよくないかなって思ってたのもありますし、出来るだけ早く対応を考えたかったもので・・・。
ashi_otoさん、申し訳ありません。

では、これで最後にさせていただけたらと思います。

最後に、今後する対応としては、キャプチャしてその流れから原因を究明していくのがいいと思いますが、その他の方法で何かしたほうがいい点とかアドバイス等ありましたら、教えていただけませんか?

よろしくお願いします。
    • good
    • 0

holy666さん


ありがとうございます。

教えていただいた通り、携帯からのデータを取得したいのですが、現在のサーバーには不特定多数の方からのアクセスがあり、携帯からのアクセス(例えばDoCoMoのみ)にアクセス制限をしたのですが、それでも例えばDoCoMoだけでもIPが多数あり、私のアクセスのみをキャプチャできない為、なかなか見分ける事が出来ません。
やはり、現在の状況ではなかなか見極めるのは難しいでしょうか?

違うサーバーでは問題なく表示されるので、そちらでテストしても意味がないですし・・・。

ちなみに、利用者から教えていただいたのですが、DoCoMoは比較的表示されて、AUはほとんど表示されない事が多いようなのですが、DoCoMoとAUの違いは何かご存知でしょうか?

何から何まで頼ってしまい大変申し訳ありませんが、もし何かご存知の点、その他の方法等ご存知でしたら教えていただけませんでしょうか?
よろしくお願いします。
    • good
    • 0

ファイルの中身が見やすくなりますよ というだけで使い方を知らなくても問題ない


気がしますが…  別にキャプチャしたデータをそのまま見ても良いですし
ハンドシェイクが行われた後あたりに携帯側からGETかPOSTが飛んでいるはずですが、
それがハンドシェイクの処理から後時間が掛かっているならサーバ以外の問題でしょうし、
要求に対してのサーバの返答が遅いならサーバの内部処理側の問題という事が確実で
あるという事が分かるというだけです。
応答パケットに 200 OK やコンテンツ内容が返答されて居ないければその辺の処理に
絡む所で問題があるのでしょうから原因も追求しやすくなると思います。

>500秒かかっているもの
500msならわかりますが、10分近くも表示には掛からないでしょうから無駄なパケット
として気にする必要は無いと思います。
キャプチャスタート→携帯から見る→表示される→キャプチャを止める
で取れるデータで十分です
尚、携帯側はキャッシュの確認にならないうようブラウザを立ち上げなおすとか
するほうが良いと思います。

 
    • good
    • 0

holy666さん


お世話になります。

教えていただいたとおりtcpdumpにて取得してみました。
ただ、Wiresharkを使った事がなく、英語ですし、見方や使い方がいまいちよく分かりません。googleにて検索をしながら、試行錯誤してはいるのですが・・・。
ただ、携帯からのアクセスに関しては桁違いの秒数がかかっていることは確認できました。500秒かかっているものもありました。

Wiresharkを使って確認する際に、パケットの流れとして注意して見る点などございますでしょうか?
    • good
    • 0

tcpdump -i eth0 -s 1000 -n -X host 携帯端末のIP and port 80


見たいな感じで良いかと。

tcpdump -i eth0 -s 1000 -n -w cap-data.cap host 携帯端末のIP and port 80
にして キャプチャしたものをファイルに保存してから ローカルのPCに持ってきて
Wiresharkなどで見るとより見やすいと思います。

そこで 時間が何ms掛かっているのか、再送があるのか等が全て確認できると思います。
 
    • good
    • 0

holy666さん


何度もありがとうございます。

>立ち上げているのはapacheのみで試したコンテンツは10バイト以下程度しかないようなファイルでしょうか?(1パケットに収まれば問題なし)
はい。
テスト用に6バイト程度のファイルを作成し、アクセスしてみました。
>考えられそうな事として 逆引き とかでしょうか。
>HostnameLookups off を入れてみるとかでどうでしょう?
元々負荷がかかるのを知っていた為、HostnameLookupsはoffにしております。

>Server-Client間を疑うしか無くなってしまうのでパケットを直接キャプチャしてみるのが早いと思います。
パケットのキャプチャした事がないので、正直方法が分からないのですが、tcpdumpでよろしいのでしょうか?

>ちなみに Serverは直接Global IPを持っているという事で良いですか?
はい。2枚NICがささっており、1枚がpppoeにてグローバルに接続、もう1枚はローカルのネットワークに繋がっております。

最初は、サーバーの負荷を疑ったのですが、現在ロードアベレージもかなり低いままですし、メモリもかなりあいてます。
ネットワークの設定を変更した覚えもないのですが、急に今回のような症状が起きるものなのでしょうか?
何分、初めての現象の為、対応が分からず困っています。

holy666さんには何度もお手数をおかけしますが、よろしくお願いします。
    • good
    • 0

>ログを見てみましたが、リアルタイムにログは表示されました


要求の動作とログの表示がほぼ同時に見えるなら時間が掛かって居ないわけですから
ISP的な問題は無いと思ったほうが良いとおもいます。
>同一のISPの違うサーバーは問題なく正常に動いているので、それも考えにくいですが
というのがまさにその通りですね。 広い意味でのNW以外 の部分だと思います。
立ち上げているのはapacheのみで試したコンテンツは10バイト以下程度しかないよう
なファイルでしょうか?(1パケットに収まれば問題なし)
>携帯だけ表示されない場合もhttpd.confの設定が
考えられそうな事として 逆引き とかでしょうか。
HostnameLookups off を入れてみるとかでどうでしょう?
名前解決関連で遅くなるような事もザラだと思います。
サーバ側にそういうに問題が全く無いと思う場合には
Server-Client間を疑うしか無くなってしまうのでパケットを直接キャプチャ
してみるのが早いと思います。
どちら向きの処理が遅いのか、再送があるのか 等が確認できますので。
ちなみに Serverは直接Global IPを持っているという事で良いですか?



>pingやtracerouteも一応調べてみましたが、携帯のIPには
traceroute で反応が無くなるところの手前のIPがAS的に同じブロックに見えるなら
経路的な調査をするなら役に立ってくれます。
(hana43さんの所では調査自体が不要なはずですが)
Verioの場合はLooking Glass等で海外から調べるのも良いかも知れませんね。
(NW的に海外からのトラフィックのほとんどがAS2914を通るので)

 
    • good
    • 0

こんにちは。



holy666さんのご意見を参考にまず携帯からアクセスし、ログを見てみましたが、リアルタイムにログは表示されました。
よってhttpd.confの設定ということになるのでしょうが、パソコンからのアクセスではスムーズに表示されるのに、携帯だけ表示されない場合もhttpd.confの設定が関係してくるのでしょうか?

pingやtracerouteも一応調べてみましたが、携帯のIPには接続は出来ませんでした。おそらく、ping等に反応しないように設定されているのかもしれません。他のサーバー(同一ISPの正常に稼動している違うサーバー)からも同じ結果でしたので・・・。

残るはISPの問題でしょうか?
同一のISPの違うサーバーは問題なく正常に動いているので、それも考えにくいですが、残る原因が分かりません。

ちなみにashi_otoさんのISPはどちらでしょうか?
    • good
    • 0

とりあえず 遅い方 でapacheを上げて リアルタイムにログを見な


がらアクセスしてみるのはどうでしょう?
ログに出てくる速度には問題が無いのに表示に時間が掛かるような
httpd.confの見直し等が必要になると思いますし、設定に問題が無
い場合は詳細に調べる為にtcpdumpをするとかしないといけないかと。
ログに出てくるまでが遅い場合はアクセス元のIPアドレスがわかるは
ずですからそのサーバからIPアドレスに対してping を打ってみて時
間をはかり比べてみるとかtraceroute のhop数や経路の違いを調べて
みると良いと思います。
(但し 相手からの経路はtracerouteの結果通りとは限りませんが)


ISPによっては直接NTT関連会社※とのPeerを持っていなかったり、
持っていてもトラフィックコントロールを適切に行えないでそこの
部分の回線が常に輻輳していたり、回線を持っていない場合は他社
のトランジットから抜けてるにしてもそこが混んでいたり…
その手の問題の場合はお金の絡む所なんでなかなか簡単にどうにか
できる問題でもないですけど「その辺はインターネットですから」
ということで。。

そういうのも含めてCDN屋さんという業種の存続があったりもするんでしょうね。


※DoCoMoのアクセス元IPはVerioになるので実質NTT-Com

 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!