- 締切済み
共有アクセスでの処理負荷
Windows7 32ビット環境で発生している現象なんですが 自作アプリにて特定のファイルを開くアプリを作成しました (本当にオープン・クローズするだけと思ってもらって構いません) ローカルファイルを使っている分には問題ないのですが 同じファイルを共有ファイル扱い(\\127.0.001\~~~)にてアクセスすると 不定期に15秒ほど時間が必要になる現象が発生しています IPv4のみ使用・インデックスサービス停止などは試してはみたのですが 現象に改善が見られません 動かないわけではないので(不定期に時間がかかるだけ) しばらく放置していたのですがもし原因がわかるのであれば対処したいと思っています これが原因じゃないかと思い当たるものがあれば教えてください (今はとにかく各種情報を求めます)
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- oboroxx
- ベストアンサー率40% (317/792)
No.4です。 「アクセス出来ない」ではなくて「アプリケーションを動かしているユーザにネットワーク経由でのアクセス権限があるのかどうか」を確認しているのではないかということです。 あくまでも推測ですので、確証はなにもないです。
- oboroxx
- ベストアンサー率40% (317/792)
ファイルをオープンするAPIの内部処理で、IPアドレスで指定されたホストにアクセスするための処理に時間がかかっているのではないでしょうか。 ユーザのアクセス権限とか。 そんな気がします。
お礼
回答ありがとうございます >ユーザのアクセス権限とか。 さすがにAPIの内部処理まで追いかけていないのですが 仮にアクセス権限に何かの問題があるとすれば 不定期に時間がかかる ではなくて 一切アクセスできない という現象になるのではないでしょうか? ちなみに該当フォルダに関しては Everyone で フルアクセス可能にしています
- m-take0220
- ベストアンサー率61% (480/785)
質問文ではIPアドレスがループバックアドレスになっているので、実際にはネットワークでのデータの送受信は行われていないんですよね。 私なら、原因の絞り込みのために、 1.ソフト上で時間がかかっている処理を特定 各処理の前後で時間を取得するようにして、処理に一定以上の時間がかかったらログに出力するなどして特定する。 2.パケットをキャプチャしてタイムアウトしていないか調べる 本来不要な名前解決の処理などが原因の場合、ネットワークでの問い合わせがタイムアウトしている可能性があるので、ネットワークのデータをキャプチャしてみる。 などはするかもしれません。
お礼
回答ありがとうございます 1に関しては実際のソースでどの処理に時間かかかるかの確認はしています その結果ファイルオープン関数自体が返ってこない状況であることはわかっています 開発環境はVC 2010 MFC使用 UNICODE FILE *pF; _tfopen_s(&pF, szFileName, _T("rb")); に時間がかかる という現象です 直ぐに該当環境での確認ができないこともあり (手元の環境は当時のものから変わっている) 記憶があいまいなところもあるのですが 状況としてネットワークのコネクションが切れて 再接続しに行っているような印象を受けました (エクスプローラ見てても不定期にPC名が消えたり再表示されたりしてた記憶あり) 2に関しては方法がよくわからないのでちょっと調べてみたいと思います
- kteds
- ベストアンサー率42% (1883/4441)
ネットワークが関係しているのでは? そのアプリを実行する前に ipconfig /flushdnsの実行を組み込んでキャッシュをクリアしてみるとどうですか。 (そのアプリ実行の度に毎回行なう必要はないと思いますが、適当なタイミングでクリアしておく) --- ipconfigはコマンドヘルプを参照してください。
お礼
回答ありがとうございます 有効かどうか試してみたいと思います 有効だとしも実対処方法が悩みどころになる気がしますが
- Tasuke22
- ベストアンサー率33% (1799/5383)
同じPCでローカルホストにアクセスに行く感じですかね。 可能性の最大要因はメモリ不足じゃないかと思います。 作業中のメモリの使用量を調べたいところでしょう。 メモリ不足が原因ですと、不要な常駐ソフトの停止とかの対策はありますが、 OSを64ビットにして、メモリを大きくするのが手っ取り早いですね。
お礼
回答ありがとうございます ただ今回はメモリ要因とは考えられません (ほかにアプリはほとんど動かしていない状態) 開発環境込みで動かしていても タスクマネージャで見て十分余裕があります
お礼
回答ありがとうございます >「アプリケーションを動かしているユーザにネットワーク経由での >アクセス権限があるのかどうか」を確認しているのではないか そういう意味でしたか 誤解したようです そのあたりになるとさすがに内部処理を追わないとわかりそうもないですね 現在当時使っていたはずの環境に切り替えて 改めて現象の確認を始めたところなのですが・・・・・なかなか現象が確認できない (当時はもっと発生頻度が高かったはずなのに) ただエクスプローラでネットワーク表示させて放置してても PC名が出たり消えたりという現象は出ているようです 他の方へのお礼に書いたようにそれが影響してるのかすら定かではない 何かの原因で共有セッションが切れて再接続に時間がかかるのが原因だとすると パケットモニタや他の通信を行って監視しようとするとそれが原因で 現象改善されるのではないかということもあり 調査方法含め悩みどころ満載状態となっています とりあえずもう少し模索してみようかと思っています