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

linux進程數(shù)和句柄數(shù)使用及說明

 更新時間:2026年03月30日 16:40:47   作者:Zandon Cao  
本文主要介紹了Linux系統(tǒng)中進程和句柄的概念,并詳細解釋了用戶資源限制、service資源限制、系統(tǒng)資源限制的配置方法和查看方式,重點講解了進程數(shù)限制和句柄數(shù)限制的配置步驟和注意事項

注:linux版本CentOS7

一、進程和句柄概念

一個程序可能會打開多個實體,即進程;

一個進程在運行中會打開很多資源,包括文件file、通訊連接socket、正在監(jiān)聽的端口等,我們把這些統(tǒng)稱為句柄(handle),Linux中任何東西都是文件,所以當一個進程打開的句柄數(shù)超過系統(tǒng)限制時,我們會收到告警:too many open files。

二、Linux資源限制

1. 用戶資源限制

在Bash中有個ulimit命令,提供了對Shell及該Shell啟動的進程的可用資源控制。主要包括打開文件描述符數(shù)量、用戶的最大進程數(shù)量、coredump文件的大小等。

資源限制的配置可以在/etc/security/limits.conf或/etc/security/limits.d/ 下的子配置文件中配置,系統(tǒng)是先加載limits.conf然后按照英文字母順序加載limits.d目錄下的配置文件,后加載配置覆蓋之前的配置。 配置格式如下:

soft為warning值,hard為最大值,*代表匹配所有用戶

*     soft   nofile    65535
*     hard   nofile    65535
*     soft   nproc     10000
*     hard   nproc     10000
*     soft   core      20000
*     hard   core      20000

查看登錄當前shell的用戶資源限制

[root@localdomain ~]# ulimit  -a
core file size          (blocks, -c) 0   
data seg size           (kbytes, -d) unlimited  
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited   
pending signals                 (-i) 7424
max locked memory       (kbytes, -l) 64  
max memory size         (kbytes, -m) unlimited 
open files                      (-n) 1024 一個進程最多可打開句柄數(shù)
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024  當前用戶最多可打開的進程(包括線程)數(shù)
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2.service 資源限制

上面我們一直提到shell,那么對于那些不是通過PAM認證登錄的用戶,如mysql、nginx等,上述配置是不生效的;

因為在CentOS 7/RHEL 7的系統(tǒng)中,使用Systemd替代了之前的SysV,因此/etc/security/limits.conf 文件的配置作用域縮小了一些,limits.conf這里的配置,只適用于通過PAM認證登錄用戶的資源限制,它對systemd的service的資源限制不生效。

