使用ulimit 命令匈睁、/etc/security/limits.conf监透、proc 調(diào)整系統(tǒng)參數(shù)

使用ulimit 命令、/etc/security/limits.conf航唆、proc 調(diào)整系統(tǒng)參數(shù)

Linux是有文件句柄限制的胀蛮,而且Linux默認(rèn)不是很高,一般都是1024糯钙,生產(chǎn)服務(wù)器用其實(shí)很容易就達(dá)到這個(gè)數(shù)量

系統(tǒng)總限制是在這里粪狼,/proc/sys/fs/file-max.可以通過(guò)cat查看目前的值,修改/etc/sysctl.conf 中也可以控制.
/proc/sys/fs/file-nr任岸,可以看到整個(gè)系統(tǒng)目前使用的文件句柄數(shù)量

在Linux下面部署應(yīng)用的時(shí)候再榄,有時(shí)候會(huì)遇上Socket/File: Can’t open so many files的問(wèn)題
在使用linux做為關(guān)鍵應(yīng)用的過(guò)程中,特別是大壓力負(fù)載的時(shí)候演闭,經(jīng)常會(huì)遇到一些諸如“too many open files”不跟,“系統(tǒng)默認(rèn)最大線程數(shù)是多少?如何調(diào)整米碰?”等問(wèn)題窝革。此時(shí),我們就必須使用ulimit或proc去調(diào)整系統(tǒng)的某些參數(shù)吕座。

查找文件句柄問(wèn)題的時(shí)候虐译,還有一個(gè)很實(shí)用的程序lsof.可以很方便看到某個(gè)進(jìn)程開了那些句柄.也可以看到某個(gè)文件/目錄被什么進(jìn)程占用了.
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more

修改完重新登錄就可以見到,使用 ulimit -a 查看確認(rèn)

  • ulimit 命令

1.只對(duì)當(dāng)前tty(終端有效)吴趴,若要每次都生效的話漆诽,可以把ulimit參數(shù)放到對(duì)應(yīng)用戶的.bash_profile里面;
2.ulimit命令本身就有分軟硬設(shè)置锣枝,加-H就是硬厢拭,加-S就是軟;
3.默認(rèn)顯示的是軟限制撇叁,如果運(yùn)行ulimit命令修改的時(shí)候沒有加上的話供鸠,就是兩個(gè)參數(shù)一起改變.生效;
+ 命令參數(shù)
-H 設(shè)置硬件資源限制.
-S 設(shè)置軟件資源限制.
-a 顯示當(dāng)前所有的資源限制.
-c size:設(shè)置core文件的最大值.單位:blocks
-d size:設(shè)置數(shù)據(jù)段的最大值.單位:kbytes
-f size:設(shè)置創(chuàng)建文件的最大值.單位:blocks
-l size:設(shè)置在內(nèi)存中鎖定進(jìn)程的最大值.單位:kbytes
-m size:設(shè)置可以使用的常駐內(nèi)存的最大值.單位:kbytes
-n size:設(shè)置內(nèi)核可以同時(shí)打開的文件描述符的最大值.單位:n
-p size:設(shè)置管道緩沖區(qū)的最大值.單位:kbytes
-s size:設(shè)置堆棧的最大值.單位:kbytes
-t size:設(shè)置CPU使用時(shí)間的最大上限.單位:seconds
-v size:設(shè)置虛擬內(nèi)存的最大值.單位:kbytes
unlimited 是一個(gè)特殊值陨闹,用于表示不限制

+ 設(shè)置    
    - 針對(duì)所有用戶的設(shè)置楞捂,在/etc/security/limits.conf文件,其是可以對(duì)系統(tǒng)用戶趋厉、組進(jìn)行cpu寨闹、文件數(shù)等限制的,通過(guò)它可以針對(duì)某個(gè)用戶或全部進(jìn)行限制君账。但不能超越系統(tǒng)的限制繁堡;

        (*表示所有用戶、soft表示可以超出,但只是警告帖蔓;hard表示絕對(duì)不能超出矮瘟,unlimited用于表示不限制)
    
    - 如果想對(duì)所有用戶設(shè)置,也可以放在/etc/profile文件里面塑娇,下面是該文件里面的默認(rèn)參數(shù):   
    ulimit -S -c 0 > /dev/null 2>&1
  • /proc 目錄

    • /proc 目錄包括很多系統(tǒng)當(dāng)前狀態(tài)的參數(shù)

      /proc/meminfo
      /proc/cpuinfo
      /proc/sys/fs/file-max #系統(tǒng)總限制
      /proc/sys/fs/file-nr #整個(gè)系統(tǒng)目前使用的文件句柄數(shù)量

    • proc目錄中的值可以進(jìn)行動(dòng)態(tài)的設(shè)置澈侠,若希望永久生效,可以修改/etc/sysctl.conf文件埋酬,并使用下面的命令確認(rèn): #sysctl -p

  • /etc/security/limit.conf

