【笔记】linux系统环境限制修改

本文详细介绍了如何查看和修改Linux系统的socket缓冲区大小、系统及进程最大打开文件描述符数,并讲解了core文件的查看、设置及生成样式的配置方法。内容包括在/proc/sys/net/core下设置缓冲区限制,在/etc/sysctl.conf和/etc/security/limits.conf中调整文件描述符数,以及使用ulimit命令和core_pattern控制core文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. socket缓冲区
   1. 查看
      $ cat /proc/sys/net/core/rmem_max (接收缓冲区、读缓冲区)
        124928
      $ cat /proc/sys/net/core/wmem_max (发送缓冲区、写缓冲区)
        124928
   2. 设置
      $ echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
      $ echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
      $ sysctl -p



1. 系统最大打开文件描述符数:/proc/sys/fs/file-max
   1. 查看
      $ cat /proc/sys/fs/file-max
        186405
   2. 设置
      a. 临时性
         $ echo 1000000 > /proc/sys/fs/file-max
      b. 永久性:在/etc/sysctl.conf中设置
         fs.file-max = 1000000

2. 进程最大打开文件描述符数:user limit中nofile的soft limit
   1. 查看
      $ ulimit -n
        1700000
   2. 设置
      a. 临时性:
         通过ulimit -Sn设置最大打开文件描述符数的soft limit,注意soft limit不能大于hard limit(ulimit -Hn可查看hard limit),
         另外ulimit -n默认查看的是soft limit,但是ulimit -n 1800000则是同时设置soft limit和hard limit。对于非root用户只能设置比原来小的hard limit。
         查看hard limit:
         $ ulimit -Hn
         1700000
         设置soft limit,必须小于hard limit:
         $ ulimit -Sn 1600000
      b. 永久性:
         上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。
         若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),
         可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit为1800000,hard limit为2000000。
         以下设置需要注销之后重新登录才能生效:
         chanon           soft    nofile          1800000
         chanon           hard    nofile          2000000
         设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,
         假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:
         # echo 2000000 > /proc/sys/fs/nr_open

3. 查看当前系统使用的打开文件描述符数
   $ cat /proc/sys/fs/file-nr
     5664        0        186405
     其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。

4. 总结:
   1. 所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
   2. 单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
   3. nofile的soft limit不能超过其hard limit
   4. nofile的hard limit不能超过/proc/sys/fs/nr_open



1. core文件
   1. 查看
      $ ulimit -c
   2. 设置
      a. 临时性:
         $ ulimit -c 10240
      b. 永久性:
         $ echo "ulimit -c unlimited" >> /etc/profile
   3. 设置生成样式
      可以设置格式化的 core 文件保存位置或文件名
      $ echo "/corefile/core-%e-%t-%s" > proc/sys/kernel/core_pattern
      以下是参数列表 :
        %p - insert pid into filename 添加 pid
        %u - insert current uid into filename 添加当前 uid
        %g - insert current gid into filename 添加当前 gid
        %s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号
        %t - insert UNIX time that the coredump occurred into filename 添加 core 文件生成时的 unix 时间
        %h - insert hostname where the coredump happened into filename 添加主机名
        %e - insert coredumping executable name into filename 添加命令名


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值