需要通過文件 /etc/systemd/system.conf 和 /etc/systemd/user.conf配置, 同樣,也會加載兩個對應的目錄中的所有.conf文件 /etc/systemd/system.conf.d/*.conf 和 /etc/systemd/user.conf.d/*.conf。

其中,system.conf 是系統(tǒng)實例使用的,user.conf用戶實例使用的。一般的sevice,使用system.conf中的配置即可。system.conf.d/*.conf中配置會覆蓋system.conf。

配置格式如下:

=左側(cè)為資源類型,右側(cè)為大小

vi /etc/systemd/system.conf 
......................
[Manager]
#LogLevel=info
#LogTarget=journal-or-kmsg
#LogColor=yes
#LogLocation=no
#DumpCore=yes
#CrashShell=no
#ShowStatus=yes
#CrashChVT=1
#CtrlAltDelBurstAction=reboot-force
#CPUAffinity=1 2
......................

查看某個service的資源限制

cat /proc/YOUR-PID/limits

如查看nginx service的配置效果:

$ cat /proc/$(cat /run/nginx.pid)/limits
  Limit                     Soft Limit           Hard Limit           Units
  Max cpu time              unlimited            unlimited            seconds
  Max file size             unlimited            unlimited            bytes
  Max data size             unlimited            unlimited            bytes
  Max stack size            8388608              unlimited            bytes
  Max core file size        unlimited            unlimited            bytes
  Max resident set          unlimited            unlimited            bytes
  Max processes             100000               100000               processes
 Max open files            100000               100000               files
 Max locked memory         65536                65536                bytes
 Max address space         unlimited            unlimited            bytes
 Max file locks            unlimited            unlimited            locks
 Max pending signals       1030606              1030606              signals
 Max msgqueue size         819200               819200               bytes
 Max nice priority         0                    0
 Max realtime priority     0                    0
 Max realtime timeout      unlimited            unlimited            us

3. 系統(tǒng)資源限制

前面對user和service進行了資源,但系統(tǒng)總的資源數(shù)量是多少呢?這就涉及到了內(nèi)核參數(shù),內(nèi)核參數(shù)眾多,我們只需要知道如何修改常用的,如進程數(shù)、句柄數(shù)即可

三、 進程數(shù)限制

1. 用戶進程數(shù)限制

/etc/security/limits.d/下默認存在一個子配置文件20-nproc.conf,用于設(shè)置每個用戶最大進程數(shù)

查看/etc/security/limits.d/20-nproc.conf會發(fā)現(xiàn),默認root用戶無限制,普通用戶進程數(shù)最大為4096

實際上roott和普通用戶默認是 # cat /proc/sys/kernel/threads-max的值/2,即系統(tǒng)線程數(shù)的一半

[root@localhost ~]# cat /etc/security/limits.d/20-nproc.conf 
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
*          soft    nproc     4096
root       soft    nproc     unlimited

設(shè)置每個用戶最大進程數(shù)

vim  /etc/security/limits.d/20-nproc.conf 
$ cat /etc/security/limits.d/90-nproc.conf 
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
#針對所有用戶,設(shè)置其可打開最大進程數(shù)為4096(hard),warning值為2048(soft);ulimit看大的是soft大小
* soft nproc 2048
* hard nproc 4096
限制用戶root可打開最大進程數(shù)為65535
root soft nproc 65535
root hard nproc 65535

注意:修改配置文件,不會改變當前已經(jīng)登錄的用戶的進程數(shù)限制

2. service進程數(shù)限制

[root@zandon ~]# vi /etc/systemd/system.conf 
#修改以下參數(shù)
DefaultLimitNPROC=65535
#使配置生效
systemctl daemon-reload
#如果某個服務句柄數(shù)已達到原限制,也需要重啟;
systemctl restart nginx.service

注意:修改配置文件,不會改變當前已經(jīng)啟動的service的進程數(shù)限制 ,需重啟

3. 系統(tǒng)總進程數(shù)

上面我們給每個用戶設(shè)置了其能打開的最大進程數(shù),但這樣并不能控制系統(tǒng)總的進程數(shù)(kernel.pid_max),假設(shè)kernel.pid_max=1000,用戶的max user processes,值無論設(shè)置多大,最多能打開的進程數(shù)依然為1000

查看全局的pid_max方法:

  • 方法一:
cat /proc/sys/kernel/pid_max
  • 方法二:
# sysctl kernel.pid_max
kernel.pid_max = 32768

臨時修改這個值方法:

echo 65535 > /proc/sys/kernel/pid_max

所以以上都操作完成后,才算是正確修改了max user processes 的值

上面只是臨時生效,重啟機器后會失效,永久生效方法:

在/etc/sysctl.conf中添加kernel.pid_max = 65535

# vim /etc/sysctl.conf
kernel.pid_max = 65535

或者:

echo "kernel.pid_max = 65535" >> /etc/sysctl.conf

然后重啟機器。

四、 句柄數(shù)限制

1. 用戶句柄數(shù)限制

登錄用戶的限制,與上面講的一樣,可通過/etc/security/limits.conf或 /etc/security/limits.d/下的子配置文件來配置,如下:

vi /etc/security/limits.conf
# /etc/security/limits.conf
#該文件只影響通過PAM登錄的用戶,不影響系統(tǒng)服務的資源限制
#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.
........................................................
#<domain>      <type>  <item>         <value>
#
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
#限制單進程可打開最大句柄數(shù)為65535(默認1024)
#soft為warning大小,hard為最大數(shù)量
* soft nofile 65535 
* hard nofile 65535
# End of file

注意:修改配置文件,不會改變當前已經(jīng)登錄的用戶的句柄數(shù)限制

2. service句柄數(shù)限制

#修改service句柄數(shù)限制
sed -i "s/#DefaultLimitNOFILE=/DefaultLimitNOFILE=655350/g"  /etc/systemd/system.conf
#使配置生效
sudo systemctl daemon-reload
#如果某個服務句柄數(shù)已達到原限制,也需要重啟;
sudo systemctl restart nginx.service

注意:修改配置文件,不會改變當前已經(jīng)啟動的service的句柄數(shù)限制

3. 系統(tǒng)總句柄數(shù)

上面設(shè)置了每個用戶可打開的進程數(shù),每個進程可打開的句柄數(shù);還有一個文件設(shè)置了系統(tǒng)所有進程可打開的總句柄數(shù),也就是說,這項參數(shù)是系統(tǒng)級別的。

  • 修改系統(tǒng)總句柄數(shù)最大值,方法如下(配置后即生效):
echo  6553560 > /proc/sys/fs/file-max
  • 查看系統(tǒng)當前使用的總句柄數(shù):
[root@bogon security]# cat /proc/sys/fs/file-nr
1408    0       95852    //1408為使用數(shù),95852為總數(shù)

總結(jié)

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

相關(guān)文章

  • Linux下tar解壓錯誤:文件損壞與不完整問題的解決方案

    Linux下tar解壓錯誤:文件損壞與不完整問題的解決方案

    在日常的 Linux 系統(tǒng)管理中,我們經(jīng)常需要使用 tar 命令來壓縮和解壓文件,然而,有時在解壓過程中會遇到諸如“文件損壞”或“意外結(jié)束”等錯誤提示,本文將詳細分析這些問題的原因,并提供一套完整的解決方案,需要的朋友可以參考下
    2025-02-02
  • Linux切換root用戶的幾種實現(xiàn)方式

    Linux切換root用戶的幾種實現(xiàn)方式

    在Linux系統(tǒng)中,root用戶為超級用戶,擁有最高權(quán)限,切換到root用戶的常用方法包括使用su、sudo、sudo-i和sudosu命令,每種方法適用于不同場景,需根據(jù)實際需求選擇,使用root權(quán)限需謹慎,以免對系統(tǒng)造成損壞
    2024-11-11
  • Linux中VirtualBox的虛擬機開機自啟方式

    Linux中VirtualBox的虛擬機開機自啟方式

    本文介紹如何通過創(chuàng)建start.sh腳本并設(shè)置開機自啟路徑,實現(xiàn)VirtualBox虛擬機的開機自動運行,包含檢查運行狀態(tài)、腳本編輯及權(quán)限配置步驟
    2025-09-09
  • Tomeat6.0 連接池數(shù)據(jù)庫配置

    Tomeat6.0 連接池數(shù)據(jù)庫配置

    關(guān)于tomeat6.0的連接數(shù)據(jù)庫配置實現(xiàn)代碼
    2009-03-03
  • Linux6.7卸載系統(tǒng)自帶的mysql-libs* crontab命令不能用了原因分析

    Linux6.7卸載系統(tǒng)自帶的mysql-libs* crontab命令不能用了原因分析

    這篇文章主要介紹了Linux6.7卸載系統(tǒng)自帶的mysql-libs* crontab命令不能用了原因分析及解決方法,非常不錯,需要的朋友參考下吧
    2016-12-12
  • Linux中的文件及目錄屬性知識點

    Linux中的文件及目錄屬性知識點

    這篇文章主要介紹了Linux中的文件及目錄屬性知識點,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • linux的CPU使用率達到100%的快速定位過程

    linux的CPU使用率達到100%的快速定位過程

    本文描述了在CentOS 7.9操作系統(tǒng)上排查CPU異常告警的過程,通過使用top和jstack命令,找到了最耗CPU的進程和線程,并根據(jù)堆棧信息定位到了對應代碼
    2024-12-12
  • linux修改mac地址方法分享

    linux修改mac地址方法分享

    這篇文章主要介紹了linux修改mac地址的方法,Linux下只需要一行指令就可以改變MAC地址,具體看下面的命令使用方法
    2014-03-03
  • p8net bet LINUX 云版本 1.b.1

    p8net bet LINUX 云版本 1.b.1

    這篇文章主要介紹了p8net bet LINUX 云版本 1.b.1,需要的朋友可以參考下
    2016-11-11
  • Linux模擬網(wǎng)絡(luò)丟包與延遲的方法

    Linux模擬網(wǎng)絡(luò)丟包與延遲的方法

    這篇文章主要給大家介紹了關(guān)于Linux模擬網(wǎng)絡(luò)丟包與延遲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Linux具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05

最新評論

陈巴尔虎旗| 黔江区| 汝南县| 普安县| 府谷县| 湾仔区| 鄯善县| 中江县| 昌乐县| 呼和浩特市| 梨树县| 乌鲁木齐市| 六盘水市| 新安县| 郓城县| 铁岭县| 米脂县| 淮阳县| 柳林县| 易门县| 龙岩市| 华安县| 应用必备| 河池市| 成安县| 台江县| 乌拉特中旗| 大同县| 滕州市| 民勤县| 桓台县| 宾阳县| 景谷| 平度市| 兴义市| 房山区| 西丰县| 渑池县| 云阳县| 卓尼县| 通榆县|