真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進(jìn)行l(wèi)inuxtmpfs與/dev/shm探討及其應(yīng)用是什么

如何進(jìn)行l(wèi)inux tmpfs與/dev/shm探討及其應(yīng)用是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)主營(yíng)康保網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App定制開發(fā),康保h5小程序定制開發(fā)搭建,康保網(wǎng)站營(yíng)銷推廣歡迎康保等地區(qū)企業(yè)咨詢

什么是tmpfs?

tmpfs是Linux/Unix系統(tǒng)上的一種基于內(nèi)存的文件系統(tǒng)。tmpfs可以使用您的內(nèi)存或swap分區(qū)來(lái)存儲(chǔ)文件。由此可見,temfs主要存儲(chǔ)暫存的文件。

linux內(nèi)核中的VM子系統(tǒng)負(fù)責(zé)在后臺(tái)管理虛擬內(nèi)存資源Virtual Memory,即RAM和swap資源,透明地將RAM頁(yè)移動(dòng)到交換分區(qū)或從交換分區(qū)到RAM頁(yè),tmpfs文件系統(tǒng)需要VM子系統(tǒng)的頁(yè)面來(lái)存儲(chǔ)文件。 

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

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

一般情況下,是配置的小于物理內(nèi)存大小的。

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

tmpfs基于內(nèi)存,因而速度是相當(dāng)?shù)模硗鈚mpfs使用的VM資源是動(dòng)態(tài)的,當(dāng)刪除tmpfs中文件,tmpfs 文件系統(tǒng)驅(qū)動(dòng)程序會(huì)動(dòng)態(tài)地減小文件系統(tǒng)并釋放 VM 資源,當(dāng)然在其中創(chuàng)建文件時(shí)也會(huì)動(dòng)態(tài)的分配VM資源。另外,tmpfs不具備持久性,重啟后數(shù)據(jù)不保留,原因很明顯,它是基于內(nèi)存的。

編譯內(nèi)核時(shí),啟用“Virtual memory file system support”就可以使用tmpfs,linux kernel從2.4以后都開始支持tmpfs。目前主流的linux系統(tǒng)默認(rèn)已啟用tmpfs,如Redhat。

tmpfs應(yīng)用

tmpfs是基于內(nèi)存的,速度是不用說(shuō)的,硬盤和它沒(méi)法比。

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

另外如果在網(wǎng)站運(yùn)維中好好利用tmpfs,將有意想不到的收獲。

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

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

[root@GoGo shm]# chmod 1777 /dev/shm/tmp  //注意一下權(quán)限

[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

當(dāng)然您也可以不綁定,直接mount在現(xiàn)有的安裝點(diǎn)上使用tmpfs,如:

#umount   /tmp

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

 

也很方便吧,不需要使用mkfs等命令創(chuàng)建。

 

以下/tmp使用tmpfs文件系統(tǒng)。

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

cache_dir ufs /tmp 256 16 256

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

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

通過(guò)phpinfo測(cè)試文件查看你的php session存儲(chǔ)位置,如果不在/tmp下,修改php.ini文件,修改如下:

session.save_path = “/tmp”

當(dāng)然如果您的網(wǎng)站訪問(wèn)量比較大,可/tmp下設(shè)置分層目錄存儲(chǔ)session,語(yǔ)法如下:

session.save_path=”N;/save_path”,N 為分級(jí)的級(jí)數(shù),save_path 為開始目錄。

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

如nginx.socket和MySQL.sock

Tmpfs大小調(diào)整

有時(shí)候,當(dāng)應(yīng)用程序使用到Tmpfs時(shí),而在部署的時(shí)候如果沒(méi)有對(duì)應(yīng)用程序占用的內(nèi)存做足夠的評(píng)估時(shí),就有可能把Tmpfs用滿,這個(gè)時(shí)候就需要調(diào)整Tmpfs的大小了,當(dāng)然,調(diào)整的大小不能大于你機(jī)器內(nèi)存大小,否則,你只能換機(jī)器了,又或是優(yōu)化你的應(yīng)用程序。

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

1) umount tmpfs

在這里要注意,由于umount 會(huì)把卸載tmpfs 文件系統(tǒng),意味著你的應(yīng)用程序使用的共享內(nèi)存將會(huì)被刪除,如果數(shù)據(jù)較重要,在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))

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

如錯(cuò)誤說(shuō)明,可以使用fuser –km /dev/shm命令把加載的進(jìn)程都kill掉,再進(jìn)行umount

fuser –km /dev/shm
umount /dev/shm

2) 調(diào)整tmpfs的大小

通過(guò)修改/etc/fstab文件來(lái)修改/dev/shm的容量,在文件中修改tmpfs行,如下:

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

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

修改后,重新mount tmpfs即可。

調(diào)整tmpfs大小大致有以下三種方法:

1.直接掛載到需要的目錄--比如系統(tǒng)的臨時(shí)目錄-可以根據(jù)實(shí)際需要掛載某個(gè)程序的臨時(shí)文件的目錄

[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

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

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

[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 --測(cè)試/etc/fstab無(wú)錯(cuò)誤,重啟OS系統(tǒng)

[oracle@bys3 ~]$ df -h  重啟后的信息如下,tmpfs文件系統(tǒng)的對(duì)應(yīng)條目已經(jīng)改變?yōu)榕渲玫?/p>

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建一個(gè)tmp目前,并與/tmp綁定。 --這方法有點(diǎn)煩瑣,不如方法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前是兩個(gè)-

[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的空間。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


當(dāng)前名稱:如何進(jìn)行l(wèi)inuxtmpfs與/dev/shm探討及其應(yīng)用是什么
網(wǎng)址分享:http://weahome.cn/article/ijjoie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部