Linuxのtmpfsとは何ですか

青灯夜游
リリース: 2023-04-10 17:35:15
オリジナル
5083 人が閲覧しました

Linux では、tmpfs は一時ファイル システムを指します。これは、ユーザーのメモリまたはスワップ パーティションを使用してファイルを保存できるメモリベースのファイル システムです。簡単に言えば、tmpfs は主に一時ファイルを保存します。 tmpfs システムの利点: 1. 動的なファイル システム サイズ、2. 超高速。

Linuxのtmpfsとは何ですか

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Tmpfs とは

tmpfs (一時ファイル システム) は、Linux/Unix システム上のメモリベースのファイル システムです。 tmpfs は、メモリまたはスワップ パーティションを使用してファイルを保存できます。 tmpfs は主に一時ファイルを保存していることがわかります。

Tmpfs は仮想ディスクの ramdisk に似ていますが、まったく同じではありません。ramdisk と同様に、tmpfs は RAM を使用できますが、ストレージにスワップ パーティションも使用できます。また、従来の ramdisk はブロック デバイスであるため、 mkfs を使用する必要があります 実際に使用する前にフォーマットする必要があります。tmpfs はブロック デバイスではなくファイル システムであり、インストールするだけで使用できます。 tmpfs は、最高の RAM ベースのファイル システムです。

利点:

1. 動的ファイル システムのサイズ。

2. tmpfs のもう 1 つの大きな利点は、その超高速性です。一般的な tmpfs ファイル システムは完全に RAM に常駐するため、読み取りと書き込みはほぼ瞬時に行われます。同時に、仮想メモリは本質的に揮発性であるため、再起動後に tmpfs データが保持されないという欠点もあります。したがって、ロードやバインドなどの操作を実行するいくつかのスクリプトを作成する必要があります。

注: tmpfs には永続性がないため、再起動後はデータが保持されません。注意してください。

日常業務で、Linux サーバーのディスクのマウント状況を確認する必要がよくあります。df コマンドを使用できます。このコマンドを使用すると、システム ディスクの確認だけが行われるわけではないことに気づいたでしょうか。とデータ ディスクのマウント ステータスが表示され、tmpfs もマウントされていることもわかります。

[root@test ~]# df -hT
 
Filesystem     Type   Size  Used Avail Use% Mounted on
 
/dev/vda1      ext4    40G  1.1G   37G   3% /
 
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
ログイン後にコピー

同時に、この tmpfs のサイズが 499M で、メモリの約半分であることがわかります。

[root@test~]# free -m
 
             total       used       free     shared    buffers     cached
 
Mem:           996        124        872          0          7         57
 
-/+ buffers/cache:         59        936
 
Swap:            0          0          0Swap:      2064376          0    2064376
ログイン後にコピー

df を見ると、tmpfs が /dev/ の下の shm ディレクトリにマウントされていることがわかります。tmpfs とは何ですか? 実際にはメモリ内に常駐する一時ファイル システムなので、/dev/shm/ このディレクトリはハードディスク上ではなく、メモリ内にあります。メモリ内にあるため、読み書きが非常に速く、高速なアクセス速度を実現できます。 Linux では、tmpfs のデフォルトの最大サイズはメモリの半分です。df -h コマンドを使用して確認しましたが、df によって表示されるマウントされたメモリ サイズの値は、使用されていなければ実際には占有されていません。実際に使用されるのは tmpfs だけであり、データが格納される場合にのみ占有されます。たとえば、tmpfs サイズが 499M の場合、10M が使用されると、10M が実際にメモリで使用され、残りの 489M はサーバー上の他のプログラムで引き続き使用できます。ただし、データはメモリ内にあるため、停電後はファイルが失われ、メモリ内のデータはハードディスク内のデータのように永続的に保存されるわけではありません。 tmpfs の特性を理解すると、サーバーのパフォーマンスを向上させ、高い読み取りおよび書き込みパフォーマンスを必要とする一部のデータを /dev/shm に保存してアクセス速度を向上させることができますが、そのデータは失われる可能性があります。

Tmpfs のサイズ設定

アプリケーションが Tmpfs を使用するときに、アプリケーションが占有するメモリが展開中に適切に評価されない場合、Tmpfs がいっぱいになることがあります。このとき、Tmpfs のサイズを調整する必要があります。もちろん、調整したサイズはマシンのメモリ サイズより大きくすることはできません。それ以外の場合は、マシンを変更するか、アプリケーションを最適化するしかありません。

[root@test]# mount -o remount,size=777M tmpfs /dev/shm
 
[root@test]# df -hT
 
Filesystem     Type   Size  Used Avail Use% Mounted on
 
/dev/vda1      ext4    40G  1.1G   37G   3% /
 
tmpfs          tmpfs  777M     0  777M   0% /dev/shm
ログイン後にコピー

この変更は一時的な変更であり、再起動すると通常に戻り、メモリのサイズが半分に戻ります。

永続的な変更が可能

vim  /etc/fstab 
 
把tmpfs这一行改为:
 
tmpfs                   /dev/shm                tmpfs   defaults,size=777M     0 0
ログイン後にコピー

このように設定すると、再起動後に自動的に777Mのサイズでマウントされ、永続的に有効になります。

実践的な応用:

最後に、tmpfs の応用例についてお話しましょう。tmpfs は幅広い用途に使用できます。Linux では、一部のプログラムの一時ファイルを配置できます。 tmpfs. では、tmpfs がハードディスクよりも高速であるという事実を利用して、システムのパフォーマンスを向上させます。たとえば、Squid プログラムのキャッシュ ファイルを保存するために使用できます。もちろん他にも用途はありますが、tmpfs のマウントポイントは通常のディスクとして利用できるので、nfs の共有ディレクトリとしても利用できると考えるべきです。ただし、nfsd 共有に tmpfs を使用する場合は、ネットワーク カードの速度と tmpfs の読み取りおよび書き込み速度のどちらがボトルネックであるかを考慮する必要があります。ネットワーク カードの速度がボトルネックである場合は、nfs を使用して通常のディスク ディレクトリを作成するだけです。 tmpfs は再起動後に失われるため、nfs に tmpfs を使用する前に、まずディスクからコピーするか、他のサーバーから tmpfs への rsync を使用する必要があります。ファイルを更新するときは、まずディスク上のファイルを更新するか、rsync のソースを更新します。次に、プログラムをディスクまたは rsync から tmpfs に毎分同期するようにスケジュールされたプロセスを設定します。

tmpfs のその他の応用 この記事が皆さんの tmpfs 利用の一助になれば幸いです また、再起動するとデータが失われるので注意してください。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxのtmpfsとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート