cat /proc/sys/fs/file-nr
3391 969 52427
| | |
| | |
| | maximum open file descriptors
| total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)
修改linux系統最大打開文件數
當前設置最大打開文件數可以通過如下命令查看。
ulimit -n
這個數字說明了一個普通用戶能夠在一個單獨會話中所能打開最大的文件數目。注意。如果是root,以下操作不能使ulimit -n的輸出增加。因為用戶root用戶不受這個ulimit限制。只有普通用戶才會受這個限制。
為了提高最大打開文件數到默認值1024以上, 需要在系統上修改2個地方。 在這個案例中, 我們將最大打開文件數增加到2048。 所有的步驟需要root用戶操作。 普通用戶需要重新登錄才能使設置生效。
1. 按照最大打開文件數量的需求設置系統, 並且通過檢查/proc/sys/fs/file-max文件來確認最大打開文件數已經被正確設置。
# cat /proc/sys/fs/file-max
如果設置值太小, 修改文件/etc/sysctl.conf的變量到合適的值。 這樣會在每次重啟之後生效。 如果設置值夠大,跳過下步。
# echo 2048 > /proc/sys/fs/file-max編輯文件/etc/sysctl.conf,插入下行。 fs.file-max = 2048
2. 在/etc/security/limits.conf文件中設置最大打開文件數, 下面是一行提示:
# 添加如下這行。
* - nofile 2048
這行設置了每個用戶的默認打開文件數為2048。 注意"nofile"項有兩個可能的限制措施。就是項下的hard和soft。 要使修改過得最大打開文件數生效,必須對這兩種限制進行設定。 如果使用"-"字符設定, 則hard和soft設定會同時被設定。
硬限制表明soft限制中所能設定的最大值。 soft限制指的是當前系統生效的設置值。 hard限制值可以被普通用戶降低。但是不能增加。 soft限制不能設置的比hard限制更高。 只有root用戶才能夠增加hard限制值。
當增加文件限制描述,可以簡單的把當前值雙倍。 例子如下, 如果你要提高默認值1024, 最好提高到2048, 如果還要繼續增加, 就需要設置成4096。
3.Add the following line to the /etc/pam.d/login and /etc/pam.d/xdm file, if it does not already exist:
session required /lib/security/pam_limits.so
4. logout and logon
或者在shell配置文件裡面動態加載。如.bashrc裡加:
ulimit -HSn 2048