【linux】linux修改文件句柄數量,linux文件句柄的修改分為用戶級和系統級


 

說明:

liunx中文件句柄有兩種,一種是用戶級的,一種是系統級的

文件句柄限制,就是規定的單個進程能夠打開的最大文件句柄數量(Socket連接也算在里面,默認大小1024)

 

1 用戶級的修改

  1.1 用戶級修改臨時生效方法

    重啟后失效
    ulimit 命令身是分軟限制和硬限制,加-H就是硬限制,加-S就是軟限制。默認顯示的是軟限制,如果運行ulimit 命令修改時沒有加上-H或-S,就是兩個參數一起改變。硬限制就是實際的限制,而軟限制是警告限制,它只會給出警告。

ulimit -SHn 10000

  

  1.2 用戶級修改永久有效方式

vi /etc/security/limits.conf

    修改/etc/security/limits.conf文件,添加如下內容:

    * soft nofile 204800  
    * hard nofile 204800

    * soft nproc 204800
    * hard nproc 204800

 

    或者分別執行如下四個命令:

  echo "* soft nofile 204800"  >> /etc/security/limits.conf
    echo "* hard nofile 204800"  >> /etc/security/limits.conf

    echo "* soft nproc 204800"  >> /etc/security/limits.conf
    echo "* hard nproc 204800 "  >> /etc/security/limits.conf

 

    vi修改和echo最終效果一樣,都是修改該文件(* 表示所用的用戶)

 

    1.3 用戶級永久生效方式修改后,重啟服務器

reboot

 

    1.4 查看用戶級修改是否生效

ulimit -a

 

 

2 系統級修改

    其實上面的修改都是對一個進程打開的文件句柄數量的限制,我們還需要設置系統的總限制才可以。

    假如,我們設置進程打開的文件句柄數是1024 ,但是系統總線制才500,所以所有進程最多能打開文件句柄數量500。從這里我們可以看出只設置進程的打開文件句柄的數量是不行的。所以需要修改系統的總限制才可以。

 

  2.1  臨時修改方式

echo  6553560 > /proc/sys/fs/file-max

 

 

  2.2  永久生效方式

vi /etc/sysctl.conf

    修改/etc/sysctl.conf 文件,加入:

fs.file-max=65535

    

    或者執行如下修改命令:

echo   fs.file-max = 6553560  >> /etc/sysctl.conf

    使用vi修改文件和使用echo修改文件,最終效果都一樣。

 

  2.3 系統級永久生效方式修改后,重啟服務器,才能生效

 

reboot

 

  2.4 查看系統級文件句柄修改,是否生效

sudo sysctl -p

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM