HCRM博客

如何在CentOS系统中查看与修改ulimit设置?

在CentOS操作系统中,ulimit命令用于限制和控制用户进程可以使用的系统资源,这些资源包括CPU时间、内存大小、文件描述符数量、进程数等,通过合理配置ulimit,可以有效防止单个进程或用户占用过多资源,从而保障系统的稳定性和安全性,以下是关于CentOS中ulimit的详细解释和配置方法:

一、查看当前`ulimit`配置

要查看当前用户的ulimit设置,可以使用以下命令:

如何在CentOS系统中查看与修改ulimit设置?-图1
(图片来源网络,侵权删除)
  • ulimit a

该命令将显示所有资源限制的当前值,包括软限制(soft limit)和硬限制(hard limit)。

  • core file size (blocks, c) 0
  • data seg size (kbytes, d) unlimited
  • scheduling priority (e) 0
  • file size (blocks, f) unlimited
  • pending signals (i) 63397
  • max locked memory (kbytes, l) 64
  • max memory size (kbytes, m) unlimited
  • open files (n) 1024
  • pipe size (512 bytes, p) 8
  • POSIX message queues (bytes, q) 819200
  • realtime priority (r) 0
  • stack size (kbytes, s) 8192
  • cpu time (seconds, t) unlimited
  • max user processes (u) 63397
  • virtual memory (kbytes, v) unlimited
  • file locks (x) unlimited

二、修改当前会话的`ulimit`

要修改当前会话的资源限制,可以在ulimit命令后指定相应的参数,将最大文件描述符数改为65535:

  • ulimit n 65535

这种修改仅对当前会话有效,退出会话后恢复默认值。

三、永久修改`ulimit`

要使ulimit配置永久生效,需要修改相关配置文件,具体步骤如下:

1. 修改/etc/security/limits.conf

编辑/etc/security/limits.conf文件,添加或修改如下内容:

如何在CentOS系统中查看与修改ulimit设置?-图2
(图片来源网络,侵权删除)
  • soft nofile 65535
  • hard nofile 65535
  • soft nproc 65535
  • hard nproc 65535

上述配置将对系统中的所有用户生效,如果需要针对特定用户或用户组进行配置,可以将替换为相应的用户名或用户组名。

2. 修改/etc/pam.d/login

确保/etc/pam.d/login文件中包含以下行:

  • session required pam_limits.so

这行配置用于在用户登录时读取并应用/etc/security/limits.conf中的资源限制。

3. 修改/etc/profile

为了在每次登录时自动应用ulimit配置,可以在/etc/profile文件中添加以下内容:

  • ulimit n 65535
  • ulimit u 65535

保存文件后,使用以下命令使修改立即生效:

  • source /etc/profile

4. 重启系统或重新登录

完成上述配置后,可以通过重启系统或重新登录使修改生效。

四、Systemd服务的资源限制配置

在CentOS 7及更高版本中,Systemd替代了SysV init,因此还需要为Systemd服务单独配置资源限制。

1. 全局配置

编辑/etc/systemd/system.conf文件,添加或修改以下内容:

  • [Manager]
  • DefaultLimitCORE=infinity
  • DefaultLimitNOFILE=100000
  • DefaultLimitNPROC=100000

2. 单个服务配置

对于特定的Systemd服务,可以在服务的单元文件中添加资源限制,对于apache服务,可以创建或编辑/etc/systemd/system/httpd.service.d/override.conf文件,添加以下内容:

  • [Service]
  • LimitNOFILE=20000
  • LimitNPROC=20000

然后重新加载Systemd配置并重启服务:

  • systemctl daemonreload
  • systemctl restart httpd

五、常见问题与解决方案

1. 如何更改硬限制?

硬限制只能由超级用户(root)提高,普通用户无法增加硬限制,要增加硬限制,可以使用以下命令:

  • sudo ulimit Hn 4096

2.ulimit配置不生效怎么办?

如果修改了ulimit配置但未生效,可以尝试以下步骤:

确保修改的是当前shell的配置文件(如~/.bashrc~/.bash_profile)。

确保修改了/etc/security/limits.conf/etc/pam.d/login

确保重新启动系统或重新登录以应用配置。

确保没有其他配置文件覆盖了您的设置。

通过合理配置CentOS中的ulimit,可以有效管理系统资源,防止单个进程或用户过度消耗资源,从而保证系统的稳定性和性能。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/20728.html

分享:
扫描分享到社交APP
上一篇
下一篇