問題タブ [hard-drive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 多くのファイルを同時に処理する—ファイルをNFSにコピーするか、NFSを介して読み取るか?
大量のファイルを同時に処理する必要があります(数千の異なるファイル、ファイルあたりの平均サイズは2MB)。
すべての情報は1台の(1.5TB)ネットワークハードドライブに保存され、約30台の異なるマシンで処理されます。効率を上げるために、各マシンは異なるファイルを読み取り(および処理)します(処理する必要のあるファイルは数千あります)。
すべてのマシンは、1.5TBハードドライブの「incoming」フォルダからファイルを読み取った後、情報を処理し、処理された情報を1.5TBドライブの「processed」フォルダに出力する準備が整います。すべてのファイルで処理される情報は、入力ファイルとほぼ同じ平均サイズです(ファイルあたり約2MB)。
何をするのが良いですか:
(1)すべての処理マシンMについて、 Mによって処理されるすべてのファイルをローカルハードドライブにコピーしてから、マシンMでローカルにファイルを読み取って処理します。
(2)ファイルをすべてのマシンにコピーする代わりに、すべてのマシンが「着信」フォルダーに直接アクセスし(NFSを使用)、そこからファイルを読み取り、ローカルで処理します。
どちらのアイデアが良いですか?そのようなことをしているときに「する」と「しない」はありますか?
30台ほどのマシンが同じネットワークドライブに同時に情報を読み取る(または書き込む)ことが問題になるかどうか、私は主に興味がありますか?
(注:既存のファイルは読み取りのみで、追加/書き込みは行われません。新しいファイルは最初から作成されるため、同じファイルへの複数のアクセスの問題はありません...)。予想すべきボトルネックはありますか?
(私はLinux、Ubuntu 10.04 LTSをすべてのマシンで使用しています)
python - Pythonを使用してディスクから大量のデータを処理する最も効率的な方法は何ですか?
他の方法では再構築できなかった障害のある RAID5 アレイからデータを読み取って再構築するための簡単な Python スクリプトを作成していました。私のスクリプトは実行されていますが、ゆっくりです。私の元のスクリプトは約 80MB/分で実行されました。その後、スクリプトを改善し、毎分 550MB で実行していますが、それでも少し低いようです。Python スクリプトは 100% の CPU を使用しているため、ディスク制限ではなく CPU のように見えます。これは、最適化の機会があることを意味します。スクリプトはそれほど長くないため、効果的にプロファイリングすることができません。そのため、何がすべてを食い尽くしているのかわかりません。これが現在の私のスクリプトです(または少なくとも重要な部分)
この巨大なテキスト ブロック内の実際の質問を太字で示します。
これをより速く/より良くするためにできることはありますか? 何も思い浮かばない場合、これが遅くなる原因をよりよく調査するためにできることはありますか? (行ごとのレベルで python をプロファイリングする方法さえありますか?) 私はこれを正しい方法で処理していますか、それとも大量のバイナリ データを処理するためのより良い方法がありますか?
私が尋ねる理由は、3 TB ドライブの再構築があり、正常に動作しているにもかかわらず (イメージ ro、loop をマウントし、ファイルを正常に参照できます)、長い時間がかかっているためです。古いコードでは 1 月中旬までかかると測定しましたが、今ではクリスマスまでかかるようになっています (したがって、はるかに良くなっていますが、それでも予想よりは遅いです。)
質問する前に、これは mdadm RAID5 (64kb ブロックサイズ、左対称) ですが、mdadm メタデータが何らかの形で欠落しており、mdadm ではメタデータをディスクに書き換えずに RAID5 を再構成することはできません。 、私は何かを台無しにしてデータを失う危険を冒したくありませんが、可能性はわずかです。
c# - C#(WMIなし)でハードディスクのシリアル番号を取得するには?
CodeProject に 2 つの記事があることは知っています (1 つは WMI を使用し、もう 1 つは WMI を使用せずに C++ を使用しています)。WMI の方法を試してみましたが、遅いだけでなく、信頼性もありません。だから、私はその方法を追求しないことに決めました。pInvoke を使用して C# で実行したいと考えています。試してみましたが、DeviceIoControl API でスタックしました。誰でもヒントを教えてもらえますか?これが私のコードです:
windows - Windows 用のディスク I/O ベンチマーク ソフトウェアを推奨できる人はいますか?
さまざまな条件下でファイルシステムのパフォーマンスをテストしたいと考えています。
具体的には、「通常のハードディスク」と USB ディスクの両方で、圧縮なしと圧縮ありの Windows 仮想マシンのパフォーマンスをテストしたいと思います。違いが何であるかを正確に確認することは興味深いでしょう。
私が必要としているのは、ファイル システムのさまざまな側面 (ランダム アクセス、シーケンシャル読み取り/書き込みなど) をテストし、私のブログに適したきれいなグラフを作成できるプログラムです。できれば、アプリケーションを自動化してスタートアップに追加できるようにする必要があります。これにより、実行ごとにタイミングが同じになり、検証のために実行を繰り返すことができます。
テストに取り掛かったら、結果へのリンクをここに投稿できます。今はちょうど計画段階です。
c# - File.Copy が破損したファイルでハングする
古いドライブから新しいドライブにファイルをコピーしようとしています。問題は、古いドライブにはディスク上のいくつかの破損した場所があり (推測することしかできません)、これらのファイルのいくつかから読み取ろうとすると、ある種の無限ループのように見えることです。コピーしたいファイル全体にかなりの数の問題ファイルが散らばっており、最初のファイルにヒットすると、アプリケーションは停止するまで何もせずにそこに留まります。カスタムプログラムを作成してディレクトリを再帰化し、ファイルを1つずつコピーし、個々のコピー操作でポップアップするエラーをキャッチすることでこれを回避できることを望んでいましたが、エラーをスローするまでには至りませんでした- -ただそこに座って、そこに座って、そこに座っています。これを止める唯一の方法は、問題のあるハード ドライブの電源を物理的にオフにすることです。
どうやって進めていくのか、ちょっと戸惑います。この種のエラーが発生することを考えると、このプロセスを自動化する方法はありますか? 誰もこれについて経験がありますか?
optimization - ハードディスクを過度に使用すると、ハードドライブが劣化する可能性がありますか?
ハードディスクを過度に使用すると、ハードドライブが劣化する可能性がありますか?
背景:私が持っているコードの中には、特定のファイルを必要以上に頻繁に読み取るものがあります。ファイルを読み取る頻度を減らすことは速度の問題によって正当化されませんが、それが実行されているハードドライブに長期的な損傷を与える場合(1台のコンピューターでのみ実行されます)、変更することは正当化されます。
php - PHP から特別なローカル ディスク情報を取得することは可能ですか?
ローカル コンピューターで PHP コードを実行しているので、ローカル ハードディスク情報を取得する機能が PHP にあることを知りたいだけです。ディスク名、ディスク容量、空き容量など。
どうもありがとうございました!!
c# - ストレージ デバイス、ファイル転送およびコピー操作ロジック
標準の Windows ファイル コピー プロセスの代わりとして機能するファイル コピー ユーティリティを作成しようとしています。これを行う主な理由は、コピー/移動キューのサポートを追加し、ファイル転送が同じ宛先物理メディアを含まない場合にのみ複数のファイル転送を有効にすることで、何らかの最適化を行うことです (複数のファイルがある場合に全体の転送速度がどのように低下するかはご存知のとおりです)。同じ宛先メディアで複数の転送が行われていますか?)
私は実際のプログラミング経験がほとんどないことを明確にしたいと思います。プロジェクトに C#/.net を使用する予定です。
本質的に、teracopy と同様の機能を作成するつもりです (同じパフォーマンスが得られない場合)。
専門家のアドバイスが必要な点は次のとおりです。
ファイルのコピー/移動速度は、ストレージ メディア (ハードディスク、フラッシュ ドライブなど) によってどのように異なりますか?
あるハードディスクから別のハードディスクへの操作の読み取り/書き込み速度 (たとえば、ファイルをハードディスク A から B に、A から A にコピーする)。
同時に実行された場合、どのような種類の同時コピー/移動操作が互いに大きな影響を与えないでしょうか(プロセッサまたはデバイスコントローラの負荷を考慮していません...またはすべきですか? )
質問について完全に明確ではなかった可能性があることを認めますので、回答を提供するために詳細が必要な場合はお知らせください.
ありがとうございました。
c++ - LinuxでC++プログラムからSCSIハードドライブシリアルを入手する
Linux(Ubuntu)のSCSIハードドライブシリアルをルート権限のないC++プログラムから取得したい。ioctl(fd、HDIO_GET_IDENTITY、&id)を試しましたが、ATAデバイスでのみ機能するようです。SCSI HDDのソリューションを持っている人はいますか?私が探している解決策は、ユーザーがルート特権を持っている必要はありません。ソースコードは大歓迎です
c - ディスクパーティションがWindowsエクスプローラーに表示されないようにするにはどうすればよいですか?
100GBのドライブがあり、1GBを使用して再インストールソフトウェアを配置したいとします。私はその1GBを彼に隠してもらいたい-ユーザーからではなくOSから。WindowsXP以降を想定しています。それを行うために使用できる一連のAPI呼び出しはありますか?ハードドライブの一部を「隠す」ために他にどのようなテクニックがありますか?