python random linux 随机数导致程序运行缓慢

python random linux 随机数导致程序运行缓慢

产生原因

有些程序运行加密时,系统会从虚拟设备 (/dev/random) 中取用随机数以供使用。
然而, /dev/random 会使用熵池中的数据来生成随机数.在熵不足时,生成随机数非常缓慢,导致阻塞:nginx,apache,tomcat,PHP等很多程序都会用到随机数,可以说很重要。

Entropy(熵,[shāng])在信息论中表示数据的混乱程度或者不确定性,可理解为随机数据。

在 GNU/Linux 中有两个虚拟设备专门用于生成随机数以供系统使用。分别为 /dev/random /dev/urandom,又称 PRNG(Pseudorandom Number Generator,伪随机数发生器),其中 /dev/random 数据来源为硬件设备的活动(键盘输入、磁盘读写、内存错误等)和其他操作系统资源,默认熵池随机数资源大小为 4kB ,由内核参数/proc/sys/kernel/random/poolsize控制。

  • 查询熵池
cat /proc/sys/kernel/random/entropy_avail

一般VPS会在200左右,随机数据严重不足

  • 补充熵池的解决方法 - centos
yum install rng-tools haveged -y

systemctl enable haveged

systemctl enable rngd.service

systemctl restart rngd.service

systemctl restart rngd.haveged

你可能感兴趣的:(python,linux)