亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行linux tmpfs與/dev/shm探討及其應用是什么

發布時間:2021-10-21 18:04:22 來源:億速云 閱讀:343 作者:柒染 欄目:云計算

如何進行linux tmpfs與/dev/shm探討及其應用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

什么是tmpfs?

tmpfs是Linux/Unix系統上的一種基于內存的文件系統。tmpfs可以使用您的內存或swap分區來存儲文件。由此可見,temfs主要存儲暫存的文件。

linux內核中的VM子系統負責在后臺管理虛擬內存資源Virtual Memory,即RAM和swap資源,透明地將RAM頁移動到交換分區或從交換分區到RAM頁,tmpfs文件系統需要VM子系統的頁面來存儲文件。 

VM由RM+Swap兩部分組成,因此tmpfs最大的存儲空間可達(The size of RM + The size of Swap)。 但是對于tmpfs本身而言,它并不知道自己使用的空間是RM還是Swap,這一切都是由內核的vm子系統管理的。tmpfs自己并不知道這些頁面是在交換分區還是在RAM中;做這種決定是VM子系統的工作。tmpfs文件系統所知道的就是它正在使用某種形式的虛擬內存。

tmpfs默認的大小是RM的一半,假如你的物理內存是1024M,那么tmpfs默認的大小就是512M

一般情況下,是配置的小于物理內存大小的。

tmpfs配置的大小并不會真正的占用這塊內存,如果/dev/shm/下沒有任何文件,它占用的內存實際上就是0字節;如果它最大為1G,里頭放有100M文件,那剩余的900M仍然可為其它應用程序所使用,但它所占用的100M內存,是不會被系統回收重新劃分的。

tmpfs基于內存,因而速度是相當的,另外tmpfs使用的VM資源是動態的,當刪除tmpfs中文件,tmpfs 文件系統驅動程序會動態地減小文件系統并釋放 VM 資源,當然在其中創建文件時也會動態的分配VM資源。另外,tmpfs不具備持久性,重啟后數據不保留,原因很明顯,它是基于內存的。

編譯內核時,啟用“Virtual memory file system support”就可以使用tmpfs,linux kernel從2.4以后都開始支持tmpfs。目前主流的linux系統默認已啟用tmpfs,如Redhat。

tmpfs應用

tmpfs是基于內存的,速度是不用說的,硬盤和它沒法比。

Oracle 中的Automatic Memory Management特性就使用了/dev/shm。

另外如果在網站運維中好好利用tmpfs,將有意想不到的收獲。

我們先在/dev/shm建一個tmp,并與/tmp綁定。

[root@GoGo shm]# mkdir /dev/shm/tmp

[root@GoGo shm]# chmod 1777 /dev/shm/tmp  //注意一下權限

[root@GoGo shm]# mount –bind /dev/shm/tmp /tmp

[root@GoGo tmp]# ls -ld /tmp

drwxrwxrwt 2 root root 40 Aug 29 23:58 /tmp

當然您也可以不綁定,直接mount在現有的安裝點上使用tmpfs,如:

#umount   /tmp

#mount  tmpfs  /tmp   -t tmpfs   -o size=512M

 

也很方便吧,不需要使用mkfs等命令創建。

 

以下/tmp使用tmpfs文件系統。

(1)將squid的緩存目錄cache_dir放到/tmp下

cache_dir ufs /tmp 256 16 256

重啟一下squid服務,這樣緩存目錄都放在了tmpfs文件中了,速度不用說吧。

(2)將php的session文件放在/tmp下

通過phpinfo測試文件查看你的php session存儲位置,如果不在/tmp下,修改php.ini文件,修改如下:

session.save_path = “/tmp”

當然如果您的網站訪問量比較大,可/tmp下設置分層目錄存儲session,語法如下:

session.save_path=”N;/save_path”,N 為分級的級數,save_path 為開始目錄。

(3)將服務的socket文件放在/tmp下

如nginx.socket和mysql.sock

Tmpfs大小調整

有時候,當應用程序使用到Tmpfs時,而在部署的時候如果沒有對應用程序占用的內存做足夠的評估時,就有可能把Tmpfs用滿,這個時候就需要調整Tmpfs的大小了,當然,調整的大小不能大于你機器內存大小,否則,你只能換機器了,又或是優化你的應用程序。