注意:要使 limits.conf 文件配置生效哨啃,必須要確保 pam_limits.so 文件被加入到啟動(dòng)文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so
+ 描述
limits.conf文件實(shí)際是Linux PAM(插入式認(rèn)證模塊写妥,Pluggable Authentication Modules)中 pam_limits.so 的配置文件拳球,突破系統(tǒng)的默認(rèn)限制,對(duì)系統(tǒng)訪問(wèn)資源有一定保護(hù)作用珍特。 limits.conf 和sysctl.conf區(qū)別在于limits.conf是針對(duì)用戶祝峻,而sysctl.conf是針對(duì)整個(gè)系統(tǒng)參數(shù)配置。
+ 工作原理
limits.conf是 pam_limits.so的 配置文件扎筒,然后/etc/pam.d/下的應(yīng)用程序調(diào)用pam_***.so模塊莱找。譬如說(shuō),當(dāng)用戶 訪問(wèn)服務(wù)器嗜桌,服務(wù)程序?qū)⒄?qǐng)求發(fā)送到PAM模塊奥溺,PAM模塊根據(jù)服務(wù)名稱在/etc/pam.d目 錄下選擇一個(gè)對(duì)應(yīng)的服務(wù)文件,然后根據(jù)服務(wù)文件的內(nèi)容選擇具體的PAM模塊進(jìn)行處理

    example:限制admin用戶登錄到sshd的服務(wù)不能超 過(guò)2個(gè)  
        在/etc/pam.d/sshd中添加:session required pam_limits.so  
        echo "session required pam_limits.so" >> /etc/pam.d/sshd  
        在/etc/security/limits.conf中添加:admin - maxlogins 2  
        注意:     
        查看應(yīng)用程序能否被PAM支持骨宠,用ldd
        同理limits.conf要使用就必須保證/etc/pam.d/login 中有下面:session    required   pam_limits.so

+ 文件格式  username|@groupname   type  resource  limit
    1. username|@groupname  
    設(shè)置需要被限制的用戶名浮定,組名前面加@和用戶名區(qū)別。也可用通配符*來(lái)做所有用戶的限制
    2. type  soft层亿、hard桦卒、-    
    soft 指的是當(dāng)前系統(tǒng)生效的設(shè)置值。hard 表明系統(tǒng)中所能設(shè)定的最大值匿又。soft 的限制不能比har 限制高方灾。用 - 就表明同時(shí)設(shè)置了soft 和hard的值
    3. resource: 表示要限制的資源
    
        * core - 限制內(nèi)核文件的大小
        core file : 當(dāng)一個(gè)程序崩潰時(shí),在進(jìn)程當(dāng)前工作目錄的core文件中復(fù)制了該進(jìn)程的存儲(chǔ)圖像琳省。core文件僅僅是一個(gè)內(nèi)存映象(同時(shí)加上調(diào)試信息),主要是用來(lái)調(diào)試的躲撰。core文件是個(gè)二進(jìn)制文件针贬,需要用相應(yīng)的工具來(lái)分析程序崩潰時(shí)的內(nèi)存映像,系統(tǒng)默認(rèn)core文件的大小為0拢蛋,所以沒有被創(chuàng)建桦他。可以用ulimit命令查看和修改core文件的大小。 
        #ulimit -c 0  #ulimit -c 1000 #ulimit -c unlimited  
        注意:如果想讓修改永久生效快压,則需要修改配置文件圆仔,如 .bash_profile、/etc/profile或/etc/security/limits.conf 
        * date - 最大數(shù)據(jù)大小
        * fsize - 最大文件大小
        * memlock - 最大鎖定內(nèi)存地址空間
        * nofile - 打開文件的最大數(shù)目  
        對(duì)于需要做許多套接字連接并使它們處于打開狀態(tài)的應(yīng)用程序而言蔫劣,最好通過(guò)使用ulimit -n坪郭,或者通過(guò)設(shè)置nofile參數(shù),為用戶把文件描述符的數(shù)量設(shè)置得比默認(rèn)值高一些
        * rss - 最大持久設(shè)置大小
        * stack - 最大棧大小
        * cpu - 以分鐘為單位的最多 CPU 時(shí)間 
        * noproc - 進(jìn)程的最大數(shù)目 
        * as - 地址空間限制
        * maxlogins - 此用戶允許登錄的最大數(shù)目
    
    4. 設(shè)置
        * 暫時(shí)生效脉幢,ulimit 命令
        * 永久生效歪沃,通過(guò)將一個(gè)相應(yīng)的 ulimit 語(yǔ)句添加到由登錄 shell 讀取的文件之一(例如 ~/.profile),即特定于 shell 的用戶資源文件嫌松;或者通過(guò)編輯 /etc/security/limits.conf
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沪曙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萎羔,更是在濱河造成了極大的恐慌液走,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贾陷,死亡現(xiàn)場(chǎng)離奇詭異缘眶,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)昵宇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門磅崭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人瓦哎,你說(shuō)我怎么就攤上這事砸喻。” “怎么了蒋譬?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵割岛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我犯助,道長(zhǎng)癣漆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任剂买,我火速辦了婚禮惠爽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞬哼。我一直安慰自己婚肆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布坐慰。 她就那樣靜靜地躺著较性,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赞咙,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天责循,我揣著相機(jī)與錄音,去河邊找鬼攀操。 笑死院仿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崔赌。 我是一名探鬼主播意蛀,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼健芭!你這毒婦竟也來(lái)了县钥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤慈迈,失蹤者是張志新(化名)和其女友劉穎若贮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痒留,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谴麦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伸头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匾效。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖恤磷,靈堂內(nèi)的尸體忽然破棺而出面哼,到底是詐尸還是另有隱情,我是刑警寧澤扫步,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布魔策,位于F島的核電站,受9級(jí)特大地震影響河胎,放射性物質(zhì)發(fā)生泄漏闯袒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一游岳、第九天 我趴在偏房一處隱蔽的房頂上張望政敢。 院中可真熱鬧,春花似錦胚迫、人聲如沸喷户。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摩骨。三九已至,卻和暖如春朗若,著一層夾襖步出監(jiān)牢的瞬間恼五,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工哭懈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灾馒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓遣总,卻偏偏與公主長(zhǎng)得像睬罗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旭斥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容