生活随笔
收集整理的這篇文章主要介紹了
文件系统及程序的限制关系: ulimit
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
想像一個狀況:我的 Linux 主機(jī)里面同時登陸了十個人,這十個人不知怎么搞的, 同時打開
了 100 個文件,每個文件的大小約 10MBytes ,請問一下, 我的 Linux 主機(jī)的內(nèi)存要有多大
才夠? 1010010 = 10000 MBytes = 10GBytes ... 老天爺,這樣,系統(tǒng)不掛點(diǎn)才有鬼哩!為了
要預(yù)防這個情況的發(fā)生,所以我們的 bash 是可以“限制使用者的某些系統(tǒng)資源”的,包括可以
打開的文件數(shù)量, 可以使用的 CPU 時間,可以使用的內(nèi)存總量等等。如何設(shè)置?用 ulimit
吧!
[dmtsai@study ~]$ ulimit [-SHacdfltu] [配額]
選項(xiàng)與參數(shù):
-H :hard limit ,嚴(yán)格的設(shè)置,必定不能超過這個設(shè)置的數(shù)值;
-S :soft limit ,警告的設(shè)置,可以超過這個設(shè)置值,但是若超過則有警告訊息。
在設(shè)置上,通常 soft 會比 hard 小,舉例來說,soft 可設(shè)置為 80 而 hard
設(shè)置為 100,那么你可以使用到 90 (因?yàn)闆]有超過 100) ,但介于 80~100 之間時,
系統(tǒng)會有警告訊息通知你!
-a :后面不接任何選項(xiàng)與參數(shù),可列出所有的限制額度;
-c :當(dāng)某些程序發(fā)生錯誤時,系統(tǒng)可能會將該程序在內(nèi)存中的信息寫成文件(除錯用) ,
這種文件就被稱為核心文件(core file) 。此為限制每個核心文件的最大容量。
-f :此 shell 可以創(chuàng)建的最大文件大小(一般可能設(shè)置為 2GB) 單位為 KBytes
-d :程序可使用的最大斷裂內(nèi)存(segment) 容量;
-l :可用于鎖定 (lock) 的內(nèi)存量
-t :可使用的最大 CPU 時間 (單位為秒)
-u :單一使用者可以使用的最大程序(process) 數(shù)量。
范例一:列出你目前身份(假設(shè)為一般帳號) 的所有限制數(shù)據(jù)數(shù)值
[dmtsai@study ~]$ ulimit -a
core file size (blocks, -c) 0 <==只要是 0 就代表沒限制
data seg size (kBytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited <==可創(chuàng)建的單一文件的大小
pending signals (-i) 4903
max locked memory (kBytes, -l) 64
max memory size (kBytes, -m) unlimited
open files (-n) 1024 <==同時可打開的文件數(shù)量
pipe size (512 Bytes, -p) 8
POSIX message queues (Bytes, -q) 819200
real-time priority (-r) 0
stack size (kBytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kBytes, -v) unlimited
file locks (-x) unlimited
范例二:限制使用者僅能創(chuàng)建 10MBytes 以下的容量的文件
[dmtsai@study ~]$ ulimit -f 10240
[dmtsai@study ~]$ ulimit -a | grep 'file size'
core file size (blocks, -c) 0
file size (blocks, -f) 10240 <==最大量為10240Kbyes,相當(dāng)10MBytes
[dmtsai@study ~]$ dd if=/dev/zero of=123 bs=1M count=20
File size limit exceeded (core dumped) <==嘗試創(chuàng)建 20MB 的文件,結(jié)果失敗了!
[dmtsai@study ~]$ rm 123 <==趕快將這個文件刪除啰!同時你得要登出再次的登陸才能解開 10M 的限制
單一 filesystem 能夠支持的單一文件
大小與 block 的大小有關(guān)。但是文件系統(tǒng)的限制容量都允許的太大了!如果想要讓使用者創(chuàng)建
的文件不要太大時, 我們是可以考慮用 ulimit 來限制使用者可以創(chuàng)建的文件大小喔!利用
ulimit -f 就可以來設(shè)置了!例如上面的范例二,要注意單位喔!單位是 KBytes。 若改天你一
直無法創(chuàng)建一個大容量的文件,記得瞧一瞧 ulimit 的信息喔!
Tips 想要復(fù)原 ulimit 的設(shè)置最簡單的方法就是登出再登陸,否則就是得要重新以 ulimit 設(shè)置
才行! 不過,要注意的是,一般身份使用者如果以 ulimit 設(shè)置了 -f 的文件大小, 那么他“只
能繼續(xù)減小文件大小,不能增加文件大小喔!
?
來源:鳥哥私房菜
轉(zhuǎn)載于:https://www.cnblogs.com/luck666/p/10395543.html
總結(jié)
以上是生活随笔為你收集整理的文件系统及程序的限制关系: ulimit的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。