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

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

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

注:linux版本CentOS7

一、進(jìn)程和句柄概念

一個(gè)程序可能會(huì)打開多個(gè)實(shí)體,即進(jìn)程;

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

二、Linux資源限制

1. 用戶資源限制

在Bash中有個(gè)ulimit命令,提供了對(duì)Shell及該Shell啟動(dòng)的進(jìn)程的可用資源控制。主要包括打開文件描述符數(shù)量、用戶的最大進(jìn)程數(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

查看登錄當(dāng)前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 一個(gè)進(jìn)程最多可打開句柄數(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  當(dāng)前用戶最多可打開的進(jìn)程(包括線程)數(shù)
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2.service 資源限制

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

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

需要通過文件 /etc/systemd/system.conf 和 /etc/systemd/user.conf配置, 同樣,也會(huì)加載兩個(gè)對(duì)應(yīng)的目錄中的所有.conf文件 /etc/systemd/system.conf.d/*.conf 和 /etc/systemd/user.conf.d/*.conf。

其中,system.conf 是系統(tǒng)實(shí)例使用的,user.conf用戶實(shí)例使用的。一般的sevice,使用system.conf中的配置即可。system.conf.d/*.conf中配置會(huì)覆蓋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
......................

查看某個(gè)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)資源限制

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

三、 進(jìn)程數(shù)限制

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

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

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

實(shí)際上roott和普通用戶默認(rèn)是 # 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è)置每個(gè)用戶最大進(jìn)程數(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.
#針對(duì)所有用戶,設(shè)置其可打開最大進(jìn)程數(shù)為4096(hard),warning值為2048(soft);ulimit看大的是soft大小
* soft nproc 2048
* hard nproc 4096
限制用戶root可打開最大進(jìn)程數(shù)為65535
root soft nproc 65535
root hard nproc 65535

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

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

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

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

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

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

查看全局的pid_max方法:

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

臨時(shí)修改這個(gè)值方法:

echo 65535 > /proc/sys/kernel/pid_max

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

上面只是臨時(shí)生效,重啟機(jī)器后會(huì)失效,永久生效方法:

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

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

或者:

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

然后重啟機(jī)器。

四、 句柄數(shù)限制

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

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

vi /etc/security/limits.conf
# /etc/security/limits.conf
#該文件只影響通過PAM登錄的用戶,不影響系統(tǒng)服務(wù)的資源限制
#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
#限制單進(jìn)程可打開最大句柄數(shù)為65535(默認(rèn)1024)
#soft為warning大小,hard為最大數(shù)量
* soft nofile 65535 
* hard nofile 65535
# End of file

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    Linux中VirtualBox的虛擬機(jī)開機(jī)自啟方式

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

    Tomeat6.0 連接池?cái)?shù)據(jù)庫配置

    關(guān)于tomeat6.0的連接數(shù)據(jù)庫配置實(shí)現(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命令不能用了原因分析及解決方法,非常不錯(cuò),需要的朋友參考下吧
    2016-12-12
  • Linux中的文件及目錄屬性知識(shí)點(diǎn)

    Linux中的文件及目錄屬性知識(shí)點(diǎn)

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

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

    本文描述了在CentOS 7.9操作系統(tǒng)上排查CPU異常告警的過程,通過使用top和jstack命令,找到了最耗CPU的進(jìn)程和線程,并根據(jù)堆棧信息定位到了對(duì)應(yīng)代碼
    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)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

娱乐| 阿鲁科尔沁旗| 平果县| 上饶县| 舞钢市| 云和县| 寿宁县| 应用必备| 大竹县| 公安县| 连江县| 北流市| 和龙市| 甘泉县| 运城市| 老河口市| 长白| 云和县| 常州市| 竹山县| 周至县| 清河县| 亳州市| 驻马店市| 乃东县| 九寨沟县| 博湖县| 积石山| 行唐县| 定兴县| 文水县| 太仆寺旗| 建水县| 罗平县| 乌什县| 佛教| 奇台县| 荆州市| 石渠县| 嘉禾县| 蒙城县|