問題タブ [ramdisk]
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 での小さな RAM ディスクに最適なファイル システムは何ですか?
私が取り組んでいる組み込み Linux システムには、4MB の RAM ディスクがあります。現在、ext2 でフォーマットされています。空の状態でも、空き容量は 50% ほどしかないそうです !
現時点では、合計約 300KB の約 50 個の小さい (1 または 2KB) ファイルに使用されます。
この場合に使用するより良いファイル システムはありますか (FAT32?)。
RAMディスクをこれ以上大きくすることはできません。このシステムには合計 512MB の RAM しかありません。何年も前から非常に特殊なバージョンの Debian を実行していますが、これも変更できません。
編集: これは、私が説明したものとは異なる問題のようです。再起動したばかりで、空の場合、RAM ディスクは 1% しか使用されていません。
performance - Ramdisk での greenplum の実行に関する記事
Ramdisk での Greenplum の実行に関する適切な記事はどこにありますか? Ramdisk での postgres の実行に関する記事はたくさんありますが、Greenplum については見つかりませんでした。誰か助けてくれませんか?
memory - solaris 10 (sparc64) ramdisk (shmfs や tmpfs など)
Linux には ramdisk 機能があり、次のように tmpfs の shmfs をマウントすることで実現されます。
また
また、一部の Linux にはramfs
、「ramfs は shmfs に似ていますが、ページがページング可能またはスワップ可能でない点が異なります」があります。
大きなサイズ(数十GB)のsolaris 10(sparc64)でramdiskを作成したい。ソラリスでこれを行うにはどうすればよいですか? solaris で ramdisk だけでなく、スワップ不可能な ramdisk を作成するにはどうすればよいですか?
次に、ramdisk の大きなファイルを使用してメモリを 32 ビット プロセスに mmap したいので、このソリューションでは、ファイルの小さな部分を ramdisk から 32bit アプリケーションに mmap できるはずです。
c - FAT12 / FAT16-セクター数を決定するものは何ですか?
現在、Ramdiskのソースコードを読んでいます。そして、RamDiskFormatDisk関数で、問題が発生します。
コードの一部は次のとおりです。
その意味を私に説明してもらえますか?
python - 変換および削除される画像にRAMディスクを使用する必要がありますか?
私はここに古いマシンで実行される小さなプログラム(python 2.7)を持っています、そしてそれは基本的に外部バイナリを実行することによって(タイムラプスのために)写真を取得し続け、ディスクスペースを節約するためにそれらを効率的なフォーマットに変換します。
ディスク操作はすでにかなり古く、もう少し長持ちさせたいので、最小限に抑えたいと思います。
この時点で、プログラムはカメラからディスクにデータを書き込み、それを変換して元のデータを削除します。ただし、すべてのイメージに対してそれを行います。1-ディスクに大きなファイルを書き込み、2-変換するために読み取り、3-そして削除します...不要でRAMで実行できる一連のディスク操作、元のファイルを保存する必要はなく、別のファイルを作成するための基礎としてのみ使用されるためです。
私はramdiskが解決策であると確信していました、そしてそれを行う方法をグーグルで調べました、そしてグーグルは私にramdiskの使用を思いとどまらせるたくさんのリンクを返しました、理由はたくさんあります:それらは現代のシステムでは役に立たないからです(私はかなり新しいLinuxカーネルを実行している); これらは、ディスクにヒットしてはならないデータを復号化する場合にのみ使用する必要があります。一部のテストでは、ramdiskが実際にはhdよりも遅い可能性があることが示されています。オペレーティングシステムにはキャッシュがあります。
だから私は混乱しています...
この状況では、RAMディスクを使用する必要がありますか?
ありがとうございました。
PS:詳細が必要な場合:独自の高解像度カメラと、単一の画像をキャプチャするために実行する独自のバイナリがあります。巨大なTIFFファイルであるファイルを書き込む場所を指定してから、 pythonプログラムは、imagemagickからの変換プログラムを実行してJPEGに変換し、tar.bz2で圧縮するため、品質はほぼ同じですが、ファイルサイズはTIFFの1/50です。
linux - ディスク上のUNIXソケットファイルとubuntu上のtmpfs
tmpfs/ramdisk (ubuntu) ではなくディスクに unix ソケット ファイルを配置すると、速度に違いはありますか?
java - solaris 10、Java 6、file.exists で既存のファイルが表示されない
何百万もの小さなファイルを tar アーカイブに構成するコードがあるため、solaris マシンの /tmp フォルダーを使用することにしました。次に、ramdisk を作成し、/tmp の代わりに、作成した ramdisk (/ramdata) を使用します。これが、ミッションを達成するために行ったことです。
最初に tar アーカイブを ramdisk に作成してからターゲット ディレクトリに移動しようとしましたが、そうすると、java の File.exists() はファイルが存在する場合に true を返すことができませんでした。次に、ディレクトリをディスク上のディレクトリ (opt/dist/dist1/cdrepo) に変更して、tar ファイルを配置しました。tar ファイルはそこに正常に作成されましたが、ファイルが存在する場合に File.exists() が true を返すことができませんでした。
次に、この投稿Alternative to File.exists() in Java を見て 、それに応じてコードを変更して、NFS がキャッシュをリセットするようにしましたが、どちらも機能しませんでした。
なぜそれが起こるのか、どうすればこの問題を解決できるのかについて、誰かが解決策やアイデアを提案できますか? ありがとうございます。
私は Java6U21 を使用しています。これは Solaris 10 マシンです。
以下は私の試みの最終的なコードです..:コードには、以前の試みからいくつかの兆候があることを知っています-たとえば、ファイルオブジェクトをインスタンス化し、fileExists変数でその存在を確認する場所など...-それは間違いなく機能しません予想されますが、今のところ、File.exists() の真の結果を見ようとしているだけなので、無視します。主な例外は czf.take_md5 メソッドの行にあり、その最初の行はFileInputStream fis = new FileInputStream(filename);
出力は次のとおりです。
そして、これはJayanが提案したTRUSSコマンドの出力です:パスを解決できないようです:(しかし、私はUNIX Linuxが苦手なので、それが何を意味するのかほとんど理解できません..
mysql - 永続性のためにスレーブを使用してメモリ内で MySQL を実行する
書き込みパフォーマンスを最大化する必要があり、数分間のデータ損失のリスクを冒しても構わないと仮定しましょう。私のユースケースは、数時間のアクティビティの「バースト」であり、それはおさまります。ワークロードは追加が多いです。
議論のために、データはそれほど緊急ではないので、数分間のデータ損失が遅いサーバーと同じくらい多くの問題を引き起こすと仮定しましょう。私の手に負えない理由により、マスターは EC2 で実行する必要があるため、ディスク速度が問題になる可能性があります。
私の潜在的にクレイジーなアイデアは、完全に RAM で (MEMORY テーブルとして、または RAM ディスクにバックアップされた InnoDB として) 実行されるマスター データベースを用意し、わずかに遅延した持続性のためにスレーブにレプリケートすることです。何がうまくいかないのでしょうか?
c# - I/O 単体テストに Memory Disk を使用する
私はC#で次の設定をしています-コンストラクターでフォルダーパスを取得するコンポーネントがあり、後でいくつかの巨大なデータがそれによって処理され、いくつかのファイルの形式でディスクに書き出されます(約1Gbの大きさのオーダー、非常にIO集中的な)。取得時に、データが読み込まれ (これも IO が集中します)、単体テスト (MOQ を使用した nunit、実際にはコンポーネント テストとしてセットアップ) で元のデータと比較されます。問題 - 単体テストが完了するまでに数分かかり、非常に面倒です。テスト フィクスチャのセットアップで RAMDrive または RAMFolder を作成し、分解して削除する方法はあるのでしょうか。コンポーネントの外部では、どのファイルが正確に使用されているかを誰も知らないはずなので、メモリファイルまたはメモリストリームを使用できません。
何か案が?
よろしく、 ペトル
linux - Linux:ステータスを小さなファイルに書き込むことがよくあります。どこですか?
私のこのプログラムには、他の人が読めるようにそのステータスを公開してほしい。最初に頭に浮かぶのはこれをファイルに書き込むことですが、私のプログラムの流れはこのステータスを1秒間に数回更新するのに便利であり、毎回ディスクに書き込むのはばかげています。
たとえば、RAMディスクを手動でどこかにマウントせずにファイルシステムで利用できる、このファイルをメモリのみに保存する方法はありますか?
私のプログラムはPythonで書かれており、そのステータスを読んでいる人は何でもかまいません。