問題タブ [filesystems]
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 - SD/USB へのバースト書き込みにより、組み込み Linux でタイム クリティカルなアプリが失速する
私は、ARM9 をハードウェア ビデオ エンコーダ チップに接続し、ビデオを SD カードまたは USB スティックに書き込む組み込み Linux プロジェクトに取り組んでいます。ソフトウェア アーキテクチャには、データをバッファーのプールに読み込むカーネル ドライバーと、マウントされたリムーバブル デバイス上のファイルにデータを書き込むユーザーランド アプリが含まれます。
特定のデータ レート (約 750kbyte/秒) を超えると、約 5 秒ごとに、ユーザーランドのビデオ書き込みアプリがおそらく 0.5 秒停止するのが見え始めます。これは、カーネル ドライバーがバッファーを使い果たすのに十分です。また、バッファーの数を増やすことができたとしても、ビデオ データは、リアルタイムで行われている他の処理と同期する必要があります (理想的には 40 ミリ秒以内)。これらの 5 秒の「ラグ スパイク」の間で、書き込みは 40 ミリ秒以内に完了します (アプリに関する限り、OS によってバッファリングされていることに感謝します)。
このラグスパイクは、Linuxがデータをディスクにフラッシュする方法に関係していると思います.pdflushは5秒ごとに起動するように設計されていることに注意してください. ストールが終わるとすぐに、ユーザーランド アプリは迅速にサービスを提供し、(オーバーフローしなかった) バッファーのバックログを書き込むことができます。
私が書き込んでいるデバイスは、合理的な究極のスループットを持っていると思います.15MBのファイルをメモリfsからコピーし、同期が完了するのを待つ(そしてUSBスティックのライトが点滅を止める)と、約2.7MBytes /秒の書き込み速度が得られました。
私は2種類の手がかりを探しています:
バースト書き込みによってアプリが停止するのを防ぐにはどうすればよいでしょうか? おそらくプロセスの優先順位、リアルタイムのパッチ、またはバーストではなく継続的に書き込むようにファイルシステム コードを調整することでしょうか?
カード/スティックへの書き込みバックログとスループットに関して、ファイルシステムで何が起こっているかをアプリに認識させるにはどうすればよいですか? ハードウェアコーデックのビデオビットレートをオンザフライで変更できます。これは、フレームをドロップしたり、最大許容ビットレートに人為的な上限を課したりするよりもはるかに優れています。
詳細情報: これは現在 Montavista 2.6.10 ベースのカーネルを実行している 200MHz ARM9 です。
アップデート:
- ファイルシステム SYNC をマウントすると、スループットが大幅に低下します。
- リムーバブル メディアは FAT/FAT32 でフォーマットされており、メディアを任意の Windows PC に接続して読み取ることができるように設計されている必要があります。
- たとえば、定期的に sync() または fsync() を呼び出すと、毎秒定期的なストールが発生し、スループットが許容できないほど低下します
- fopen() などではなく、write() と open(O_WRONLY | O_CREAT | O_TRUNC) を使用しています。
- 上記の「Linuxリアルタイムファイルシステム」についてオンラインですぐに見つけることができません。リンク?
これが理にかなっていることを願っています。stackoverflow に関する最初の組み込み Linux の質問は? :)
operating-system - ファイルの変更時間とファイルの変更時間の違いは何ですか?
ファイル変更時間とファイル変更時間という用語を混同しています。誰かがそれをより明確にするのを助けることができますか?
filesystems - Web ホスティング Web サイトのファイル保存戦略
ユーザーが送信するファイルをホスティングします。ファイルからデータを取得し、それをディレクトリに移動する必要があります。
このファイルの存続期間には、2 つの興味深い点があります。1 つ目はデータが抽象化されているときで、2 つ目は共有できるようにファイルがアーカイブされているときです。
データが抽象化されている場合、ファイルの名前を一意のものに変更するか、一意の文字列をファイル名に追加して、他の既存のファイルを上書きしないようにすることを考えました。
ファイルをアーカイブするとき、私は 3 つの方法を考えました。1 つは、特定のデータからアップロードされたすべてのファイルを 1 つのフォルダーに保持することです。(2006/sept/04, 2008/jan/05) もう 1 つは、フォルダーを保持し、フォルダーに保持したいファイルの最大数までそれをいっぱいにしてから、別のフォルダーを作成することです (/folder001/、/folder002/、 /folder003/ など)。もう 1 つは、あるしきい値に達したらサブフォルダーを作成することです。(/j/jd/jde/jdelator) のように、これを unix で見たことがありますが、これを説明する方法がわかりません。
私が持っている質問は、皆さんが有用だと思った、または使用した戦略の種類は何ですか?
macos - OS X でディレクトリへのハードリンクを作成する Unix コマンドは何ですか?
OS X でディレクトリを指すハードリンク (シンボリックリンクや Mac OS エイリアスではなく) を作成するにはどうすればよいですか? コマンド「ln target destination」は既に知っていますが、それはターゲットがファイルの場合にのみ機能します。Mac OS では、他の Unix 環境とは異なり、フォルダーへのハードリンクが許可されていることは知っていますが (たとえば、これは Time Machine で使用されます)、自分で行う方法がわかりません。
file - 同じ親ディレクトリに同じ名前のファイルとディレクトリ - Solaris 8、ufs
わかりました、私は 10 年以上にわたって Solaris を使用してきましたが、これを見たことがありません...
同じ名前のファイルとサブディレクトリの両方を含むディレクトリ リストがあります。
file を使用してファイルの内容を検出すると、次のようになります。
ファイルは気にしていませんが、ディレクトリは残しておきたいので、rm してみます。
だからここに私の2つの部分の質問があります:
- これどうしたの?
- ファイルを慎重に削除するにはどうすればよいですか?
ジョナサン
編集:答えてくれてありがとう、両方(これまでのところ)役に立ちましたが、リストをエディターにパイプするとうまくいきました。
含まれるもの:
バックスペースキーには常に注意してください!
file - ファイル複製ソリューション
ファイルを定期的にディスクにドロップして、同じデータセンター内の他の複数の Windows サーバーにレプリケートする、Windows でホストされるビルド プロセスについて考えてみます。他のマシンは IIS を実行し、それらのファイルを大衆に提供します。
コーパスの合計サイズは、数百万のファイル、数百 GB のデータになります。ターゲット サーバーで発生する可能性のある競合、WAN 経由などの潜在的なリンク、コールド スタートのクリーン サーバーに対処する必要があります。
これまでに考えた解決策:
- キューに入れられたシステムとデーモンは定期的に起動し、サービスとしてコピーまたは実行されます。
- SAN - 高価、複雑、より高価
- ROBOCOPY、時限ジョブ - シンプルだが効果的。多くの内部/不確定な状態、たとえばコピー中の場所、エラー
- 既製の交換品。ソフトウェア - SAN よりも安価ですが、それでも高価です
- UNC 共有フォルダーであり、repl はありません。待ち時間が長く、コストが低い - クラスタリング ソリューションも必要です。
- DFS レプリケーション。
他の人は他に何を使用しましたか?
filesystems - ファイル データをディスクの破損から保護するにはどうすればよいですか?
最近、 「SATA vs. SCSI の信頼性」という記事を読みました。主に、一般消費者向け SATA ドライブの非常に高速なビット フリッピングについて説明し、「現在、特定のディスクからすべてのデータを読み取ることができない可能性は 56%」と結論付けています。Raid-5 でさえ問題を常にスキャンする必要があるため、私たちを救うことはできません。
考慮事項:
Raid-Zを使用した Sun のZFSについて素晴らしいことを聞いたことがありますが、Linux と BSD の実装はまだ実験段階です。まだ全盛期の準備ができているかどうかはわかりません。
また、 Par2ファイル形式についてもかなり読んだことがあります。各ファイルと一緒に追加の % パリティを保存すると、ほとんどの問題から回復できるようです。ただし、これを内部で行うファイル システムは認識しておらず、個別のファイルを管理するのは難しいようです。
バックアップ (編集):
バックアップが最重要であることは理解しています。ただし、何らかのチェックを行わないと、知らないうちに悪いデータを簡単に送信してしまう可能性があります。また、どのバックアップにそのデータの適切なコピーがあるかを判断するのも難しい場合があります。
たとえば、Raid-5 アレイを 1 年間実行していて、破損したファイルを見つけたとします。適切なコピーが見つかるまで、バックアップのチェックに戻る必要があります。ファイルを含む最初のバックアップに移動するのが理想的ですが、ファイルが何度も編集されている場合は特に、それを特定するのが難しい場合があります。さらに悪いことに、破損が発生した後にそのファイルが追加または編集されたかどうかを検討してください。それだけで、Par2 などのブロック レベルのパリティを使用するのに十分な理由になります。
linux - LIFでフォーマットされたディスクをバックアップする方法は?
バックアップしたい古い 3.5 インチ フロッピー ディスクがいくつかあります。ディスクのイメージを作成しようとして失敗しました。UNIX ユーティリティ dd_rescue を使用してみましたが、カーネルが開こうとすると ( /dev/fd0
) カーネル エラーが発生し、
一部のフロッピーは LIF ファイル システム フォーマットを使用しているため、イメージが必要です。私が何をすべきかについて誰か考えがありますか?
HP は現在、Agilent が LIF フォーマットのディスク上のファイルを読み書きできるツールをいくつか作成しています。これらのツールを使用して、ファイルをローカル ディスクにコピーおよび変換できましたが、その過程で一部のデータを失う可能性がありました。つまり、LIF から他の形式に変換して LIF に戻すと、一部の情報が失われます。
ディスク上の raw バイトをバックアップしたいだけで、ファイル システムの種類は気にしません。
c# - 著者、タイトル、mp3タグなどを含むすべてのファイル属性を1回のスイープで取得する方法
Windowsフォルダー内のファイルのすべてのメタデータ(高度な要約プロパティを含む)をcsvファイルに書き込みたいです。すべての属性を収集する方法はありますか?mp3ファイルにはjpgファイルとは異なる属性のセットがあるようです。(c#)
これはスクリプト(vb、perl)にすることもできます
更新:libextractorを見ると(ありがとう)、ファイルの種類ごとに異なるプラグインを作成することで、これを実現できることがわかります。私はこのメタデータを収集しますが、単純なコレクションではありません...
c# - 隠しフォルダの作成
c# 内からストレージ デバイスに隠しフォルダーをプログラムで作成する (そしておそらくアクセスする) 方法はありますか?