自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Linux 服務(wù)器上設(shè)置 ulimit 和文件描述符數(shù)限制

系統(tǒng) Linux
在生產(chǎn)環(huán)境中遇到打開(kāi)文件數(shù)這類(lèi)的挑戰(zhàn)如今已是司空見(jiàn)慣的事情了。因?yàn)樵S多應(yīng)用程序是基于 Java 和 Apache 的,安裝和配置它們可能會(huì)導(dǎo)致打開(kāi)過(guò)多的文件(文件描述符)。如果打開(kāi)的文件描述符超過(guò)了默認(rèn)設(shè)置的限制,就可能會(huì)面臨訪問(wèn)控制問(wèn)題,受阻于打開(kāi)文件的挑戰(zhàn)。許多生產(chǎn)環(huán)境因此而陷入停滯狀態(tài)。

在生產(chǎn)環(huán)境中遇到打開(kāi)文件數(shù)這類(lèi)的挑戰(zhàn)如今已是司空見(jiàn)慣的事情了。因?yàn)樵S多應(yīng)用程序是基于 Java 和 Apache 的,安裝和配置它們可能會(huì)導(dǎo)致打開(kāi)過(guò)多的文件(文件描述符)。如果打開(kāi)的文件描述符超過(guò)了默認(rèn)設(shè)置的限制,就可能會(huì)面臨訪問(wèn)控制問(wèn)題,受阻于打開(kāi)文件的挑戰(zhàn)。許多生產(chǎn)環(huán)境因此而陷入停滯狀態(tài)。

[[270094]]

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

查看任何 Linux 系統(tǒng)中當(dāng)前打開(kāi)文件數(shù)的限制

要在 Linux 服務(wù)器上得到打開(kāi)文件數(shù)的限制,請(qǐng)執(zhí)行以下命令,

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

上面的數(shù)字表明用戶可以在每個(gè)用戶登錄會(huì)話中打開(kāi) ‘146013’ 個(gè)文件。

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

這清楚地表明,各個(gè) Linux 操作系統(tǒng)具有不同的打開(kāi)文件數(shù)限制。這基于各自系統(tǒng)中運(yùn)行的依賴(lài)關(guān)系和應(yīng)用程序。

ulimit 命令

顧名思義,ulimit(用戶限制)用于顯示和設(shè)置登錄用戶的資源限制。當(dāng)我們使用 -a 選項(xiàng)運(yùn)行 ulimit 命令時(shí),它將打印登錄用戶的所有資源限制。現(xiàn)在讓我們?cè)?Ubuntu/Debian 和 CentOS 系統(tǒng)上運(yùn)行 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)具有不同的限制設(shè)置。所有這些限制都可以使用 ulimit 命令進(jìn)行配置/更改。

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

  • ulimit -n –> 顯示打開(kāi)文件數(shù)限制
  • ulimit -c –> 顯示核心轉(zhuǎn)儲(chǔ)文件大小
  • umilit -u –> 顯示登錄用戶的最大用戶進(jìn)程數(shù)限制
  • ulimit -f –> 顯示用戶可以擁有的最大文件大小
  • umilit -m –> 顯示登錄用戶的最大內(nèi)存大小
  • ulimit -v –> 顯示最大內(nèi)存大小限制

使用以下命令檢查登錄用戶打開(kāi)文件數(shù)量的硬限制和軟限制:

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

如何修復(fù)達(dá)到最大文件數(shù)限制的問(wèn)題?

讓我們假設(shè)我們的 Linux 服務(wù)器已經(jīng)達(dá)到了打開(kāi)文件的最大數(shù)量限制,并希望在系統(tǒng)范圍擴(kuò)展該限制,例如,我們希望將 100000 設(shè)置為打開(kāi)文件數(shù)量的限制。

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

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

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

保存文件并退出。

運(yùn)行下面命令,使上述更改立即生效,而無(wú)需注銷(xiāo)和重新啟動(dòng)。

  1. root@ubuntu~]# sysctl -p 

現(xiàn)在驗(yàn)證新的更改是否生效。

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

使用以下命令找出當(dāng)前正在使用的文件描述符數(shù)量:

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

注意:命令 sysctl -p 用于在不重新啟動(dòng)和注銷(xiāo)的情況下提交更改。

通過(guò) limit.conf 文件設(shè)置用戶級(jí)資源限制

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

示例 limits.conf 如下所示,

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

 

 

Limits-conf-linux-part1

Limits-conf-linux-part2假設(shè)我們要為 linuxtechi 用戶設(shè)置打開(kāi)文件數(shù)量的硬限制和軟限制,而對(duì)于 oracle 用戶設(shè)置打開(kāi)進(jìn)程數(shù)量的硬限制和軟限制,編輯文件 /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. # hard limit for max number of process for oracle user 
  6. oracle           hard    nproc          8096 
  7. # soft limit for max number of process for oracle user 
  8. oracle           soft    nproc          4096 

保存文件并退出。

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

  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 

驗(yàn)證新的更改是否生效:

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

注:其他主要使用的命令是 lsof,可用于找出“當(dāng)前打開(kāi)了多少個(gè)文件”,這命令對(duì)管理員非常有幫助。

結(jié)尾

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

責(zé)任編輯:華軒 來(lái)源: Linux中國(guó)
相關(guān)推薦

2019-07-09 15:30:31

Linuxulimit文件描述符

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

2019-07-05 14:20:45

RPC服務(wù)器模型

2023-04-06 15:22:15

Linux進(jìn)程系統(tǒng)

2009-07-15 09:42:46

2020-02-07 18:16:01

進(jìn)程線程底層原理

2017-03-21 11:12:22

LinuxAmazon AWS服務(wù)器

2012-08-08 10:31:41

IBMdW

2021-05-19 14:48:58

Linux文件fd

2016-03-30 10:33:30

Linux服務(wù)器管理Cockpit

2020-07-28 09:45:29

LinuxCaddyHTTPS

2022-10-27 10:02:58

UbuntuLinux

2011-03-04 15:19:50

VsFTP

2020-03-02 18:16:12

FedoraLinuxMongoDB

2023-12-13 14:01:34

Elasticsea文件描述符操作系統(tǒng)

2021-06-18 06:02:24

內(nèi)核文件傳遞

2017-02-05 10:06:53

Python黑魔法描述符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)