国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > CentOS > 正文

CentOS最大文件描述符限制更改

2024-06-28 13:19:04
字體:
來源:轉載
供稿:網友
CentOS最大文件描述符限制更改

文件描述符是系統資源的一種。linux 對系統資源的管理是一個分層級的管理。

  系統級的管理:/PRoc/sys/fs/file-max中設定了系統最大能打開的文件數。     查看該值可以用如下方式:      [root@#panda ~]# cat /proc/sys/fs/file-max      655351      [root@#panda ~]# sysctl fs.file-max      fs.file-max = 655351      [root@#panda ~]#     修改該值可以用如下方式:      [root@#panda ~]# echo 655300 > /proc/sys/fs/file-max      [root@#panda ~]# sysctl fs.file-max      fs.file-max = 655300      [root@#panda ~]# sysctl -w fs.file-max=655350      fs.file-max = 655350      [root@#panda ~]# sysctl fs.file-max      fs.file-max = 655350      [root@#panda ~]#     上面方式修改的值會立即生效但是機器重啟后又會失效。永久生效的修改可以用下面的方式:      [root@#panda etc]# echo fs.file-max=524288 >> /etc/sysctl.conf      [root@#panda etc]# sysctl fs.file-max      fs.file-max = 655350      [root@#panda etc]# sysctl -p      fs.file-max = 524288      [root@#panda etc]# sysctl fs.file-max      fs.file-max = 524288      [root@#panda etc]#    執行了sysctl -p 命令之后 sysctl.conf中的修改才能立即生效。    還有一個問題是file-max最大能設置多大呢?當然你可以把它往大了設,但是同時打開的文件描述符越多,內存開銷就越大。那怎樣設置一個合理的上限呢?一個經驗算法是 256個fd 需4M內存。例如8G內存,8*1024/4*256=524288。

  用戶級的管理:/etc/security/limit.conf 可以添加用戶使用資源的限制    設置格式為:      username|@groupname type resource limit      username|@groupname:設置需要被限制的用戶名,組名前面加@和用戶名區別。也可以用通配符*來做所有用戶的限制。      type:有 soft,hard 和 -,soft 指的是當前系統生效的設置值。hard 表明系統中所能設定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同時設置了 soft 和 hard 的值      resource: 為資源類型有多種。 nofile為最大打開文件數。      例如:* - nofile 655350 將所有用戶的最大打開文件數的soft和hard都設為655350    對/etc/security/limit.conf的修改會在新的會話期中生效

  會話級的管理:ulimit 命令查看和設置當前會話期的資源限制

    ulimit -Sn 查看會話期最大文件描述符soft限制    ulimit -Hn 查看會話期最大文件描述符hard限制,hard限制是soft的上限。    ulimit -Sn 2046 限制當前會話期內能打開的文件數為2046(如果其中一個進程打開了2046個,其他進程再打文件都將失敗)。    ulimit -Sn 查看到的默認1024,用ulimit所做的修改在會話期結束后都將失效。那如何讓對會話級的資源限制設置永久生效呢?可以把ulimit 命令放到會話建立時初始化的過程中執行,這樣每次會話期就都自動執行命令修改設置了。例如在用戶目錄下的.bashrc 中加入一行 ulimit -Sn 2046,要對所有用戶都生效則可在/etc/profile中加入一行命令ulimit -Sn 2046。容易被忽略的一點是,如果我們設置了用戶級的限制,新建的會話期的資源限制的初值(ulimit -Sn 查看到的)是從用戶級的限制值(/etc/security/limit.conf中設置的值)繼承過來的。

進程級的管理:進程可以調用getrlimit和setrlimit來設置和修改對應資源的限制。  例如:    rlimit tmp={4095,4096};    setrlimit(RLIMIT_NOFILE,&tmp); //設置進程打開文件數的軟硬限制分別為4095,4096

總結:單個進程最大能使用的文件描述符是由系統限制,用戶限制,會話期限制,進程限制值中最小的那個決定的。如果我們在一臺機器上部署了自己的網絡服務,我們只需按下面步驟修改就可以了:  1. 計算 fdmax = 物理內存大小(m為單位) / 4 * 256 假設內存為8G,fdmax=524288  2. 執行命令: sysctl -w fs.file-max524288  3. 執行命令:sysctl -p  4. 執行命令:echo * soft nofile 524286>>/etc/security/limit.conf  5. 執行命令:echo * hard nofile524287>>/etc/security/limit.conf  5. 結束當前會話期  6. 啟動新的會話  7.啟動我們的服務


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合阳县| 嘉黎县| 蒲江县| 额敏县| 离岛区| 全南县| 沂水县| 子洲县| 澄迈县| 无极县| 隆化县| 哈密市| 蒲城县| 自贡市| 山东省| 龙口市| 香港| 沈丘县| 遂宁市| 信阳市| 宝鸡市| 瑞金市| 三都| 合肥市| 南木林县| 望奎县| 霍城县| 阿拉尔市| 贵德县| 长汀县| 嘉祥县| 斗六市| 弥勒县| 石棉县| 土默特右旗| 安徽省| 安徽省| 阿尔山市| 博兴县| 中山市| 富宁县|