A. 怎樣查看linux進程打開的文件數
Linux文件數打開數
查看當前系統最大的文件打開數,
在linux終端中輸入ulimit -a
「open files」參數選項後面的數值就是當前系統支持的最大打開文件數
修改linux最大文件打開數
如果要修改linux最大文件打開數,可以通過參數命令 unlimit -n 後面接需要設置的文件數量。
設置好之後,再次查看 unlimit -a 你會發現已經設置為新的數量了
設置好之後,再次編輯修改重啟設置的服務,已經沒有剛剛那個1024文件數限制的報錯提示
其他修改方法
除此之外,如果針對不同的用戶。也可以通過編輯修改 /etc/rc.local文件設置環境變數,添加 unlimit -n
,重啟之後一般就自動設置好了
查看系統句柄文件數
當前系統文件句柄的最大數目,只用於查看,不能設置修改
cat /proc/sys/fs/file-max
查看進程打開文件數
如果需要查看所有進程的文件打開數,命令lsof |wc -l
B. 查看linux默認能最多開啟多少個文件數量
使用ulimit –a就可以看到了
#vi /erc/security/limits.conf (修改文件開啟的限制)
#
#<domain> <type> <item> <value>
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
* soft noproc 10000(可選)
* hard noproc 10000(可選)
* soft nofile 65535
* hard nofile 65535 (添加的兩行)
# End of file
:wq 保存退出
說明:
* 代表針對所有用戶
noproc 是代表最大進程數
nofile 是代表最大文件打開數
注意:
這個當中的硬限制是實際的限制,而軟限制是warnning限制,只會做出warning;
執行下面的兩條命令
ulimit –Hn 65535
ulimit –Sn 65535
最後重啟系統才能生效 reboot
在查看 ulimit –n
#ulimit –n
65535
已打開文件數限制,已調至最大。
C. Linux怎麼修改文件打開數
limits.conf 文件實際是 Linux PAM(插入式認證模塊,Pluggable Authentication Moles)中 pam_limits.so 的配置文件,而且只針對於單個會話。
limits.conf的格式如下:
username|@groupname type resource limit
username|@groupname:設置需要被限制的用戶名,組名前面加@和用戶名區別。也可以用通配符*來做所有用戶的限制。
type:有 soft,hard 和 -,soft 指的是當前系統生效的設置值。hard 表明系統中所能設定的最大值。soft 的限制不能比har 限制高。用 - 就表明同時設置了 soft 和 hard 的值。
resource:
core - 限制內核文件的大小
date - 最大數據大小
fsize - 最大文件大小
memlock - 最大鎖定內存地址空間
nofile - 打開文件的最大數目
rss - 最大持久設置大小
stack - 最大棧大小
cpu - 以分鍾為單位的最多 CPU 時間
noproc - 進程的最大數目
as - 地址空間限制
maxlogins - 此用戶允許登錄的最大數目
要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
例如:修改文件描述符大小(65536)
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
在線:
# ulimit -n 65535
# ulimit -n
65535
# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3806
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 3806
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
D. 怎樣查看linux進程打開的文件數
linux系統下查看進程打開文件在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少個文件描述符表示該進程打開了多少文件。
另外Linux
默認的進程打開文件上限是1024個,可以通過ulimit
-n查看。很多系統上限可以通過修改/etc/security/limits.conf文件改變,這個文件有詳細的注釋,對如何修改做了說明。如果希望
把所有用戶的進程打開文件上限改為65536,可以加入下面兩行
* soft nofile 65535
* hard nofile 65535
還可以只真對某個用戶或某個組做修改,具體方法參見文件注釋。修改後需要重新啟動系統才能生效。學習linux基本命令,推薦《linux就該這么學》!
E. 如何統計Linux中文件和文件夾/目錄的數量
在本教程中,我們將向您展示如何使用多個命令,並使用 ls、egrep、wc 和 find 命令執行一些高級操作。 下面的命令將可用在多個方面。
為了實驗,我打算總共創建 7 個文件和 2 個文件夾(5 個常規文件和 2 個隱藏文件)。 下面的 tree 命令的輸出清楚的展示了文件和文件夾列表。
# tree -a /opt
/opt
├──magi
│ └──2g
│ ├──test5.txt
│ └──.test6.txt
├──test1.txt
├──test2.txt
├──test3.txt
├──.test4.txt
└──test.txt
2directories,7files
示例 1
統計當前目錄的文件(不包括隱藏文件)。 運行以下命令以確定當前目錄中有多少個文件,並且不計算點文件(LCTT 譯註:點文件即以「.」 開頭的文件,它們在 Linux 默認是隱藏的)。
# ls -l . | egrep -c '^-'
4
細節:
ls : 列出目錄內容
-l : 使用長列表格式
. : 列出有關文件的信息(默認為當前目錄)
| : 將一個程序的輸出發送到另一個程序進行進一步處理的控制操作符
egrep : 列印符合模式的行
-c : 通用輸出控制
'^-' : 以「-」開頭的行(ls -l 列出長列表時,行首的 「-」 代表普通文件)
示例 2
統計當前目錄包含隱藏文件在內的文件。 包括當前目錄中的點文件。
# ls -la . | egrep -c '^-'
5
示例 3
運行以下命令來計數當前目錄的文件和文件夾。 它會計算所有的文件和目錄。
# ls -l | wc -l
5
細節:
ls : 列出目錄內容
-l : 使用長列表格式
| : 將一個程序的輸出發送到另一個程序進行進一步處理的控制操作符
wc : 這是一個統計每個文件的換行符、單詞和位元組數的命令
-l : 輸出換行符的數量
F. linux文件打開數最大可設置多少
ulimit里的最大文件打開數量的默認值 如果在limits.conf里沒有設置,則默認值是1024,如果limits.con有設置,則默認值以limits.conf為准。例如我換了一台機器,登錄進去,ulimit -n顯示如下: [root@zk203 ~]# ulimit -n 2000 這是因為我的limits.conf里的文件打開數是2000,如下: [root@zk203 ~]# cat /etc/security/limits.conf root soft nofile 2000 root hard nofile 2001 如果limits.conf里不做任何限制,則重新登錄進來後,ulimit -n顯示為1024。 [root@zk203 ~]# ulimit -n 1024 ulimit修改後生效周期 修改後立即生效,重新登錄進來後失效,因為被重置為limits.conf里的設定值
G. linux 上最大打開文件數多大合適
在linux終端中輸入ulimit -a
「open files」參數選項後面的數值就是當前系統支持的最大打開文件數
修改linux最大文件打開數
如果要修改linux最大文件打開數, 命令 unlimit -n 後面接需要設置的文件數量。
設置好之後,再次查看 unlimit -a 你會發現已經設置為新的數量了
一般來說,默認就夠用了。當然,你設置2倍、3倍都要以,一般默認都是1024
H. linux如何設置用戶打開的文件數
具體操作,需要修改兩處,並且需重新啟動Linux伺服器。
首先SSH登錄伺服器,執行ulimit -a查看當前限制。這一步是可選,主要是看下限制,心裡有數。
第一處修改:
vim /etc/security/limits.conf
在文件尾部增加:
* soft nofile 65535
* hard nofile 65535
第二處修改
vim /etc/profile
在文件尾部增加:
ulimit -S 65535
ulimit -H 65535
ulimit -n 65535
ulimit -f 6553500
保存修改後,重啟Linux伺服器。重啟完畢後,SSH登入伺服器,執行ulimit -a查看系統限制。
補充:ulimit命令的參數詳細介紹
-H 設置硬資源限制.
-S 設置軟資源限制.
-a 顯示當前所有的資源限制.
-c size:設置core文件的最大值.單位:blocks
-d size:設置數據段的最大值.單位:kbytes
-f size:設置創建文件的最大值.單位:blocks
-l size:設置在內存中鎖定進程的最大值.單位:kbytes
-m size:設置可以使用的常駐內存的最大值.單位:kbytes
-n size:設置內核可以同時打開的文件描述符的最大值.單位:n
-p size:設置管道緩沖區的最大值.單位:kbytes
-s size:設置堆棧的最大值.單位:kbytes
-t size:設置CPU使用時間的最大上限.單位:seconds
-v size:設置虛擬內存的最大值.單位:kbytes
-u <程序數目> 用戶最多可開啟的程序數目
I. linux 一個進程最多打開多少個文件
1、在linux系統中,理論上一個進程可以打開的文件數可以通過如下命令查找到。在終端執行:ulimit -a命令,找到open files一行即可。
2、這個值只是一個理論值,隨著你的系統硬體資源而變化,如果配置低,可能遠達不到這個值,如果系統配置很高級,也可以設置增加這個值。
J. Linux系統中如何查看真實的可支持的最大文件打開數
在Linux下,我們使用ulimit -n 命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有 點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many files open」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
57 24231
56 24264
其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。
ps -aef |grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。
但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:
ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄 數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最後。