巧みにlinuxクラウドサーバーの下の/dev/shm/を使って、ディスクIOが力を与えない方法を避ける
tmpfsはLinux/Unixシステム上のメモリベースのファイルシステムである。tmpfsは、メモリまたはswapパーティションを使用してファイルを格納できます。このことから,tmpfsは主に一時保存されたファイルを格納する.次の2つのメリットがあります。
1)動的ファイルシステムのサイズ。 2)tmpfsのもう一つの主要な利点は稲妻のような速度である。仮想メモリは本質的に失われやすいため、tmpfsデータは再起動後も保持されないという欠点もあります。ロード、バインドなどのスクリプトを行う必要があります。tmpfsは持続性がなく、再起動後もデータは保持されませんので、ご注意ください!!!
[root@AY1212111202285f63122 ~]# df -h Filesystem
Size Used Avail Use% Mounted on /dev/hda1
20G 7.6G 11G 42% / tmpfs
250M 0 250M 0% /dev/shm
tmpfsはメモリベースのファイルシステムであり、作成時にmkfsなどの初期化を使用する必要はありません。/dev/shm tmpfsサイズを512 Mに変更し、/etc/fstabを変更したい場合:
tmpfs /dev/shm tmpfs defaults 0 0
に改心
tmpfs /dev/shm tmpfs defaults,size=512m 0 0
次にmount-o remount/dev/shmを実行します
[root@AY1212111202285f63122 ]# mount -o remount /dev/shm [root@AY1212111202285f63122 ]# df -h Filesystem
Size Used Avail Use% Mounted on /dev/hda1
20G 7.6G 11G 42% / tmpfs
512M 0 512M 0% /dev/shm
どうですか、512 Mになりました。使いやすいでしょう。再起動しても問題ありません。ははは。もちろん、本番環境ではメモリを大きくすることができます。どうせ今はメモリが安いので、性能を高めるために/dev/shmを大きくする必要があります。
二.tmpfs(/dev/shm)の使用と応用シーンtmpfsはメモリベースで、速度は言うまでもなく、ハードディスクとは比べものにならない。OracleのAutomatic Memory Managementプロパティでは、/dev/shmが使用されます。また、サイト運営でtmpfsをうまく利用すれば、思いがけない収穫になります。まず/dev/shmにtmpを現在作成し、/tmpにバインドします。
[root@AY1212111202285f63122 ~]# mkdir /dev/shm/tmp
[root@AY1212111202285f63122 ~]# chmod 1777 /dev/shm/tmp //注意权限
[root@AY1212111202285f63122 ~]# mount --bind /dev/shm/tmp /tmp
[root@AY1212111202285f63122 ~]# ls -ld /tmp drwxrwxrwt 2 root root 40 May 29 21:46 /tmp
以下の/tmpはtmpfsファイルシステムのいくつかの応用例を使用して、一般的にtmpfsメモリファイルシステムはwebキャッシュ、cache、一時ファイルストレージを行う時にwebアクセスに対してとても良い加速作用があって、それによってウェブサイトアクセスの速度を高めます。
(1)squidのキャッシュディレクトリcache_dir/tmp下に置くvi /etc/squid/squid.conf
変更
cache_dir ufs /tmp 256 16 256
ここで最初の256は256 Mメモリを使用してsquidサービスを再起動し、キャッシュディレクトリがtmpfsファイルに格納されていることを示しています。速度は言うまでもありません。
(2)phpのセッションファイルを/tmpの下に置くアクセス量の大きいapache phpのサイトでは、seesionやキャッシュファイルなどのtmpの下の一時ファイルが多い場合があります。tmpfsファイルに保存できます。seesionを保存する方法は簡単です。phpを変更すればいいです。iniでいいです。phpinfoテストファイルでphpセッションの格納場所を確認し、/tmpでなければphpを変更します。iniファイル、以下のように変更します。
session.save_path = “/tmp”(3)サービスのsocketファイルを/tmpの下に置く
例えばnginx.ソケットとmysql.sock 。
tmpfsの他の応用については、この文章を通じて啓発されるかもしれないと思います。再度強調します:tmpfsデータは再起動後も保持されず、tmpfsデータを再起動すると失われるので、ロード、バインドなどのスクリプトを行う必要があります。読んでくれてありがとう。皆さんの役に立つことを望んでいます。引き続き注目してください。私たちはもっと優秀な文章を分かち合うように努力します。