centos7进程限制、打开文件限制等

从centos7以后,yum或者rpm安装的服务,尤其带内部用户的,比如kudu,需要关注systemd的参数,这类服务的进程、文件打开句柄限制和root、普通用户的不同。

#修改文件、进程限制:
echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf
echo "DefaultLimitNPROC=65535" >> /etc/systemd/system.conf

#刷新参数,不需要重启系统

systemctl daemon-reexec

#重启服务

systemctl stop kudu-tserver
systemctl start kudu-tserver

这个操作对所有服务生效,如果同时运行的服务需要单独配置限制参数,则需要单独修改服务的参数:
vi /usr/lib/systemd/system/kudu-tserver.service

LimitNOFILE=100000
LimitNPROC=100000

#重新加载一下,再重启服务
systemctl daemon-reload

#检查是否生效
cat /proc/``ps -ef|grep kudu-tserver|awk ‘{print $2}’`/limits

对于不是系统安装的服务,比如使用自编脚本启停的,操作如下:
查看全局的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

# vi /etc/sysctl.conf

kernel.pid_max = 65535

或者:

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

文件打开句柄参数,修改这2个文件
/etc/security/limits.conf #对root生效
/etc/security/limits.d/20-nproc.conf #对普通用户生效

ulimt -a
ulimit -n 65535
echo "ulimit -n 65535">>/etc/profile
source /etc/profile
#查看进程限制状态
cat /proc/pid/limits

你可能感兴趣的:(linux)