| [System Environment] | |||||||||||
巨大なサイズのファイルを簡単に作る方法
|
|||||||||||
|
|||||||||||
| 操作方法 |
Windows XPではコマンド・プロンプト上で利用できるツールとして、「fsutil.exe」というコマンドが用意されている。コマンドの概要については別稿の「Windows XPの正体 強化されたコマンドライン・ツール―2.ディスク/ファイル関連ツール」を参照していただきたいが、主にファイル・システムに関するさまざまな操作ができるようになっている。
fsutilにはサブコマンドがいくつか含まれているが、その中に「指定されたサイズのファイルを作成する」という非常に単純な機能のコマンドがある。使い方は次の通りである。
sutil file createnew ファイル名 サイズ
|
このコマンドでは、指定された名前のファイルを、指定されたサイズで作成する。「サイズ」は10進数で指定するので、例えば10Gbytesちょうど(=10,737,418,240)のファイルtestfileを作成するには、次のようにする。
C:\>fsutil file createnew testfile 10737418240 |
「ファイル名」には、ローカルのディスク上のファイルだけでなく、リモートのファイル・サーバ上のファイル名やUNCなども指定できる。fsutilはWindows XPでしか利用できないが、ファイルを作成する対象となるマシンはWindows XPでなくても構わない(Windows XP上の%windir%\system32\fsutil.exeをWindows 2000へコピーしても動作はするようだが、このような使い方はライセンス違反である)。
作成されるファイルの中身は、すべてゼロで埋められる。16進数でいうと、0x00というバイト・データばかりが詰まったファイルとなる。ほかの値を指定することはできない。
このコマンドを使ってファイルを作成する場合、対象となるファイルがNTFSボリューム上ならば、どんなに大きなファイルでも、すぐに作成される。ただしディスク上の空き領域が少なかったり、非常に低速なマシンなどを使っていたりするとしばらく待たされることがあるが、それでもせいぜい数秒以内で作成されるようである。NTFSの場合には、ファイルのブロック(クラスタ)を予約するだけで、実際にファイル・データを書き込むわけではないからのようだ(次回読み出すときには、ゼロ・データを返しているようである。いったんデータを書き込めば、次回は実際にそのブロックを読み出すことになる)。ただしスパース・ファイルと違って、実際にファイル・データのためのブロックは割り当てているので、ディスクの空き領域は作成されたファイルの分だけ減少する。
これに対して、FATファイル・システム上にファイルを作成した場合は、実際にディスクへの書き込みが発生する。リモートのファイル・サーバ上のファイル名を指定してfsutilを実行すると、すぐにコマンドの実行が完了するので、ファイルがすぐに作成されたように見えるかもしれないが、実際にはその要求はリモートのサーバ側でキャッシュされてから実行されている(遅延書き込みされている)。そのため、作成したファイルをすぐに利用しよう(読み出そう)としても、ファイルの作成(ゼロ・データの書き込み)が完全に完了するまでは、次の読み出しコマンドなどは待たされる。
またFATファイル・システム上では、ファイル・サイズの最大値は4Gbytes未満に限定されているので、4Gbytes以上のファイルを作成することはできない(ファイル・サイズの制限については「TIPS:ファイル・システムの制限―2G/4GBytes超のファイルに注意―」参照)。
巨大なファイルの使い方
このように、fsutilコマンドを使えば巨大なファイルを簡単に作成できるが、いったいそれが何の役に立つのか、とお考えかもしれない。いろいろな使い方があるのだが、代表的なものとしては、ファイル・システムやOS本体、ネットワークなどに対する負荷テストやパフォーマンス(転送速度)測定などが挙げられる。また変わったところでは、ディスク上の特定の領域を予約したり、後で利用するために一時的にディスク上の場所や領域を確保したりしておく(それらの領域を利用する直前にファイルを削除する)という用途もある。以下、いくつか簡単に紹介しておくが、これ以外の用途に使うのももちろん自由である。
■ディスク読み書き性能の測定
最もよく使われると思われるのが、ディスクやファイル・システムなどの読み書き速度のテストだろう。巨大なファイルを1つ作成して、それをコピー・コマンドやエクスプローラのコピー機能を使って、さまざまな場所にコピーすることにより、ファイル・システムやディスク・システム、そしてそれを制御するシステム全体のパフォーマンス測定などが可能になる(ディスクとの転送速度だけでなく、CPUの使用率なども測定できる)。このような測定を行う場合は、なるべく大きなファイルを使わないと誤差が出るので(時間の測定誤差もあるし、OSのディスク・キャッシュに入りきるような小さなファイルでは、ディスクの実際のアクセス速度を正しく測定することはできない)、fsutilで素早く作成できる巨大なファイルは、テストには好都合である。また、一気に巨大なファイルが作成されるので、ファイルそのものに含まれるフラグメントも最小になり、測定誤差を低減させることができる。
なお、コピーに要する時間を測定するにはストップウォッチで手動測定してもよいが、例えばコマンド・プロンプトに秒を表示させるようにしておけば(「prompt $p $t$g」を実行しておく)、コピーに要する時間を簡単に測定できるだろう。また分単位でよければ、次のようにすれば、コピーの前後の時間を表示させることができる。
C:\>time /t && copy testfile testfile2 && time /t |
| 注意:すでに述べたように、NTFS上にファイルを作成した場合は、実際にはディスクへのアクセスを行うことなくファイル(ゼロ・データ)を読み出すことに注意していただきたい。そのため、必要ならばいったん別のファイルをコピーしてから(これならば確実にディスクからの読み出しが行われる)、測定に使うとよい。 |
■ネットワークの負荷テスト/性能測定
以上のようなファイルのコピーのテストを、ネットワーク越しに行えば、ネットワークのパフォーマンスをテストすることができる。ネットワーク帯域の消費の具合や、ファイル・サーバのCPU負荷、ディスクのI/O負荷などを調べることができるだろう。ローカル側のハードウェアの影響を受けないようにするには、例えば「copy remote-file nul」とすればよい。これならばネットワーク経由で読み出したファイルの内容は単純に捨てられるだけである(NULデバイスに書き込むことは、データを捨てるのと等価)。
また巨大なファイルを(複数のマシンから)連続して読み出せば(ファイルとして読み出してもよいし、ftpなどで「get remote-file nul」としてもよい)、ネットワークを含むシステム全体の負荷テストにもなる。
■圧縮ボリュームの負荷テスト
このコマンドを使って作成したファイルの中身は、すべてゼロ・データである。そのため、圧縮させると非常に小さなサイズにすることができる。NTFS上に作成したファイルを圧縮/解凍させてみれば(エクスプローラで「圧縮属性」を付け外ししてみるか、コマンド・プロンプト上でcompactコマンドを使う)、圧縮/解凍に要するCPU性能などの見積もりができるだろう。
なお、圧縮ボリュームや圧縮フォルダ中に直接fsutilでファイルを作成しても、作成されたファイルは圧縮されない。fsutilで作成したファイルを圧縮するには、上で述べたような操作を行う必要がある。
■NTFSに変換するためのMFT領域の作成
Windows 2000やWindows XPでは、FAT32で作成されたボリュームをconvertコマンドを使ってNTFSボリュームに変換することができる。NTFSではMFT(Master File Table)という、一種のルートとなるインデックス領域が必要になるが(別稿の「NTFSではフラグメントは発生しにくい?―NTFS基礎のキソ」参照)、このMFTがフラグメントを起こしていると、NTFSのパフォーマンスを最大限に発揮することができない。
最初からNTFSとして作成されたボリュームならばMFTがフラグメントを起こす心配はないが、FAT32から変換したボリュームでは、場合によっては(空き領域が少ないと)フラグメントを起こす可能性がある。
このような事態を避けるには、あらかじめfsutilでMFT用の領域を作っておき(ファイルとして作成しておけばよい)、convertコマンドの引数にそのファイル名を与えるとよい。fsutilで作成されたファイルはフラグメントが最小限に抑えられているからだ。convertコマンドは、与えられたファイルをMFT用の領域として使用することができる。MFTとして必要なサイズはボリューム・サイズやファイル/フォルダの総数にもよるが、ボリューム・サイズの1割もあれば十分である。余分な部分はconvertが空き領域として解放してくれる。MFTのサイズの見積もり方や具体的な操作方法については、[スタート]メニューの[ヘルプとサポート]で「convertコマンド」を検索して、その解説を参照していただきたい。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- WindowsTIPS (2010/3/19)
− [シャットダウン]ボタンの設定を変更する
− WINSサーバをインストールする
− WINSサーバをnetshコマンドで管理する - Windows 7のファイアウォール機能 (2010/3/18)
Win 7のファイアウォールの概要解説。ルールセットを切り替えるプロファイル機能が強化され、ドメインでもVPNでも、適切なルールが自動選択される - 第212話 プリンタ用紙 (2010/3/16)
致命的なディスク・クラッシュが起きる確率は、クラッシュによってもたらされる被害の大きさに比例する… - WindowsTIPS (2010/3/12)
− 不要なアドオンを無効化してIE8の起動を高速化する
− IE8のソース表示エディタを変更する
− RRASのNATでポートマッピングを定義する
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |







