RedHat、centos 7.0以上设置系统打开文件数等设置问题

elasticsearch-6.4.3 在RedHat7.4上启动,报如下的

./elasticsearch -d

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

报这个,照网上说法,修改这个文件:/etc/security/limits.conf
修改成如下的:

#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
*               soft    nofile          655360
*               hard    nofile          655360
# End of file

然后回到elk用户下,执行 ulimit -n没有生效,还是1024

 ulimit -n
1024

退出,重新登录,还是不得,上网查。知道这个文件limits.conf是用PAM来加载的,怀疑没有重新加载,在网上再找到:

systemctl和systemd
CentOS上的systemctl(CentOS-7.X之前为service脚本)类似于Windows平台的服务管理器,替代老版本中的service脚本来管理服务。Systemctl功能非常多,有关systemctl的功能不在本文过多描述。
sytemctl的工作原理是通过与服务systemd交互,来完成各项工作,比如重启crond进程。在CentOS,systemctl替代了inittab。
可以看到正是systemd加载了pam,从ldd结果可以看出systemd也不是动态加载pam模块,而是编译时就绑定了,因此libpam.so成了系统的必须部分(但pam_limits.so仍然不是,总是可插拔):
9. 总结
修改limits.conf不会立即生效,除非重启相关的父进程,比如crontab的crond,而有些老版本的Linux可能只能重启以生效。

  1. 系统启动 -> 启动初始化进程systemd -> 进程sytemd加载libpam.so模块
  2. libpam.so根据/etc/pam.d决定是否加载pam_limits.so等
  3. 在加载pam_limits.so时,会读取/etc/security/limits.conf
  4. 重启crond等,实际是向systemd发重启指令
  5. 一句话:如果要使用limits.conf生效,一定要有加载pam_limits.so,如果修改limits.conf,至少要让pam_limits.so重读limits.conf。

然后重新加载crond:

systemctl restart crond

还是没生效,那看看我登录的sshd是否有用PAM

[root@cmod etc]# ldd /sbin/sshd
        linux-vdso.so.1 =>  (0x00007fff145f6000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f9e08118000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f9e07f14000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f9e07d10000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f9e07afa000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f9e078c3000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f9e076a8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9e072e5000)
        /lib64/ld-linux-x86-64.so.2 (0x000055ab29dbb000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007f9e070e2000)

没有启用pam,而/etc/security/limits.conf里的配置只针对PAM认证登录用户有效,我记当初安装SSH时,没有选择PAM,那只能找其它方法:

在网上看到:

CentOS 6 迁移到 CentOS 7 的过程中,可能有一些地方需要调整,最显著的地方莫过于 systemd 带来的改变,不同的管理服务的方式,不同的日志方式,设置时区,时间等等。 当然,除了这些显而易见的改变之外,有些变化并不是那么引人注目,例如这里要介绍的你可能发现曾经配置了正确的 /etc/security/limits.conf 在 CentOS 7 中却没有生效了。
在CentOS 7/RHEL 7的系统中,/etc/security/limits.conf 文件的配置作用域缩小了一些。limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。限制使用PAM登录用户的,与上面讲的一样,通过 /etc/security/limits.conf 和 limits.d 来配置即可。
对于其余的systemd service的资源限制,如何配置呢?
全局的配置,放在文件 /etc/systemd/system.conf 和 /etc/systemd/user.conf。同时,也会加载两个对应的目录中的所有.conf文件 /etc/systemd/system.conf.d/.conf 和 /etc/systemd/user.conf.d/.conf
其中,system.conf 是系统实例使用的,user.conf用户实例使用的。一般的sevice,使用system.conf中的配置即可。systemd.conf.d/*.conf中配置会覆盖system.conf。

修改/etc/systemd/user.conf

DefaultLimitCORE=infinity
DefaultLimitNOFILE=655360
DefaultLimitNPROC=655360

然后运行如下命令,才能生效。

systemctl daemon-reload

有时光这样不管用,还需要设置/etc/systemd/system.conf,同时还需要重启.

奇迹发生了:

-bash-4.2$ ulimit -n
655360

记录一下,防止下次再碰到

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
升级 CentOS6.5 到 CentOS7.0 是一个比较复杂的过程,需要仔细阅读并按照以下步骤进行操作: 1. 备份据:在进行任何系统升级之前,务必备份所有重要据,以防止意外据丢失。 2. 更新 CentOS6.5:在升级之前,先确保 CentOS6.5 的所有软件包都是最新的。执行以下命令更新系统: ``` yum update ``` 3. 安装 CentOS 7.0 的升级工具:为了将 CentOS 6.5 升级到 CentOS 7.0,需要安装一个名为“redhat-upgrade-tool”的软件包。执行以下命令安装该软件包: ``` yum install redhat-upgrade-tool preupgrade-assistant-contents ``` 4. 运行系统升级工具:安装完升级工具后,使用以下命令启动升级过程: ``` preupg ``` 此命令将生成一个报告,其中列出了可以升级的软件包和问题,如果没有问题,则可以继续进行升级过程。 5. 更新 yum 配置文件:将 CentOS 6.5 的 yum 配置文件备份并替换为 CentOS 7.0 的 yum 配置文件。执行以下命令: ``` cp /etc/yum.conf /etc/yum.conf.bak cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` 6. 运行系统升级命令:最后,运行以下命令将 CentOS 6.5 升级到 CentOS 7.0: ``` redhat-upgrade-tool-cli --network 7.0 --instrepo=http://mirrors.aliyun.com/centos/7/os/x86_64/ ``` 此命令将下载并安装所有必需的软件包,升级系统CentOS 7.0。 7. 重启系统:完成升级后,重启系统以使更改生效: ``` reboot ``` 请注意,此过程可能需要一些时间,并且在执行过程中可能会出现错误或问题。因此,请务必按照上述步骤进行操作,并确保已备份所有据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值