关于limit.conf和sysctl.conf文件的使用

2024-01-07  本文已影响0人  moutory

前言

今天迁移测试环境的es应用到新的服务器上面,重启后发现启动报错,解决方式是需要修改/etc/security/limit.conf/etc/sysctl.conf文件的配置,个人对于这两个文件有些陌生,所以写一篇文章来记录一下这两个文件的作用。

一、关于limit.conf文件

(一)报错信息分析
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]`

从报错信息提到了分配给es进程的最大文件描述符数太少了,要求我们至少增加到65536。在linux系统中,调整最大文件描述符数的配置文件在/etc/security/limit.conf文件中。下面我们来具体讲一下这个文件的作用

(二)了解limit.conf文件的作用

/etc/security/limits.conf是一个配置文件,用于设置Linux系统中用户和进程的资源限制。它定义了特定用户或用户组的资源限制,例如进程数量、文件描述符、内存使用等。
limits.conf文件的作用是为系统管理员提供一种集中管理资源限制的方法,以确保系统资源的合理分配和使用。通过在配置文件中设置适当的限制,可以防止单个用户或进程占用过多的系统资源,从而提高系统的稳定性和安全性。

limits.conf 文件的语法比较简单,每行包含一个限制规则,具有以下格式:

<domain> <type> <item> <value>

在这个案例中,我们需要在配置文件中加上如下配置

esuser soft nofile 65535
esuser hard nofile 65535

其中esuser是启动es服务器的应用用户,我们设置这个用户最大的文件描述符数量为65535

注意,修改完配置文件后需要重启系统才能生效。而且只有root或者其他授权用户才能修改这个文件

(三)一些知识点的拓展

硬限制(Hard Limit)是资源的最大限制,它指定了进程或用户在任何情况下可以使用的资源数量或大小。硬限制是强制执行的,系统会阻止进程或用户超过硬限制。如果进程或用户尝试超过硬限制,系统会报告错误或拒绝请求。硬限制通常用于确保系统资源的安全性和稳定性,防止某个进程或用户耗尽过多的资源

二、关于sysctl.conf文件

(一)报错信息分析
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

报错信息提到我们需要把最大的虚拟内存区域调大到262144,在linux系统中这个配置需要在/etc/sysctl.conf文件中进行调整

(二)了解sysctl.conf文件的作用

sysctl.conf 是一个配置文件,用于在 Linux 系统中设置和调整内核参数。该文件位于 /etc/sysctl.conf 路径下,存储了一系列键值对,用于控制和配置操作系统的各种行为和功能。
通过编辑 sysctl.conf 文件,系统管理员可以更改内核参数的默认值,以优化系统性能、调整网络配置、增强安全性等。在系统启动时,内核会读取该文件,并根据其中的配置来调整相应的参数。需要注意的是,sysctl.conf文件是一个十分重要的文件,没有特别的需要,尽量不要修改这个文件

在这个案例中,我们需要加上以下配置来满足ES的启动要求

vm.max_map_count=262144

修改完成后,我们可以通过sudo sysctl -p /etc/sysctl.conf命令来使配置马上生效

参考文章

Linux的文件描述符 https://www.cnblogs.com/diantong/p/10413079.html

上一篇下一篇

猜你喜欢

热点阅读