在 CentOS 系统中,可以通过 ulimit
命令来调整用户进程的资源限制,包括内存限制。以下是一些常用的方法:
临时调整
-
查看当前资源限制:
ulimit -a
-
设置软限制和硬限制:
- 软限制(soft limit)是用户可以自行调整的限制。
- 硬限制(hard limit)是系统管理员设置的最高限制,用户不能超过这个值。
例如,将虚拟内存(virtual memory)的软限制设置为 4GB,硬限制设置为 8GB:
ulimit -v 4194304 # 4GB in kilobytes ulimit -V 8388608 # 8GB in kilobytes
将最大文件大小(file size)的软限制设置为 2GB,硬限制设置为 4GB:
ulimit -f 2147483648 # 2GB in bytes ulimit -F 4294967296 # 4GB in bytes
永久调整
要永久调整资源限制,需要修改系统配置文件。
-
编辑
/etc/security/limits.conf
文件: 打开文件并添加或修改以下行:* soft memlock unlimited * hard memlock unlimited * soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
这些设置将所有用户的软硬限制调整为无限制和 65536 个文件描述符。
-
编辑
/etc/pam.d/common-session
和/etc/pam.d/common-session-noninteractive
文件: 确保包含以下行以应用limits.conf
的设置:session required pam_limits.so
-
重启系统: 修改配置文件后,需要重启系统以使更改生效。
使用 sysctl
调整内核参数
某些内存相关的限制也可以通过 sysctl
命令来调整。
-
查看当前内核参数:
sysctl -a | grep vm
-
设置内核参数: 例如,增加系统的虚拟内存大小:
sysctl -w vm.max_map_count=262144
将这个设置永久化,编辑
/etc/sysctl.conf
文件并添加:vm.max_map_count=262144
-
应用新的内核参数:
sysctl -p
通过以上方法,你可以根据需要调整 CentOS 系统中的内存限制。请注意,某些设置可能需要管理员权限才能修改。