修改Linux文件句柄數限制

 因爲linux系統裏都是以文件來表示的,所以在做搞併發的web系統時,修改文件句柄限制那是必須的。 




查看某個進程使用了的文件句柄數 

# sudo ps -ef | grep java 

root      1663     1  0 02:37 ?        00:00:43 /opt/bitnami/java/bin/java 

從結果中可得知進程的pid,然後根據pid查看該進程當前使用的文件句柄數 

#sudo ls /proc/1663/fd | wc -l 

1022 

發現句柄數一直就停留在1022,同時top查看發現load持續增高。於是先查看了下當前進程的句柄數限制。 

#sudo cat /proc/1663/limits | grep "files" 

Max open files            1024                1024                files 

發現限制卡在這了,於是修改/etc/sysctl.conf文件,添加一行如下: 

fs.file-max=30720 

保存。並執行 

#sudo sysctl -p 

然後再查看就發現已經改過來了。 

Google發現linux系統裏有兩種文件句柄限制,一種是系統級的,一種是用戶級的。 

修改系統級的:  

#echo "30720" > /proc/sys/fs/file-max 

修改用戶級的: 

#sudo vi /etc/security/limits.conf 

增加如下行: 

* soft nofile 2048 

* hard nofile 32768 

星號表示任何用戶,soft/hard表示軟限制、硬限制。修改/etc/pam.d/login文件指定使用PAM 

session required /lib/security/pam_limits.so 

不過需要注意的是系統是32位還是64位,若是64位的那就是/lib64/security/pam_limits.so 

上面的修改後,reboot,再次查看 

#ulimit -n 

30720 

修改成功。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章