技术分享 | 随机数生成过慢导致系统阻塞怎么办?
发布网友
发布时间:2024-10-10 16:50
我来回答
共1个回答
热心网友
时间:2024-11-14 07:50
Linux系统中的随机数生成器,/dev/random 和 /dev/urandom,是通过收集系统中断信息并运用算法生成无序数据的字符设备,为加密等安全操作提供随机数。它们的原理是利用熵池,开机时会自动初始化,但有时会因中断不足或程序运行时熵值不足,导致随机数生成缓慢,甚至系统阻塞。
为解决这个问题,可以采取补熵的方法,例如使用移植自haveged工具。以启扬IAC-IMX8MM-kit开发板为例,首先,需要在开发环境中配置haveged-1.9.3,通过./configure和make && make install编译并安装。编译后,将二进制文件和库文件分别放置在板子的/usr/bin和/usr/lib目录下,确保其为aarch64架构。
为了实现开机自动运行,需要创建服务文件并使用systemctl命令将其设置为开机启动。在启扬i.MX8M Mini开发板上,创建的service可以确保haveged在系统启动初期就开始生成足够的随机数。通过查看/proc/sys/kernel/random/entropy_avail的熵值,可以直观看到开启haveged前后的变化,从几十几百提升至数千。
通过上述步骤,可以有效地解决随机数生成过慢导致的系统阻塞问题,确保系统的正常运行。