修改linux的最大文件句柄數限制
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到“too many files open”的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
1
lsof -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 使配置生效