DOSウィンドウで初めてコマンドを実行すると、長い遅延が発生する

DOSウィンドウで初めてコマンドを実行すると、長い遅延が発生する

私たちは、いくつかのツールを備えたサーバー (Win2k) を実行しています。ワークステーション (XP) はすべて、そのフォルダーを含むように PATH が設定されています。

ワークステーションの DOS ボックスからツール (例grep) を実行すると、ツールが実行されるまで (最大 1 分) 長い遅延が発生することがあります。遅延の後は、すべて通常どおりに実行されます。後続の実行では、別の DOS ボックスから実行した場合でも、遅延は発生しません。

何か案は?

* 詳細はこちら *

このシナリオでは常に遅延が発生します。サーバー上の特定のフォルダーにあるツールで作業しています。ツールは、ツールがビルドされたフォルダーにある DOS ボックス内の 1 つのワークステーションで編集およびコンパイルされ、実行されますが、常に遅延が発生します。次の実行は問題ありません。そのため、EXE を再生成すると遅延が発生します。

答え1

Windows は、必要なコマンドがそのフォルダー内にあるかどうかを確認するためにサーバーにログインしています。 1 回目以降は、すでにログインしています。 毎日、サーバー上のドキュメントやフォルダーを開くときに同じ問題が発生します。

ログイン中に次のコマンドを実行すると、速度が向上する可能性があります (Windows の場合)。

Net Use \\ServerName

このコマンドの処理には 1 分ほどかかりますが、ユーザーが気付かないバックグラウンド タスクとして実行される可能性があります。ただし、このケースで「接続が多すぎる」問題が発生するかどうかはわかりません。

答え2

grepは Win32 コマンドではなく Unix コマンドなので、古いバージョンの Windows に存在する Unix サブシステムを呼び出している可能性があります。

これらの Unix コマンドをサポートするには、特別なシステム プロセスを起動する必要があります。これが初期遅延の原因です。プロセスの名前は思い出せませんが、Process Explorer などを使用すると、プロセスが起動しているのがわかります。

たぶんこれはTechNet シリーズ役に立つかもしれません。サブシステムの詳細については、「Windows Internals」という本を参照してください。

答え3

パス内にタイムアウトしているネットワークの場所がある可能性があります。DOS またはスタート メニューの [実行] オプションからプログラムを実行しようとすると、実行可能ファイルまたはスクリプト/バッチ ファイルが現在の作業ディレクトリで最初に見つからない場合、PATH にリストされている各ディレクトリも検索されます。

DOS ウィンドウに「PATH」と入力すると、ドライブ C: 以外のものがリストに含まれているかどうかを確認できます。含まれていない場合は、次のものが疑わしい可能性があります。

  1. 非常に大きなプログラムを初めてロードする場合も問題になることがあります (その後の使用はキャッシュから行われるため)。使用している「grep」ツールへのリンクはありますか? 小さなスタンドアロン プログラムであれば、これは問題にならないはずです。

  2. 遅いウイルス対策ソフトウェア(非常にまれ)

  3. ディスク障害が発生し始めています(できるだけ早く完全バックアップを取得してください)

  4. ファイル システムの断片化が多すぎる ([スタート] メニュー -> [プログラム] -> [アクセサリ] -> [システム ツール] -> [ディスク デフラグ] にあるディスク デフラグ ツールを実行すると簡単に解決できます)

関連情報