成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux服務器上設置ulimit和文件描述符數限制

系統(tǒng) Linux
在生產環(huán)境中遇到打開文件數這類的挑戰(zhàn)如今已是司空見慣的事情了。因為許多應用程序是基于 Java 和 Apache 的,安裝和配置它們可能會導致打開過多的文件(文件描述符)。

[[270103]]

 簡介:在生產環(huán)境中遇到打開文件數這類的挑戰(zhàn)如今已是司空見慣的事情了。因為許多應用程序是基于 Java 和 Apache 的,安裝和配置它們可能會導致打開過多的文件(文件描述符)。如果打開的文件描述符超過了默認設置的限制,就可能會面臨訪問控制問題,受阻于打開文件的挑戰(zhàn)。許多生產環(huán)境因此而陷入停滯狀態(tài)。

幸運的是,在基于 Linux 的服務器上,都有 ulimit 命令,通過它可以查看、設置、獲取文件打開的狀態(tài)和配置詳情。此命令配備了許多選項,通過這些組合可以設置打開文件的數量。下面逐個命令用示例做了詳細說明。

查看任何 Linux 系統(tǒng)中當前打開文件數的限制

要在 Linux 服務器上得到打開文件數的限制,請執(zhí)行以下命令,

  1. [root@ubuntu ~]# cat /proc/sys/fs/file-max
  2. 146013

上面的數字表明用戶可以在每個用戶登錄會話中打開 ‘146013’ 個文件。

  1. [root@centos ~]# cat /proc/sys/fs/file-max
  2. 149219
  3. [root@debian ~]# cat /proc/sys/fs/file-max
  4. 73906

這清楚地表明,各個 Linux 操作系統(tǒng)具有不同的打開文件數限制。這基于各自系統(tǒng)中運行的依賴關系和應用程序。

ulimit 命令

顧名思義,ulimit(用戶限制)用于顯示和設置登錄用戶的資源限制。當我們使用 -a 選項運行 ulimit 命令時,它將打印登錄用戶的所有資源限制。現在讓我們在 Ubuntu/Debian 和 CentOS 系統(tǒng)上運行 ulimit -a

Ubuntu / Debian 系統(tǒng)

  1. shashi@Ubuntu ~}$ ulimit -a
  2. core file size (blocks, -c) 0
  3. data seg size (kbytes, -d) unlimited
  4. scheduling priority (-e) 0
  5. file size (blocks, -f) unlimited
  6. pending signals (-i) 5731
  7. max locked memory (kbytes, -l) 64
  8. max memory size (kbytes, -m) unlimited
  9. open files (-n) 1024
  10. pipe size (512 bytes, -p) 8
  11. POSIX message queues (bytes, -q) 819200
  12. real-time priority (-r) 0
  13. stack size (kbytes, -s) 8192
  14. cpu time (seconds, -t) unlimited
  15. max user processes (-u) 5731
  16. virtual memory (kbytes, -v) unlimited
  17. file locks (-x) unlimited

CentOS 系統(tǒng)

  1. shashi@centos ~}$ ulimit -a
  2. core file size (blocks, -c) 0
  3. data seg size (kbytes, -d) unlimited
  4. scheduling priority (-e) 0
  5. file size (blocks, -f) unlimited
  6. pending signals (-i) 5901
  7. max locked memory (kbytes, -l) 64
  8. max memory size (kbytes, -m) unlimited
  9. open files (-n) 1024
  10. pipe size (512 bytes, -p) 8
  11. POSIX message queues (bytes, -q) 819200
  12. real-time priority (-r) 0
  13. stack size (kbytes, -s) 8192
  14. cpu time (seconds, -t) unlimited
  15. max user processes (-u) 5901
  16. virtual memory (kbytes, -v) unlimited
  17. file locks (-x) unlimited

正如我們可以在這里看到的,不同的操作系統(tǒng)具有不同的限制設置。所有這些限制都可以使用 ulimit 命令進行配置/更改。

要顯示單個資源限制,可以在 ulimit 命令中傳遞特定的參數,下面列出了一些參數:

  • ulimit -n –> 顯示打開文件數限制
  • ulimit -c –> 顯示核心轉儲文件大小
  • umilit -u –> 顯示登錄用戶的最大用戶進程數限制
  • ulimit -f –> 顯示用戶可以擁有的最大文件大小
  • umilit -m –> 顯示登錄用戶的最大內存大小
  • ulimit -v –> 顯示最大內存大小限制

使用以下命令檢查登錄用戶打開文件數量的硬限制和軟限制:

  1. shashi@Ubuntu ~}$ ulimit -Hn
  2. 1048576
  3. shashi@Ubuntu ~}$ ulimit -Sn
  4. 1024

如何修復達到最大文件數限制的問題?

讓我們假設我們的 Linux 服務器已經達到了打開文件的最大數量限制,并希望在系統(tǒng)范圍擴展該限制,例如,我們希望將 100000 設置為打開文件數量的限制。

  1. root@ubuntu~]# sysctl -w fs.file-max=100000
  2. fs.file-max = 100000

上述更改將在下次重啟之前有效,因此要使這些更改在重啟后仍存在,請編輯文件 /etc/sysctl.conf 并添加相同的參數,

  1. root@ubuntu~]# vi /etc/sysctl.conf
  2. fs.file-max = 100000

保存文件并退出。

運行下面命令,使上述更改立即生效,而無需注銷和重新啟動。

  1. root@ubuntu~]# sysctl -p

現在驗證新的更改是否生效。

  1. root@ubuntu~]# cat /proc/sys/fs/file-max
  2. 100000

使用以下命令找出當前正在使用的文件描述符數量:

  1. [root@ansible ~]# more /proc/sys/fs/file-nr
  2. 1216 0 100000

注意:命令 sysctl -p 用于在不重新啟動和注銷的情況下提交更改。

通過 limit.conf 文件設置用戶級資源限制

/etc/sysctl.conf 文件用于設置系統(tǒng)范圍的資源限制,但如果要為 Oracle、MariaDB 和 Apache 等特定用戶設置資源限制,則可以通過 /etc/security/limits.conf 文件去實現。

示例 limits.conf 如下所示,

  1. root@ubuntu~]# cat /etc/security/limits.conf

假設我們要為 linuxtechi 用戶設置打開文件數量的硬限制和軟限制,而對于 oracle 用戶設置打開進程數量的硬限制和軟限制,編輯文件 /etc/security/limits.conf 并添加以下行:

  1. # hard limit for max opened files for linuxtechi user
  2. linuxtechi hard nofile 4096
  3. # soft limit for max opened files for linuxtechi user
  4. linuxtechi soft nofile 1024
  5.  
  6. # hard limit for max number of process for oracle user
  7. oracle hard nproc 8096
  8. # soft limit for max number of process for oracle user
  9. oracle soft nproc 4096

保存文件并退出。

注意: 如果你想對一個組而不是用戶進行資源限制,那么也可以通過 limits.conf 文件,輸入 @<組名> 代替用戶名,其余項都是相同的,示例如下,

  1. # hard limit for max opened files for sysadmin group
  2. @sysadmin hard nofile 4096
  3. # soft limit for max opened files for sysadmin group
  4. @sysadmin soft nofile 1024

驗證新的更改是否生效:

  1. ~]# su - linuxtechi
  2. ~]$ ulimit -n -H
  3. 4096
  4. ~]$ ulimit -n -S
  5. 1024
  6.  
  7. ~]# su - oracle
  8. ~]$ ulimit -H -u
  9. 8096
  10. ~]$ ulimit -S -u
  11. 4096

注:其他主要使用的命令是 lsof,可用于找出“當前打開了多少個文件”,這命令對管理員非常有幫助。

結尾

正如在介紹部分提到的,ulimit 命令非常強大,可以幫助用戶配置并確保應用程序安裝更加流暢而沒有任何瓶頸。此命令有助于修復基于 Linux 的服務器中的(打開)大量文件的限制。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-07-09 14:30:16

LinuxJava 服務器

2019-03-05 22:15:08

BashLinux命令

2025-01-10 15:13:38

2022-07-18 10:15:14

文件傳輸協(xié)議TFTPLinux

2022-08-24 08:33:27

Git系統(tǒng)Linux

2009-07-15 09:42:46

2023-04-06 15:22:15

Linux進程系統(tǒng)

2019-07-05 14:20:45

RPC服務器模型

2017-03-21 11:12:22

LinuxAmazon AWS服務器

2020-02-07 18:16:01

進程線程底層原理

2012-08-08 10:31:41

IBMdW

2021-05-19 14:48:58

Linux文件fd

2020-03-02 18:16:12

FedoraLinuxMongoDB

2016-03-30 10:33:30

Linux服務器管理Cockpit

2020-07-28 09:45:29

LinuxCaddyHTTPS

2022-10-27 10:02:58

UbuntuLinux

2011-03-04 15:19:50

VsFTP

2016-10-28 21:55:28

Javascript屬性特性屬性描述符

2009-07-08 09:46:45

Servlet注釋部署描述符

2015-12-11 13:16:10

CentOS 7Redis服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美视频在线 | 男插女下体视频 | 国产精品一区二区三区在线 | 欧美成视频| 日韩在线播放中文字幕 | 可以在线观看av的网站 | 国产精品乱码一区二区三区 | 视频三区 | 99久久婷婷国产综合精品电影 | 一区二区三区视频在线免费观看 | 国产一区三区在线 | 久久久久电影 | аⅴ资源新版在线天堂 | 欧美激情综合色综合啪啪五月 | 国产女人第一次做爰毛片 | 国产精品视频久久久久 | 日韩国产免费观看 | 久久精品久久精品久久精品 | 日本久久网 | 国产专区视频 | 久久久精品网站 | 久久精品二区亚洲w码 | 亚洲免费视频在线观看 | 欧美一区二区久久 | 免费观看的黄色网址 | 国产成人jvid在线播放 | 精品久久久久一区二区国产 | 久久99国产精品 | 亚洲高清视频在线 | 久久伊人免费视频 | 亚洲精品毛片av | av夜夜操| 黄色大片网站 | 亚洲不卡在线观看 | 午夜一区二区三区 | 人人干人人干人人干 | 国产精品二区三区 | 亚洲欧洲成人av每日更新 | 亚洲精品中文字幕在线 | 免费国产一区二区视频 | 色爱区综合 |