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

rngd引起的Centos系统CPU飚高的问题解决方式

问题背景与现象

CentOS系统中rngd服务(随机数生成守护进程)可能导致CPU占用率异常升高,影响系统性能。该问题通常表现为tophtop命令中rngd进程持续占用高CPU资源。


核心解决步骤

检查rngd服务状态
通过命令确认服务是否运行及CPU占用情况:

systemctl status rngd top -p $(pgrep rngd)

临时停止服务
立即终止rngd进程以缓解CPU压力:

systemctl stop rngd

永久禁用服务(非必要不推荐)
若系统无需硬件随机数支持,可禁用服务:

systemctl disable --now rngd

进阶排查与优化

验证熵池状态
低熵值可能触发rngd高负载,检查当前熵值:

cat /proc/sys/kernel/random/entropy_avail

正常值应高于1000,低于此值需补充熵源。

替代熵源方案
安装haveged替代rngd提供软件熵源:

yum install haveged -y systemctl enable --now haveged

调整rngd配置
编辑/etc/sysconfig/rngd,限制CPU占用或更换熵源:

OPTIONS="-r /dev/urandom -o /dev/random -t 5"

参数说明:-t限制超时时间,-r指定低负载熵源。


适用场景建议

  • 虚拟化环境:优先使用haveged,避免硬件熵源不足问题。
  • 物理服务器:保留rngd但调整配置,确保硬件随机数设备(如/dev/hwrng)存在。
  • 高安全需求:结合rng-toolshaveged,平衡性能与随机数质量。

验证与监控

操作后执行以下命令确认改进效果:

watch -n 1 'cat /proc/sys/kernel/random/entropy_avail' htop

通过结构分层,关键操作前置,复杂场景后置,兼顾快速解决与深度优化需求。

场服务器出现接收https请求超时,访问界面卡顿现象。

服务器资源使用情况:

线程堆栈信息:

🔥 最终结论:rngd 进程把 CPU 打满了(97895%),是元凶!

其次是两个 Tomcat 业务进程也异常高耗 CPU


一、谁导致 CPU 100%?(一目了然)

1.头号凶手:PID 738 → /sbin/rngd -f

plaintext

PID PPID %CPU CMD 738 1 97895 /sbin/rngd -f
  • CPU 占用:97895%(相当于占满所有核心 + 疯狂调度)
  • 这是系统熵池服务,出现死循环 BUG
  • 它是导致你服务器 CPU 爆炸的唯一真凶

2. 二号凶手:PID 2118 → Tomcat 业务进程

plaintext

2118 root 115.8% /usr/java/jdk1.8.0_131/bin/java → tomcat-8.5.15-p
  • 115.8%单核

3. 三号凶手:PID 1978 → Tomcat 业务进程

plaintext

1978 root 73.7% /usr/bin/java → tomcat-8.5.15-l
  • 73.7%单核

二、为什么 rngd 会 97895% CPU?(非常典型的 BUG)

rngd 是硬件随机数熵池服务,用于加密、SSL、TLS 随机数生成。但在某些 CentOS7 内核 + 虚拟化环境下,会出现:✅死循环CPU 100% 占满无法自动恢复

你堆栈里也明确显示:

plaintext

#0 0x00007f4028807a20 in __poll_nocancel () #1 0x0000000000402601 in random_sleep () #2 0x00000000004019a3 in do_loop ()

这就是rngd 死循环的经典堆栈!


三、立刻解决命令(复制执行,CPU 马上恢复)

1. 杀死元凶(立刻见效)

bash

运行

kill -9 738

2. 直接禁用 rngd 防止重启后再炸

bash

运行

systemctl stop rngd systemctl disable rngd

3. 如果你需要随机数服务(修复版)

bash

运行

yum install -y haveged systemctl enable haveged systemctl start haveged

haveged 是 rngd 的替代品,不会死循环,不占 CPU


四、两个 Tomcat 为什么也高?

因为rngd 占满 CPU → 导致 Tomcat 加密 / SSL/TLS 阻塞→ Tomcat 等待随机数超时、卡住、疯狂重试→ 所以 Tomcat CPU 也跟着高

只要杀掉 rngd,两个 Tomcat CPU 会立刻下降!


五、最终总结(一句话)

你的服务器 CPU 100%,完全是 rngd 死循环 BUG 导致,杀掉并禁用 rngd 立刻恢复。

http://www.jsqmd.com/news/583338/

相关文章:

  • storageclass介绍和使用
  • 2025-2026年全球空气能热水器十大品牌评测:五款口碑产品推荐评价盘点 - 十大品牌推荐
  • ChatGPT-初学者指南-人工智能的简单解释及其如何为您带来益处
  • 家用混动SUV舒适度技术科普入门:从实测看核心技术要点
  • 在 vite + vue 中 结合 postcss + postcss-pxtorem + autoprefixer 配置 px 转 rem
  • 当多智能体遇上频域干扰:一场代码与策略的华尔兹
  • Redis 内存淘汰与过期策略
  • 肉包 Roubao 深度技术解析:首款无需电脑的开源 AI 手机自动化助手
  • OpenClaw 局域网访问配置文档
  • Spring 为什么要用三级缓存?
  • 计算机毕业设计:Python汽车销量全栈分析系统 Flask框架 可视化 机器学习 AI 大模型 大数据(建议收藏)✅
  • 水质溶解氧在线监测仪:实时监测与数据记录解析
  • Python 实战:数据归一化 4 种核心方法对比 + 代码实现(机器学习必看)
  • BililiveRecorder全场景应用指南:从入门到精通的直播内容捕获方案
  • Javase(三)三大特性之封装
  • java答题pk小程序源码核心功能
  • AI-现金流-将-ChatGPT-变成您的-24-7-赚钱机器-2025-版-
  • 3D卷积和2D卷积区分-高光谱图像为例
  • 用了大半年的免费云服务器,分享真实体验
  • 看这家美国顶级新闻媒体如何用 Splashtop 实现效率与安全双飞跃
  • 有人说:中文只适合中国人学,因为前提要有个聪明的脑子!那么,中国人学英文,辅助用「干词」那简直就是聪明的脑子配上了高效的工具,原地学会!
  • 编译系统概述
  • 人在哪数据就在哪!两步打造私人高速通道,4K原片/工作文件随点随看
  • x64汇编:内存工作的基本原理
  • AI-现金流指南-最大化利润的-ChatGPT-货币化
  • 运动AI市场2026预测:亚太领跑、传感器国产化与5G+边缘计算新机遇
  • 开篇:数据处理绕不开的合并与拼接
  • Autovisor:智能优化在线课程学习效率的自动化解决方案
  • 2025届最火的降AI率平台推荐
  • 基于PLC的6层3部电梯 12000+字,纯手写的,西门子S7-1200PLC,文章里面的图纸...