那要看使用哪個文件系統了。
更多的子目錄數量
Ext3目前只支持32000個子目錄,而回Ext4取消了這一限答制,理論上支持無限數量的子目錄。
更多的塊和i-節點數量
Ext3文件系統使用32位空間記錄塊數量和i-節點數量,而Ext4文件系統將它們擴充到64位。
2. linux如何設置用戶打開的文件數
具體操作,需要修改兩處,並且需重新啟動Linux伺服器。
首先SSH登錄伺服器,執行 -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 <程序數目> 用戶最多可開啟的程序數目
3. linux一個文件夾內最多能放多少文件
linux的ext3文件系統一級子目錄的個數默認為31998(個),准確地說是32000個。
Linux為了cpu的搜索效率而規定的,要想改變數目限制需要重新編譯內核。在kernel代碼中有這樣的:
include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000
include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000
為
什麼說31998個呢?這是因為mkdir創建一個目錄時,目錄下默認就會創建兩個子目錄的,一個是.目錄(代表當前目錄),另一個是..目錄(代表上級
目錄)。這兩個子目錄是刪除不掉的,「 rm . 」 會得到「rm: cannot remove `.' or
`..'」的提示。所以32000-2=31998。
ext3文件系統下單個目錄里的最大文件數無特別的限制,是受限於所在文件系統的inode數。
在一個目錄下,touch了100萬個文件是沒有問題的。但是肯定會受到所在文件系統的inode數的限制。
df -i /dev/sdaX或者使用tune2fs -l /dev/sdaX或者mpe2fs -h /dev/sdaX查看可用inode數,後兩個命令輸出結果是一樣的,但是跟df所得出的可用inode數會有些誤差。
網上有兩種解決inode數限制的辦法如下
2.1 重新mkfs,mkfs時將inode數調的多一些(根據你fs中文件的總數而定),塊尺寸調得小一些(根據每個文件的平均大小而定)
2.2
使用loopback文件系統臨時解決:在/usr中(也可以在別處)創建一個大文件,然後做成loopback文件系統,將原來的文件移到這個文件系統
中,並將它mount到/usr下合適的位置。這樣可以大大減少你/usr中的文件數目。但是系統性能會有點損失。
4. 在Linux下,一個目錄最多可以存放多少個文件
linux的ext3文件系統一級子目錄的個數默認為31998(個),准確地說是32000個。如有疑問到linux就該這么學看下就知道了。
5. linux主機 為什麼有文件數限制
1、創建文件系統時,會將存儲介質(磁碟)按照一定的比例,劃出一部分區域作為存儲文件名(目錄名)使用,每個文件(目錄)項在linux的ext文件系統中叫做一個inode,每個inode大小是固定的,劃出的inode區用完時,就不能再創建文件了,也就是到達了文件最大數目的限制。
其實由於存儲介質的容量都是有限的,所以所有的文件系統都有文件數量限制,但可以根據實際使用中大多數文件的大小及數量的具體需求,調整一個文件系統上的文件數限制。
2、另外,Linux主多用戶操作系統,為了均衡系統所有用戶的需求,對每個用戶使用的系統資源也有限制(參考/etc/security/limits.conf),其中就包括每個用戶同時打開的文件數、文件尺寸、cpu佔用時間、登錄數、內存使用限制等。
6. linux一個文件夾內最多能放多少文件
雖然我不知道具體的數量,但我想也沒必要知道,因為你這種設計就有問題,大量的小文件讀寫會降低讀寫效率,因為磁頭需要不斷地定位,除了塌殲將文件分門別團碼沖類(比如按照首字母,或者按照日期)存放之外,還可以放入資料庫,或者自己想辦法將其組合為大文件。
文件的數量應該是和文件系統有關系的,模段你可以查查 ext3 的相關介紹
7. linux下一個目錄中最多可存放多少個文件數
512個是根目錄限制,其他目錄還是沒關系的。 ntfs和linux ext3應該都有限制, 這可能有硬碟技術決定,和分區性質無關
8. 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里的設定值
9. 修改linux的最大文件句柄數限制
修改linux的最大文件句柄數限制對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到too
many
files
open的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:1lsof
-n
|awk
'{print
$2}'|sort|uniq
-c
|sort
-nr|more修改linux的最大文件句柄數限制的方法:
1)ulimit
-n
65535
在當前session有效,用戶退出或者系統重新後恢復默認值
2)修改profile文件:在profile文件中添加:ulimit
-n
65535
只對當個用戶有效
3)修改文件:/etc/security/limits.conf,在文件中添加:(立即生效-當前session中運行ulimit
-a命令無法顯示)[html]
*
soft
nofile
32768
#限制單個進程最大文件句柄數(到達此限制時系統報警)
*
hard
nofile
65536
#限制單個進程最大文件句柄數(到達此限制時系統報錯)
4)修改文件:/etc/sysctl.conf。在文件中添加:[html]
fs.file-max=655350
#限制整個系統最大文件句柄數
運行命令:/sbin/sysctl
-p
使配置生效
10. linux哪個進程打開的文件數最多
句柄數。
inux最大打開文件句柄數,即打開文件數最大限制,就是規定的塵虛單啟賀個進程能夠打開的最大文件句柄數,Socket連接也算在裡面,默認大小1024個。
Linux是一種免費使用和自由傳派旁燃播的類UNIX操作系統,是一個基於POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。