linux中配置程序打开文件的句柄和创建进程的数量尤为重要,一般系统默认情况下值为1024。对于一些程序或者中间件系统1024的数量比较小,需要增大这个数量。尤其是部署中间件或者大数据的机器一定要增大该值。

本文的背景就是因为部署kafka的机器未做limit的优化,导致kafka集群拒绝连接。

直接进入正文

一、查看一个进程打开的文件句柄

 jps  查看运行的java程序的进程

lsof -p 849 |wc -l 查看进程号849这个程序打开的文件句柄数

二、系统对打开文件句柄和创建进程的限制

ulimit -n  文件句柄数限制查看

ulimit -u 进程限制查看

ulimit -a 查看限制全部信息

三、文件句柄及进程限制的配置

a、配置文件/etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

* soft nofile 65536  #测试验证文件句柄是这行生效
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536 #测试验证进程数是这行生效

格式为[用户名/*] [soft/hard/-] [nofile/nproc] [数目]

也可以使用两行配置如下(建议

*   - nofile 65536
*   - nproc  65536

数量上建议设置65536,也可以根据自己的业务情况设置大一些。

b、另外一个配置目录/etc/security/limits.d(一般自己配置不建议,建议统一配置)

limits.conf配置一般是配置全局的,在limits.d文件夹中可以配置每个用户独有的,如hive用户使用hive.conf文件配置,优先级最高,高于全局的配置。

 配置之后需要退出,重新登录之后才能生效

四、重新登录之后限制数还是为生效

参考:ssh登陆系统ulimit不生效的问题_贾己人的博客-CSDN博客_ssh ulimit 不生效

修改/etc/ssh/sshd_config文件

UsePAM yes

然后重启sshd

systemctl restart sshd

如果还是未生效,修改/etc/ssh/sshd_config文件

UseLogin yes

然后再重启sshd服务

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