可以看到tmpfs的大小為3G,比如我們想調整到5G。

1) umount tmpfs

在這里要注意,由于umount 會把卸載tmpfs 文件系統,意味著你的應用程序使用的共享內存將會被刪除,如果數據較重要,在umount 前記得備份。

root@TENCENT64 /dev]# umount /dev/shmumount: /dev/shm: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))</P>

這里可以看到,umount失敗了,原因比較明顯,/dev/shm被其它進程使用了,所以在umount前需要把使用/dev/shm的所有進程都停掉。

如錯誤說明,可以使用fuser –km /dev/shm命令把加載的進程都kill掉,再進行umount

fuser –km /dev/shm
umount /dev/shm</P>

2) 調整tmpfs的大小

通過修改/etc/fstab文件來修改/dev/shm的容量,在文件中修改tmpfs行,如下:

tmpfs /dev/shm tmpfs defaults,size=600M 0 0

tmpfs /tmp tmpfs defaults,size=25M 0 0

修改后,重新mount tmpfs即可。

調整tmpfs大小大致有以下三種方法:

1.直接掛載到需要的目錄--比如系統的臨時目錄-可以根據實際需要掛載某個程序的臨時文件的目錄

[root@bys3 ~]# mount -t tmpfs -o size=20m tmpfs /tmp

[root@bys3 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 16G 10G 4.7G 69% /

/dev/sda1 99M 21M 74M 22% /boot

tmpfs 502M 0 502M 0% /dev/shm

tmpfs 20M 0 20M 0% /tmp

由于沒有掛載之前/tmp目錄下的文件也許正在被使用,因此掛載之后系統也許有的程序不能正常工作。可以寫入/etc/fstab,這樣重啟后也有效。

2./etc/fstab文件來修改/dev/shm的容量(增加size=100M選項即可),修改后,重新掛載即可:

[root@bys3 ~]# cat /etc/fstab 

LABEL=/ / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

tmpfs /dev/shm tmpfs defaults,size=600M 0 0

tmpfs /tmp tmpfs defaults,size=25M 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

LABEL=SWAP-sda3 swap swap defaults 0 0

/dev/sda5 swap swap defaults 0 0

[root@bys3 ~]# mount -a --測試/etc/fstab無錯誤,重啟OS系統

[oracle@bys3 ~]$ df -h  重啟后的信息如下,tmpfs文件系統的對應條目已經改變為配置的

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 16G 10G 4.7G 69% /

/dev/sda1 99M 21M 74M 22% /boot

tmpfs 600M 0 600M 0% /dev/shm

tmpfs 25M 0 25M 0% /tmp

3./dev/shm建一個tmp目前,并與/tmp綁定。 --這方法有點煩瑣,不如方法1方便快捷。

[root@bys3 ~]# mkdir /dev/shm/tmp

[root@bys3 ~]# chmod 1777 /dev/shm/tmp

[root@bys3 ~]# mount --bind /dev/shm/tmp /tmp -注意mount --bind 這里bind前是兩個-

[root@bys3 ~]# ls -ld /tmp

drwxrwxrwt 2 root root 40 Dec 8 12:15 /tmp

[root@bys3 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 16G 10G 4.7G 69% /

/dev/sda1 99M 21M 74M 22% /boot

tmpfs 600M 0 600M 0% /dev/shm

tmpfs 600M 0 600M 0% /tmp ----可以看到/tmp使用到了 /dev/shm的空間。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼伦贝尔市| 墨玉县| 微山县| 毕节市| 吴桥县| 鸡泽县| 海口市| 双辽市| 比如县| 微博| 开平市| 昌乐县| 全南县| 明星| 姜堰市| 江川县| 新源县| 海城市| 信阳市| 神农架林区| 富蕴县| 日土县| 乌恰县| 六枝特区| 弥勒县| 会泽县| 定陶县| 西峡县| 岳西县| 教育| 洞口县| 舞钢市| 东光县| 嘉禾县| 留坝县| 隆回县| 清河县| 宜都市| 咸阳市| 保定市| 宜丰县|