当前位置: 首页 > article >正文

-bash: fork: Cannot allocate memory处理

一、报错

#ssh登录后提示
-bash: fork: Cannot allocate memory

二、问题处理

#查看最大进程数 sysctl kernel.pid_max
sysctl kernel.pid_max
#查看进程数
ps -eLf | wc -l
#确认是进程数满了
#处理方式一
#修改最大进程数后系统恢复
#
echo 1000000 > /proc/sys/kernel/pid_max
#处理方式二
#永久生效
echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf
sysctl -p
#此服务器是hive问题,删除hiveserver2进程后,进程数小了
#修改hiveserver2配置
#配置位置/opt/ben/core/hive/conf/hive-site.yml

<property>
  <name>hive.server2.session.check.interval</name>
  <value>60000</value>
</property>

<property>
  <name>hive.server2.idle.session.timeout</name>
  <value>3600000</value>
</property>

三、/etc/security/limits.d/90-nproc.conf和/proc/sys/kernel/pid_max配置文件的区别

/proc/sys/kernel/pid_max是一个系统内核参数,用于设置系统可以分配的最大进程ID(PID)数。每个新创建的进程都会被分配一个唯一的PID,该值决定了系统能够支持的最大进程数量。

/etc/security/limits.d/90-nproc.conf是一个配置文件,用于设定每个用户或用户组在系统中可同时运行的最大进程数。它是通过软件层面的限制来控制进程的数量,以确保资源分配合理、防止过度占用系统资源等。

区别在于:

1、/proc/sys/kernel/pid_max 是系统级别的设置,影响整个操作系统的进程数量。而 /etc/security/limits.d/90-nproc.conf 是针对每个用户或用户组的个别限制,用于限制特定用户或组的进程数量。
2、/proc/sys/kernel/pid_max 设置的是所有进程的上限,包括系统进程和用户进程,而 /etc/security/limits.d/90-nproc.conf 只限制用户进程的数量。
3、/proc/sys/kernel/pid_max 的修改需要超级用户权限,而 /etc/security/limits.d/90-nproc.conf 的修改通常由系统管理员或具有适当权限的用户进行。

综上所述,/proc/sys/kernel/pid_max 通过设置进程ID的上限来控制系统的整体进程数量,而 /etc/security/limits.d/90-nproc.conf 则是通过限制每个用户或用户组的进程数量来进行资源管理。


http://www.kler.cn/a/37481.html

相关文章:

  • VectorCAST单元测试手动配置测试用例
  • 谈谈VPN是什么、类型、使用场景、工作原理
  • pytong之语音环境:edge-tts and edge-playback
  • 使用matlab随机森林进行数据分类预测
  • MySQL的数据备份与还原--练习题
  • TJUACM假期集训个人赛(九)(cf1453a-d cf1440a-c)
  • 21复习的内容
  • 解决打开excel时报错 “不能使用对象链接和嵌入”
  • Java实现归并排序
  • TCP 协议(三)十种核心机制
  • 【Ubuntu】安装nginx并实现局域网文件共享
  • 手机图片怎么转pdf格式?这几个图片转换方式了解一下
  • 什么是微服务架构
  • 18.JavaWeb-JWT(登录、鉴权)
  • 微信小程序音频播放失败:TypeError: Cannot read property ‘duration‘ of undefined
  • Django入门
  • 分布式ELK日志文件分析系统(曾经沧海难为水,除却巫山不是云)
  • Helm 安装prometheus-stack 使用local pv持久化存储数据
  • 阿里云无影云电脑价格_企业办公型1元_云桌面入口
  • 微软MFC技术中的消息队列及消息处理(上)