最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux宿主機下/容器下如何修改進程打開的文件句柄數(open files)

 更新時間:2024年10月10日 14:34:59   作者:Leon_start  
系統(tǒng)級的max-file和進程級的ulimit-n分別控制文件句柄的最大數量,系統(tǒng)級限制整個系統(tǒng),而ulimit-n只限制單個進程,當進程打開的文件句柄數超限時,會報“Too many files open”錯誤,可以通過特定命令查看和修改這些值

Linux宿主機下/容器下修改進程打開的文件句柄數

背景1:平臺調用算法出現異常,查看數據庫調用錯誤狀態(tài)碼是499

  • 499:(客戶端主動關閉請求);客戶端向服務端發(fā)起請求,服務器端處理的時間過長,超出了客戶端的超時時間,客戶端主動斷開連接。  
  • ## 這個報錯表明請求已經打到了后端算法,只是后端算法請求太多導致的,遲遲沒有響應客戶端并返回結果而導致斷開連接,此時可以增加服務后端節(jié)點數分攤壓力或者增加文件句柄數(增加文件句柄數可以讓算法接收更多的請求)

背景2:錯誤日志出現“Too many open files“等文件打開太多等錯誤,出現文件描述符耗盡的問題

背景3:容器里面的服務啟動異常,排查發(fā)現容器里面文件句柄數太少,大概率是容器本身配置的句柄數過低

  • max-file 表示系統(tǒng)級別的能夠打開的文件句柄的數量。是對整個系統(tǒng)的限制,并不是針對用戶的。
  • ulimit -n 控制進程級別能夠打開的文件句柄的數量。提供對shell及其啟動的進程的可用文件句柄的控制,這是進程級別的

