問題タブ [tmpfs]
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 のプロセス間の write(2)/read(2) アトミック性
同じファイルに作用する 2 つのプロセスがある場合があります。1 つはライターとして、もう 1 つはリーダーです。ファイルは 1 行のテキスト ファイルで、ライターはループ内でその行を書き直します。リーダーは行を読み取ります。擬似コードは次のようになります。
ライター プロセス
読者のプロセス
readbuf
両方のプロセスをしばらく実行した後、 が または のいずれかxxxxxxxxxxxxxxxxyy
であることがわかりましたyyyyyyyyyyyyyyyyxx
。
私の理解では、書き込みは最大 512 バイトのサイズでアトミックになるということでした。しかし、私の実験では、アトミック性は 16 バイトのみのようです。
man ページには、通常のファイルのアトミック性については何も記載されていません。512 バイトのパイプのアトミック性についてのみ言及されています。
tmpfs と ext4 でこれを試しましたが、結果は同じです。を使用するとO_SYNC
、ext4 の書き込みがアトミックになり、ディスクにヒットするまで書き込みが返されないため、理解できO_SYNC
ますが、tmpfs ( /dev/shm
) には役立ちません。
lua - 実行後に Lua tmpfile を保持する
tmpfile() として表されるファイルをアップロードし、削除してスクリプトを終了します。tmpfile を削除した後、このファイルをハードリンクしてコンテンツを保持する方法は?
ハンドルでファイルの名前を取得する方法は?
このファイルは大きすぎて、別のファイルにバイト単位でコピーできません。
linux - docker コンテナのディスク容量の使用状況を理解する方法は?
ホストのディスク容量の使用状況は次のとおりです。
Docker コンテナーを起動した後、このコンテナーのディスク使用量は次のようになります。
2
コンテナ ディスクの使用について質問が あります。
(1) コンテナ内のtmpfs
と/dev/mapper/rhel-root
は、ホストと同じディスク/メモリ空間を直接共有していますか?
(2)rootfs
コンテナの場合、このファイルシステムはどこにありますか? 印刷されている99G
ように、 があるので、すべての99G
ディスク容量を使用できますか?
mysql - Vagrant で MySQL に tmpfs を使用しようとするとエラーが発生する
Symfony を実行するための Vagrant マシンがあり、MySQL データベースと多くの対話を行います。少し高速化するために、データディレクトリに tmpfs ファイルシステムを使用することを考えました。データディレクトリは /var/lib/mysql にあるので、私が試したのは次のとおりです。
1) mysql サービスを停止します。sudo service mysql stop
2) tmpfs をマウントします。sudo mount -t tmpfs -o size=512M tmpfs /var/lib/mysql
3) mysql を起動します。sudo service mysql start
そして、次のエラーが表示されます。
systemctl status mysql.service
出力は次のとおりです。
あまりにも多くの情報を提供しない...これをデバッグする方法または私が間違っていることについてのアイデアはありますか? ありがとう!
filesystems - tmpfs で Linux ドライバーのコード セグメントを見つける方法は? (リアルタイム)
私はdrv1というキャラクタードライバーを持っており、ユーザーアプリケーションはioctl
それと通信するために使用し、パラメーターを送信しますstruct file *filp
。drv1のコード セグメントのアドレスを知りたいのですが、いくつかの問題に遭遇しました。
最初はstruct file *filp
便利かもしれないと思ってソースコードの定義を見て、ポインタを見つけましたstruct inode *f_inode; /* cached value */
。そこでざっくりと定義を調べてみましたstruct inode
(tmpfsのときは詳しくないので正しいかどうかわかりませんが); struct address_space *i_mappingという名前のポインターが必要なようです。しかし、深く掘り下げて行き詰まる方法がわかりません。には、次のような複雑なデータ構造がいくつかありますstruct address_space
。
と
ドライバdrv1のデータは、という形で整理されているということradix_tree_root
でしょうか。それとも、何か他のものを見逃したということですか?
python - python: IOError: [Errno 36] ファイル名が長すぎます:
次のように(CentOS 6.5の下で)tmpfs内にファイルを作成したい:
しかし、IOError: [Errno 36] File name too long: ...
エラーが発生しました。どうすれば修正できますか?