linux文件打開數
❶ linux ulimit 文件打開數最大是多少
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里的設定值
❷ 怎樣查看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
❸ 如何修改linux最大文件打開數
進程最大打開文件描述符數:user limit中nofile的soft limit
a. 查看
$ ulimit -n
1700000
2. 設置
a. 臨時性:通過ulimit -Sn設置最大打開文件描述符數的soft limit,注意soft limit不能大於hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默認查看的是soft limit,但是ulimit -n 1800000則是同時設置soft limit和hard limit。對於非root用戶只能設置比原來小的hard limit。
查看hard limit:
$ ulimit -Hn
1700000
設置soft limit,必須小於hard limit:
$ ulimit -Sn 1600000
2. 永久性:上面的方法只是臨時性的,注銷重新登錄就失效了,而且不能增大hard limit,只能在hard limit范圍內修改soft limit。若要使修改永久有效,則需要在/etc/security/limits.conf中進行設置(需要root許可權),可添加如下兩行,表示用戶chanon最大打開文件描述符數的soft limit為1800000,hard limit為2000000。以下設置需要注銷之後重新登錄才能生效:
chanon soft nofile 1800000
chanon hard nofile 2000000
設置nofile的hard limit還有一點要注意的就是hard limit不能大於/proc/sys/fs/nr_open,假如hard limit大於nr_open,注銷後無法正常登錄。可以修改nr_open的值:
# echo 2000000 > /proc/sys/fs/nr_open
❹ 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 <程序數目> 用戶最多可開啟的程序數目
❺ linux系統打開文件數過大會產生什麼問題
在Linux下,我們使用ulimit-n命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「toomanyfilesopen」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|more在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:#lsof-n|awk'{print$2}'|sort|uniq-c|sort-nr|其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。ps-aef|grep24204mysql24204241629916:15?00:24:25/usr/sbin/mysqld哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:ulimit-HSn4096以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改/etc/profile把上面命令加到最後。
❻ 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里的設定值
❼ 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
❽ 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 把上面命令加到最後。
❾ linux系統下,如何能使得打開的文件數無限次
Linux下面默認每用戶只能同時打開1024個文件句柄,在web server伺服器上,這個限制就有點少。我們應該把它增大一些,以便接納更多的訪問請求。需要修改兩處,並需要重新啟動Linux伺服器。首先SSH登錄伺服器,執行ulimit -a查看當前限制。這一步是可選,主要是看下限制,心裡有數。第一處修改 /etc/security/limits.conf 在文件尾部增加* soft nofile 65535
* hard nofile 65535第二處修改 /etc/profile 在文件尾部增加ulimit -S 65535
ulimit -H 65535
ulimit -n 65535
ulimit -f 6553500保存修改後,重啟Linux伺服器。重啟完畢後,SSH登入伺服器,執行ulimit -a查看系統限制
❿ linux 上最大打開文件數多大合適
在linux終端中輸入ulimit -a
「open files」參數選項後面的數值就是當前系統支持的最大打開文件數
修改linux最大文件打開數
如果要修改linux最大文件打開數, 命令 unlimit -n 後面接需要設置的文件數量。
設置好之後,再次查看 unlimit -a 你會發現已經設置為新的數量了
一般來說,默認就夠用了。當然,你設置2倍、3倍都要以,一般默認都是1024