1. /proc/sys/fs/file-max 設置內核最大的文件句柄數
2. /proc/sys/fs/nr_open 設置進程最大的文件句柄數,不能超過1
3. /etc/security/limits.conf “work soft nofile xxxx”設置用戶單個進程的最大的文件句柄數,不能超過2,否則ssh無法登錄(今天的遇到的坑)。修改limit.conf前可以用 ulimit命令驗證一下你將要設置的值是否合法。
4. ulimit -n xxx 該命令只對當前終端有效。
1.limit限制每個shell進程和它的子進程對資源的占用。每個登錄,還是每個進程?
比如ulimit -n 10240 可以臨時改變當前session的shell進程的文件句柄數限制,退出當前窗口后,限制恢復。
要每個shell都生效,添加到系統啟動腳本中
也可以在進程啟動腳本前添加ulimit -n 命令
2.修改 /etc/security/limits,可以設置用戶級別的限制,包括軟限制和硬限制
3. /proc/sys/fs/file-max,可以設置系統級別的限制
應用:修改網絡連接數限制
http://blog.csdn.net/wh0426/article/details/52311683
1./etc/security/limits.conf中指定的nofile的值,nofile有上限,不是無窮大。nofile由內核參數nr_open定義的.
“在2.6.25內核之前有個宏定義,定義了這個值的最大值,為1024*1024,正好是100萬,而在2.6.25內核及其之后,這個值是可以通過/proc/sys/fs/nr_open來設置。”
2.使用cat /proc/sys/fs/nr_open 查看nr_open值,可通過修改/ect/sysct.conf 修改fs.nr_open值,sysctl -p生效
3.fix_max linux內核定義的最大file handles(文件句柄數).nr_open定義是單進程最大file-handles,file-handles(即文件句柄)
4./proc/sys/fs/file-nr 記錄系統中fd的使用情況,已分配文件句柄的數目
inode 或i節點是指對文件的索引。如一個系統,所有文件是放在磁盤或flash上,就要編個目錄來說明每個文件在什么地方,有什么屬性,及大小等。就像書本的目錄一樣,便於查找和管理。這目錄是操作系統需要的,用來找文件或叫管理文件。許多操作系統都用到這個概念,如linux, 某些嵌入式文件系統等。當然,對某個系統來說,有許多i節點。所以對i節點本身也是要進行管理的。
在linux中,內核通過inode來找到每個文件,但一個文件可以被許多用戶同時打開或一個用戶同時打開多次。這就有一個問題,如何管理文件的當前位移量,因為可能每個用戶打開文件后進行的操作都不一樣,這樣文件位移量也不同,當然還有其他的一些問題。所以linux又搞了一個文件描述符(file descriptor)這個東西,來分別為每一個用戶服務。每個用戶每次打開一個文件,就產生一個文件描述符,多次打開就產生多個文件描述符,一一對應,不管是同一個用戶,還是多個用戶。該文件描述符就記錄了當前打開的文件的偏移量等數據。所以一個i節點可以有0個或多個文件描述符。多個文件描述符可以對應一個i節點。
