Linux系統中打開文件數量的查看方法

ulimit -n 4096linux

    也就是限制用戶的最大文件打開數爲4096個shell

    在網上查了關於怎麼查看文件打開數的文章大體有兩種說法centos

    /proc/sys/fs/file-nr服務器

    該文件與 file-max 相關,它有三個值:dom

    已分配文件句柄的數目[來源[url]www.iocblog.net[/url]]socket

    已使用文件句柄的數目google

    文件句柄的最大數目url

    該文件是隻讀的,僅用於顯示信息。spa

    查看全部進程的文件打開數.net

    lsof |wc -l

    查看某個進程打開的文件數

    lsof -p pid |wc -l

 

系統設置--ulimit

語  法:ulimit [-aHS][-c <core文件上 限>][-d <數據節區大小>][-f <文件大小>][-m <內存大小>][-n <文件數 目>][-p <緩衝區大小>][-s <堆疊大小>][-t <CPU時間>][-u <程序數 目>][-v <虛擬內存大小>]

補充說明:ulimit爲shell內建指令,可用來控制shell執行程序的資源。

參  數:
  -a  顯示目前資源限制的設定。 
  -c <core文件上限>  設定core文件的最大值,單位爲區塊。 
  -d <數據節區大小>  程序數據節區的最大值,單位爲KB。 
  -f <文件大小>  shell所能創建的最大文件,單位爲區塊。 
  -H  設定資源的硬性限制,也就是管理員所設下的限制。 
  -m <內存大小>  指定可以使用內存的上限,單位爲KB。 
  -n <文件數目>  指定同一時間最多可開啓的文件數。 
  -p <緩衝區大小>  指定管道緩衝區的大小,單位512字節。 
  -s <堆疊大小>  指定堆疊的上限,單位爲KB。 
  -S  設定資源的彈性限制。 
  -t <CPU時間>  指定CPU使用時間的上限,單位爲秒。 
  -u <程序數目>  用戶最多可開啓的程序數目。 
  -v <虛擬內存大小>  指定可以使用的虛擬內存上限,單位爲KB。

 

 

Linux系統的文件句柄數量問題

linux下面部署應用的時候,有時候會趕上socket/file: can‘t open so many files的問題,其實linux是有文件句柄限制的(就像winxp?),並且默認不是很高,通常都是1024,做爲一臺生產服務器,其實很容易就達到這個數量,所以咱們須要把這個值改大一些。   大概知道ulimit這個命令是相關的,上google搜索了一下,大多數說的很含糊,也沒有統一說一下,通過兩個小時看了很多文章終於弄清楚ulimit相關的一些配置問題。   咱們能夠用ulimit -a來查看全部限制值,我只關心文件句柄數量的問題   open files (-n) 1024   這個就是限制數量   這裏,有不少ulimit的文章都說的很含糊,究竟這個1024是系統的限制,仍是用戶的限制呢。其實,這個是用戶限制來的,完整的說法,應該是當前用戶準備要運行的程序的限制。   一、這個限制是針對單個程序的限制   二、這個限制不會改變以前已經運行了的程序的限制   三、對這個值的修改,退出了當前的shell就會消失   好比說,我先運行了一個程序a,而後經過ulimit修改了限制爲2048,而後運行b,而後退出了shell再登陸,而後運行c.那就只有b能夠打開2048個句柄。   若是咱們須要改變總體的限制值,或者咱們運行的程序是系統啓動的,應該怎麼處理呢   其中一個方法,是想ulimit修改命令放入/etc/profile裏面,可是這個作法並很差   正確的作法,應該是修改/etc/security/limits.conf   裏面有很詳細的註釋,好比   * soft nofile 2048   * hard nofile 32768   就能夠將文件句柄限制統一改爲軟2048,硬32768   這裏涉及另一個問題,什麼是軟限制,什麼是硬限制   硬限制是實際的限制,而軟限制,是warnning限制,只會作出warning   其實ulimit命令自己就有分軟硬設置,加-h就是硬,加-s就是軟   默認顯示的是軟限制,若是修改的時候沒有加上的話,就是兩個一塊兒改   配置文件最前面的一位是domain,設置爲星號表明全局,另外你也能夠針對不一樣的用戶作出不一樣的限制   修改了,從新登陸用ulimit一開就馬上生效了,不過以前啓動過的程序要從新啓動才能使用新的值。我用的是centos,彷佛有些系統須要重啓才能生效。   ulimit其實就是對單一程序的限制   那系統總限制呢   實際上是在這裏,/proc/sys/fs/file-max   能夠經過cat查看目前的值,echo來馬上修改   另外還有一個,/proc/sys/fs/file-nr   只讀,能夠看到整個系統目前使用的文件句柄數量   查找文件句柄問題的時候,還有一個很實用的程序lsof   能夠很方便看到某個進程開了那些句柄   也能夠看到某個文件/目錄被什麼進程佔用了。

相關文章
相關標籤/搜索