(Ubuntu)LinuxファイルコピーアルゴリズムはWindows 7よりも優れていますか?


13

Windowsのコピーは、Windows Vista以降、本当に混乱しています。マイクロソフトでさえ、ユーザーの観点からパフォーマンスを改善したと主張していますが、それはあまり目立ちません。単一のファイルであっても、コピーウィンドウは「計算」してからコピーを完了するには時間がかかりすぎます(100%完了した後でも、ダイアログがアクティブなままになることがあります)。

同時に、Ubuntu Linuxのいくつかのファイルをバックアップしていました。本当に速いと感じました。UIの更新が速いために感じられる場合があります。

私は数年前、Windows File Copyingに関するJeff Atwoodの有益な投稿を読みました。しかし、私の具体的な質問は何ですか

  • (Ubuntu)LinuxファイルのパフォーマンスはWindows-7よりも優れていますか?
  • WindowsとLinuxの両方のアルゴリズムは、速度を向上させるために複数のスレッドとパイプラインメカニズムを使用していますか?はいの場合、どちらが良いですか?

3
Windowsではxcopy、さらにはを使用しますrobocopy。ずっといい。たとえば、後者の場合、2つのパスを作成できます。1つはすべてのディレクトリを作成しますが、ファイルをコピーせず、2つ目は実際のファイルをコピーします。
ケレックSB