對于服務器,一般修改進程級的最大打開文件句柄數即可(系統(tǒng)默認1024,有點?。R话悴恍枰{整系統(tǒng)級的最大數。

如果出現了達到系統(tǒng)級別最大限制時,也需要同步調整系統(tǒng)級的最大數的。

一、查看系統(tǒng)最大句柄數

Linux 中,單個進程能夠打開的最大文件句柄數量是可以配置的,系統(tǒng)默認是 1024。

當單個進程打開的文件句柄數量超過了系統(tǒng)定義的值,就會出現“Too many files open”的錯誤提示。

用戶可以通過以下命令查看系統(tǒng)定義的最大值:

#查看文件句柄
[root@localhost ~]# ulimit -a
#查看當前進程打開了多少句柄數:
[root@localhost ~]# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 
131 24204 
57 24244   
57 24231 ......
?
其中第一列是打開的句柄數,第二列是進程ID??梢愿鶕蘒D號來查看進程名:
[root@localhost ~]# ps aef|grep 24204
nginx  24204 24162 99 16:15 ?    00:24:25 /usr/local/nginx/sbin/nginx -s

二、修改文件句柄(進程級別)

#對于一般的應用程序而言 1024 已經完全夠用了,但是有些進程處理大量請求,很有可能 1024 就不夠用了,則需要調整系統(tǒng)參數,一般可以設置4096、65535或者102400,設置的太高會影響性能,并不是想設置多高就多高,畢竟打開的文件句柄數越多響應時間肯定會越慢

#臨時生效
[root@localhost ~]# ulimit -n 4096
#永久生效法一:把這個臨時生效的命令放在.bashrc或者.bash_profile配置文件里就可以永久生效了
[root@localhost ~]# echo "ulimit -n 4096" >> ~/.bashrc 
#永久生效法二
[root@localhost ~]# vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

提示:* 表示所用的用戶,但有的系統(tǒng)不認, 需要具體的用戶名, 比如:
root soft nofile 65535
root hard nofile 65535
重新登錄驗證,或reboot后驗證。

三、修改max user processes進程數

#臨時生效
[root@localhost ~]# ulimit -u 65536
#永久生效
[root@localhost ~]# vim /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536

四、查看系統(tǒng)最大打開文件描述符數量(系統(tǒng)級別)

[root@localhost ~]# cat /proc/sys/fs/file-max  #查看系統(tǒng)最大打開文件描述符數量
180965
[root@localhost ~]# echo "1000000" > /proc/sys/fs/file-max   #臨時設置該值
?
#永久性設置,需要在/etc/sysctl.conf中設置,并讓它生效:
[root@localhost ~]# echo "fs.file-max = 1000000" >> /etc/sysctl.conf 
[root@localhost ~]# sysctl -p
fs.file-max = 1000000

注意:

  • 所有進程打開的文件描述符數量不能超過/proc/sys/fs/file-max。
  • 單個進程打開的文件描述符數不能超過user limit中nofile的soft limit。
  • nofile的soft limit不能超過其hard limit。

五、容器內部修改文件句柄

##這是針對已經run起來的容器修改文件句柄
[root@localhost ~]# ps -ef | grep dockerd
root      57213      1  0 Jan13 ?        02:49:32 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --icc=false --default-ulimit nproc=1024:2408 --default-ulimit nofile=100:200
root     126923 122986  0 10:44 pts/2    00:00:00 grep --color=auto dockerd

[root@localhost ~]# cat /usr/lib/systemd/system/docker.service
#把宿主機本身容器配置文件這一條修改后重啟就會生效
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --icc=false --default-ulimit nproc=1024:2408 --default-ulimit nofile=65535:131070

[root@localhost ~]# systemctl restart docker && systemctl daemon-reload

--default-ulimit nofile=100:200,也就是文件句柄容器內100,宿主機200

#沒有run運行起來的容器,可以直接在容器啟動命令添加限制參數:
--ulimit nofile=65535:65535,容器啟動完成后,在容器內查看java進程句柄數限制(已經成功修改為65535)
[root@localhost ~]# docker run --ulimit nofile=65535:65535 ...

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • apache無法啟動的可能原因分析及對策

    apache無法啟動的可能原因分析及對策

    在遇到apache無法啟動時,可以參照如下可能的原因進行分析與解決,有類似情況的朋友可以參考下哈
    2013-05-05
  • linux殺進程的多種方法

    linux殺進程的多種方法

    這篇文章主要介紹了linux殺進程的多種方法,需要的朋友可以參考下
    2014-03-03
  • 詳解firewall的規(guī)則設置與命令(白名單設置)

    詳解firewall的規(guī)則設置與命令(白名單設置)

    這篇文章主要介紹了詳解firewall的規(guī)則設置與命令(白名單設置),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 關于進程間通信的Linux小程序

    關于進程間通信的Linux小程序

    這篇文章主要為大家詳細介紹了一個關于進程間通信的Linux小程序,主要利用共享內存實現進程間通信,使用管道實現進程間競爭關系,感興趣的朋友可以參考一下
    2016-05-05
  • linux sort多字段排序實例解析

    linux sort多字段排序實例解析

    這篇文章主要介紹了linux sort多字段排序實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Linux下如何尋找相同文件的方法

    Linux下如何尋找相同文件的方法

    這篇文章主要介紹了Linux下如何尋找相同文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 詳細介紹通過配置Apache實現404頁面替換

    詳細介紹通過配置Apache實現404頁面替換

    這篇文章主要介紹了詳細介紹通過配置Apache實現404頁面替換的相關資料,這里提供實現方法,希望能幫助到大家,需要的朋友可以參考下
    2017-08-08
  • Gentoo 下安裝與配置Nginx+ MySQL + PHP (fastcgi) 環(huán)境步驟分享

    Gentoo 下安裝與配置Nginx+ MySQL + PHP (fastcgi) 環(huán)境步驟分享

    Gentoo 下安裝與配置Nginx+ MySQL + PHP (fastcgi) 環(huán)境步驟,需要的朋友可以參考下
    2013-02-02
  • linux環(huán)境openssl、openssh升級流程

    linux環(huán)境openssl、openssh升級流程

    該文章詳細介紹了在Ubuntu 22.04系統(tǒng)上升級OpenSSL和OpenSSH的方法,首先,升級OpenSSL的步驟包括下載最新版本、安裝編譯環(huán)境、備份和安裝、驗證等,然后,升級OpenSSH的步驟包括下載最新版本、安裝相關依賴、解壓和編譯安裝、查看版本、備份替換文件、重啟服務等
    2025-03-03
  • Linux服務器NFS文件共享的實現方式

    Linux服務器NFS文件共享的實現方式

    項目上用到文件服務,文件存儲使用的是服務器本地磁盤,需要在多個服務器上部署文件服務以及在其他服務上面,也需要像讀取本地文件一樣讀取上傳上來的文件,所以本文給大家介紹了Linux服務器NFS文件共享的實現方式,需要的朋友可以參考下
    2025-10-10

最新評論

吴桥县| 鹤壁市| 十堰市| 新田县| 隆化县| 东阳市| 建始县| 连城县| 棋牌| 南宫市| 固始县| 收藏| 玛纳斯县| 繁峙县| 华坪县| 图木舒克市| 大冶市| 常宁市| 东山县| 墨脱县| 含山县| 彭阳县| 永吉县| 长葛市| 南木林县| 福建省| 莲花县| 通城县| 嘉鱼县| 辽宁省| 原阳县| 渭南市| 阿拉尔市| 阿巴嘎旗| 涪陵区| 道孚县| 攀枝花市| 洞口县| 澄城县| 清镇市| 仙桃市|