問題タブ [xfs]
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 - Linuxで最大1,000万個のファイルを保存してアクセスする
私は約1000万までのたくさんのファイルを保存する必要があるアプリを書いています。
それらは現在UUIDで名前が付けられており、それぞれ約4MBになりますが、常に同じサイズになります。これらのファイルの読み取りと書き込みは常に順次行われます。
私が答えを求めている2つの主な質問:
1)これに最適なファイルシステムはどれか。XFSまたはext4?2)単一のディレクトリ内のファイルの数を減らすために、サブディレクトリの下にファイルを保存する必要がありますか?
質問2については、1つのディレクトリに保存できるファイル数のXFS制限を見つけようとしましたが、数百万を超える制限を見つけられなかったことに注意してください。彼らはパフォーマンスの問題はないと述べた。ext4の下ではどうですか?
同様のことをしている人たちと一緒に調べて、パフォーマンスのためにファイル名ではなくファイルへのリンクとしてiノード番号を保存することを提案する人もいました(これはデータベースインデックスにあります。私も使用しています)。ただし、iノード番号でファイルを開くために使用できるAPIが表示されません。ちなみに、これは、ext3でのパフォーマンスを改善するための提案であるように思われました。
ext4とXFSの制限は何ですか?どちらか一方からどのようなパフォーマンス上の利点がありますか?私の場合、XFSよりもext4を使用する理由を理解できますか?
filesystems - posix read() のレイテンシ
読み取り時のレイテンシ スパイクが非常に悪いという意味で、非常にレイテンシの影響を受けやすいアプリケーションがあります。
私は XFS と ext4 をテストしました。ファイルに O_ASYNC を書き込み、最後に fdatasync() を書き込むと、読み取りレイテンシーが 1 秒以上急上昇する可能性があります。
次に O_SYNC を試してみたところ、読み取りレイテンシーがはるかに安定しましたが、ファイルへの書き込みは非常に遅くなりました。
そこで、O_ASYNC を書き込んで、ファイルに書き込まれる 5 メガバイトごとに同期しようとしましたが、その速度と読み取りレイテンシーもかなり安定しています。
ただし、30 分でも 1 秒以上かかる読み取りを取得できます。
Linux で遅延の影響を受けやすいアプリケーションを構築した場合、ファイルシステムの操作にどのように対処しましたか? または、まったく使用せずにデバイスを RAW デバイスとしてマウントしましたか?
linux - xfs - ファイルへの書き込み時に mtime を変更しない方法は?
a.dat
1GBのファイルがあり、ディスク上にあります。パフォーマンス上の理由から、新しいファイルを作成してファイルを拡張するのではなく、このファイルを再利用して必要に応じてその内容を上書きするだけです (拡張操作ごとに inode のサイズを更新する必要があります)。
私はさらにパフォーマンスを絞り込もうとしており、man ページでopenとmountを検索して、ファイルの mtime と ctime がいつ更新されるかを調べました。私の理解では、ファイルの内容を変更するたびに、mtime や ctime が更新されます。これが xfs の仕組みですか?
もしそうなら、Linuxでこれを無効にする方法はありますか? 私は mtime と ctime を気にせず、書き込み操作ごとにそれらを更新するコストを負担したくありません。
最終的には、ファイルシステムを完全に取り除き、デバイスに直接書き込みますが、当面はファイルシステムでこれを行う方法があることを願っています。
回答に応じて編集
明確にするために、私はSSDに書き込んでおり、SSDから可能なすべての操作を絞り出すことが非常に重要です。SSD は理論的には 1 秒あたり 25,000 の操作を処理できますが、これらのそれぞれが私にとって重要です。ファイルへの書き込み以外にそれらを無駄にしたくありません。その点で、実際には、書き込み先のディスクに 1GB のファイルが 200 個あります。上記の質問で問題を単純化しようとしていました。
さらに、各書き込みは同期する必要があり、ビットがディスク上にあることを確認するまでプログラムは続行されません (これは可能です)。しかし、このメモは質問に接していると思います。
centos - centos5.5でXFSファイルシステムの圧縮を有効にする方法は?
ファイルシステムタイプを「XFS」として使用していますが、XFSファイルシステムの圧縮を有効にしたいです。ネットサーフィンをしましたが、関連データが見つかりませんでした。XFSファイルシステムの圧縮を知っている人がいたら、私に知らせてください。
みんなありがとう、
sync - boost::filesystem::create_directories() によって作成されたディレクトリにすぐにアクセスできませんか?
boost::filesystem::create_directories()
新しいディレクトリを作成するために使用しています。作成直後にこれらのディレクトリにアクセスしようとすると、「そのようなディレクトリはありません」というエラーが表示されます。しかし、ディレクトリを作成した後にしばらくスリープすると、すべて問題ありません (エラーは発生しません)。また、ディレクトリを作成した後にfsync()
andを使用してみましたが、違いはありませんでした。sync()
ext4 および xfs ファイル システムでテストしており、ブースト バージョンはブースト 1.44 です。
私の質問は
boost::create_directories()
ディレクトリを即座に作成しますか? それとも何かが間違っている可能性はありますか?- また、ext4/xfs ですべてをディスクにフラッシュすることが
sync()
保証fsync()
されていますか?
centos - Cutycapt、wkhtmltopdf、wkhtmltoimage、phantomjsが文字を正しく表示しない
彼らが表示しているのは英語の文字だけです。
印刷されたページのレイアウトは本来あるべきものですが、間違っているのは、英語(ローマ字)以外のスクリプトの文字がボックスに置き換えられていることだけです。
私はすでにxvfbとフォントをインストールしましたが、それでも以下のエラーが発生します
さて、別のエラーもランダムに発生し始めました
私はこれらのエラーを修正するために一日を費やしました、そして私はただイライラしています。
CentOSを実行しています(Linux 2.6.18-274.7.1.el5xen#1 SMP Thu Oct 20 17:06:34 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux)
filesystems - XFS 事前割り当てブロックの数を変更するには?
簡単なプログラムを作成し、そのプログラムを ext4 と xfs で実行しました。
ext4 の出力:
st_blocks: 8 st_blocks: 8 st_blocks: 8
xfs での出力:
st_blocks: 128 st_blocks: 128 st_blocks: 8
次に、xfs について調べたところ、mkfs.xfs の実行中にエクステント サイズを変更するオプションが見つかりました。
例: mkfs.xfs -r extsize=4096 /dev/sda1
それでも、XFS でも同じ出力が得られます。st_blocks を変更する方法について、誰でもより多くの洞察を提供できますか。前もって感謝します。
c - XFS でのエクステントの作成/変更
ディスク間のデータ重複排除スキームに取り組んでおり、XFS 内部を掘り下げてファイルのエクステントを作成/変更する方法を知りたいと思っています。
これが私がやりたいことの例です。ファイルがあるとします:
ブロックサイズは 8 バイトです (bippity と改行には十分です)。
今、私はファイルを次のように変更します
最初の行のみが変更されました。最初の行のエクステント (またはブロック) を作成し、そのエクステントにデータを書き込み、そのエクステントを既にディスクにあるエクステントと結合するファイルを作成したいので、変更は 1 つだけです。ディスクに押し出されます。
これは xfs (または、一般的なファイル システム) で可能ですか? 核心を突いても構いませんが、この特定の主題に関する多くの情報を見つけることができないようです。
linux - Linux でファイルを移動する際の競合状態
2 つのスクリプトがあるとします。最初のものは (mv コマンドを使用して) いくつかのファイルをディレクトリに置き、2 番目のものは時々ディレクトリをチェックしてファイルを処理します。私が懸念している状況は、2 番目のスクリプトが、現時点で部分的にしか移動されていないファイルの処理を開始するときです。これは、XFS ファイル システムで実際に発生する可能性がありますか?
ruby - XFS ファイルシステムがプログラムによって凍結されているかどうかをどのように判断しますか?
私は単純な EC2 スナップショット スクリプトを作成しており、ファイル システムが凍結されているかどうかを知る方法があるかどうかを判断する必要があります。現在のところ、フリーズしたファイルシステムに対して何かをしようとすると、スクリプトがハングします (bash シェルでもハングします)。
ファイルシステムが凍結状態にあるかどうかを知るコマンドまたは方法はありますか?
ありがとう!