1
またはRichCopy(blogs.technet.com/b/kenおよびダウンロード
11

ファイルシステムにも依存します-あなたのシステムはおそらくのようなものを使用しておりext3/4、ここでNTFSと競合しています。あなたも試してみてくださいreiserfsxfs-小さなファイルで速い操作のために最適化されているどちらも。
new123456

@KerrekSB、あなたのコメントを答えにしてください。(コメントに+1しただけですが、あなたは私が言っていることを知っています。)それが答えです。
-CarlF

Robocopy / CREATEは、空のファイルを含む完全なディレクトリ構造を複製するのに非常に便利ですが、ターゲット上のファイルの断片化を防ぐことはできません(8年後!)。構造はMFTで作成されますが、ファイルのコンテンツはどこにでも記録できます。通常、1回のパスでも、Robocopyがモノスレッドで実行され、一度に1つのファイルがコピーされる場合、断片化はありません(そして、マルチスレッドで実行することは、HDDからHDDへのコピーのパフォーマンスを大幅に低下させるため、悪い考えです。機械式ドライブはさらに「研削」する必要があるため)。
GabrielB

回答:


6

標準copyのWindowsでの組み込みは非常に良いではありませんが、Windowsは、はるかに効率的です2つの高度なコマンドが付属していますxcopyrobocopy。特に、ACLや代替データストリームなどの高度なファイルシステム機能を完全に制御する必要がある場合robocopyは、最適なツールです。

例として、大きなディレクトリ構造をコピーする場合、ターゲットの断片化を解除することができます。の標準的な呼び出しrobocopyはすでにそれで十分ですが、サブディレクトリが作成されるとディレクトリエントリが更新されるため、断片化されたディレクトリを取得できます。それを防ぐために、robocopy2つのパスで実行できます。1つ目はファイルの内容をコピーせずにターゲットディレクトリ構造のみを作成し、2つ目は実際にファイル本体をコピーします。

全体として、robocopy非常に効率的であり、NTFS機能を完全に認識しています。


NTFSはext3 / 4よりも効率的ですか?
サラット

実際のコンテンツは後でコピーされるため、2パスロボコピーが断片化を減らすのにどのように役立ちますか。ディスクの割り当ては完全にファイルマネージャーによって制御されますか?
サラット

Beyond Compareを使用してファイルをコピーするなど、いくつかのトリックを行っています。つまり、帯域幅の使用率を最大化するために複数のコピー操作を実行できます。しかし、それがどの程度断片化されるかはわかりません
-sarat

2
@Sarath:断片化に関して:新しいファイルとサブディレクトリがディレクトリに追加されると、ディレクトリエントリが大きくなります。単純にディレクトリを作成してファイルの挿入を開始すると、最終的に元のディレクトリレコードは小さすぎて拡張する必要がありますが、ファイルデータが既に続くため、スペースはありません。この/CREATEオプションを使用すると、空のファイルとサブディレクトリが作成され、スペースを占有しないため、ディレクトリエントリを完全に連続して書き出すことができます。
ケレックSB

1
@Sarath:NTFSをExtと比較することに関して言えば、NTFSはオープンではなく、効率の問題はかなり曖昧だからです。NTFSは確かに、多数の機能を備えた優れたテクノロジーです。ただし、WindowsではNTFSを使用し、LinuxではExt(またはBTRFS)を使用するので、実際には選択肢はありません。
ケレックSB

4

Ubuntu Linuxで見られる速度の一部は、おそらくファイルキャッシュです。私の知る限り、Linuxのファイルコピーは、ファイルキャッシュの使用を最小限に抑える努力をしていません。

Linuxでは、RAMの約50%未満のファイルをコピーすると、ファイル全体がファイルキャッシュにコピーされ、時間が許す限りディスクに書き込まれます。これは非常に高速に見えますが、他のより便利なファイルをキャッシュから強制的に削除します。これらは、Webキャッシュファイル、電子メール、構成ファイル、フォントファイルなどです。

Windows XPは、ファイルキャッシュも考慮せずにコピーを使用していました。しかし、Windows Vistaでは、MicrosoftはExplorerを変更して、コピー時に限られた量のファイルキャッシュを使用するようにしました。これにより、システムの残りの部分に対する大きなファイルコピーの影響が軽減されます。ただし、比較的小さなファイルのコピーでも、ハードディスクの速度まで低下します。


ファイルキャッシングメカニズムを使用するUbuntu。また、コピーの進行中にブラウジングが少し遅くなることに気付きました。また、特に大量のファイルをコピーしている間、速度が一貫して改善されていることに気付きました
-sarat

これが質問にほぼ完全に対応する答えだと思います。
ナンダクマルエダマナ

2

Windowsでは、Teracopyを使用します-Explorerの全体的な愚かな問題を解決します。

Ubuntuでは、ファイルのコピーが非常に高速であることがわかりました。

それでも、リムーバブルドライブを使用している場合、「ファイル操作」ダイアログは消えません。ダイアログが消えた直後にドライブを安全に取り出そうとすると、エラーメッセージが表示されます。ただし、データは通過します。

更新:Windowsファイル操作は、おそらくすべてのサービスおよびレジストリとの統合が遅いです。Nautilus(Gnome内)は、私が推測する単純なプロセスであるか、少なくともエクスプローラーのような負荷/中断はありません。


開いたままにする必要のある別のGUIを追加することで、愚かさを解決します。Unityデスクトップを使用したNattyがそれをどのように行うのかわからない
11

Teracopyは、Explorerでロードされます。開いたままにする必要はありません。そのため、Teracopyはユーザーの労力なしでメモリにロードされ、目立たないように機能します。Ubuntuには、Nautilusに組み込まれているすべてのインテリジェンス、つまり「マージ」オプションと「すべてスキップ」オプションがあるため、そのようなものは必要ありません。
BZ1

+1:TeraCopyをご注目いただきありがとうございます!
sehe

fastcopyと呼ばれる無料のオープンソースツールを使用していました。【ipmsg.org/tools/fastcopy.html.en]
sarat

-1

Linuxでのファイルの移動とコピーは、当然のことながら迅速な操作です。ファイルを非常に迅速に移動およびコピーできるのは、ソースと宛先の両方が同じパーティションにあるためです。操作はiノードを変更するだけです。異なるパーティション間でのファイルの移動は依然として非常に高速です(1ギガファイルの場合は1分程度)。Windowsでは、Windowsでのファイル管理が面倒なので、ファイルを同じパーティションの宛先に移動するのに多少時間がかかります。(ファイルの断片化とWindowsがハードディスクをフォーマットする方法について考えてください。)


パーティション内での移動はかなり速いことに同意します。ただし、コピーでは常にディスクに日付を複製して新しいiノードを作成する必要がありました。また、物理的なファイルの移動が発生しているため、パーティション間でファイルを移動するのはコストがかかると思います。間違っている場合は修正してください。
サラト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.