tmpfs

1、簡(jiǎn)介
tmpfs 臨時(shí)文件系統(tǒng),使用的是 VM(virtual memory),也就是內(nèi)存或 swap。

有時(shí)候需要快速讀寫文件,可以考慮使用 tmpfs ,比如期貨之類的金融產(chǎn)品,一般把一天的開盤時(shí)間分成上午、下午、晚上 3 個(gè)部分,在開盤時(shí)間需要快速響應(yīng)可以巧用tmpfs,而趁著收盤之后的休息時(shí)間,可以把 tmpfs 的文件寫入磁盤,tmpfs 不具備持久性,tmpfs 中的文件被刪除時(shí)會(huì)釋放 VM 資源。

可以用df -h、mount
grep Shmem /proc/meminfo查看 tmpfs 的相關(guān)信息。

2、測(cè)試速度
先準(zhǔn)備一個(gè)文件:

~$ mkdir test
~$ dd if=/dev/urandom of=~/200.bin bs=1M count=200
~$ time cat ~/200.bin > ~/test/200.bin

real    0m4.147s
user    0m0.000s
sys     0m4.064s
~$ rm 200.bin

mount 之后,可以看到 df -h 中多了一行:

~$ sudo mount tmpfs /home/code/test/ -t tmpfs -o size=300M
~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
...
tmpfs           300M     0  300M   0% /home/username/test

測(cè)試往 tmpfs目錄寫入一個(gè)文件的耗時(shí),比上面快:

~$ dd if=/dev/urandom of=~/200.new.bin bs=1M count=200
~$ time cat ~/200.new.bin > ~/test/200.new.bin

real    0m1.649s
user    0m0.000s
sys     0m1.628s
~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
...
tmpfs           300M  200M  100M  67% /home/username/test
~$ sudo umount /home/username/test
~$ rm 200.new.bin

3、及時(shí)清理
但是如果沒有及時(shí)寫入磁盤,不停地往 tmpfs 中寫入,而 tmpfs 配置的 Size 又太大,這就導(dǎo)最終可用內(nèi)存越來越少。

/dev/shm 默認(rèn)大小為物理內(nèi)存的一半,往/dev/shm寫入數(shù)據(jù),查看內(nèi)存信息:

~$ dd if=/dev/urandom of=/dev/shm/200.bin bs=1M count=200

top 命令的打印中freeavail Mem減少了 200 MB。buff/cache部分增加了200 MB。因?yàn)椴粚儆谀硞€(gè)具體的進(jìn)程,所以在進(jìn)程部分中也看不出是哪個(gè)進(jìn)程占用了內(nèi)存,不容易被發(fā)現(xiàn)。

cat /proc/meminfo 中,MemFreeMemAvailable 減少了 200 MB,Shmem、Cached、Committed_AS 、 Inactive、Inactive(anon)增加了200 MB。

df -h/dev/shm 這行的 Used 增加了 200 MB。

$ rm /dev/shm/200.bin

刪除該文件后,可以看到各項(xiàng)數(shù)據(jù)恢復(fù)原狀了。

所以當(dāng)在 top 中可用內(nèi)存不多,但看不出哪個(gè)進(jìn)程占用了大量?jī)?nèi)存時(shí),可以考慮看一下 /proc/meminfo 中的 Shmem 項(xiàng),和 df -htmpfsUsed 部分,確認(rèn)是否因?yàn)闆]有及時(shí)清理 tmpfs 導(dǎo)致。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容