Some questions about kernel.random.* parameters
The boot ID parameter is not relevant to entropy stats really. It just uniquely identifies the current boot, which is useful if you want to know if the computer has rebooted or something.
The entropy pool stores up random data in an implementation-defined way that is designed to be treated as a black box. In general it's nice to have as many bits of entropy as you can, if you rely on having an entropy source; having too much, however, is wasteful. If your server does a lot of cryptography (generating TLS session keys for instance, or frequently generating RSA keys or even security tokens) or needs strong random numbers all the time for some other reason, you want lots of entropy and there are even devices you can get that issue gigabit streams of it (from a physical source).
The pool size can usually be changed by echoing a new size into the pool size file. The kernel will store up entropy it acquires from various sources (relative event timings is a popular way), as well as entropy it acquires from input to /dev/random
(via the RNDADDENTROPY
ioctl; merely writing to that device changes the data but does not add nominal bits of entropy). If you had a hardware entropy source you were underutilizing, you'd really want this parameter to not be infinite.
The write-wakeup-threshold is rarely used but is good for sequencing; the performance gain it provides should be minimal. What it does is wake up devices blocking to write to the entropy pool (i.e. sources which will use the aforementioned ioctl to add entropy to the pool) when the pool gets low. It will not necessarily have the effect of adding entropy, obviously.
The read-wakeup-threshold is opposite; this is the number of bits of entropy required to be available (i.e. the number indicated in entropy_avail) before we allow anything to read from /dev/random
. /dev/urandom
ignores this parameter (since reads from it are nonblocking and don't wait for entropy, instead allowing pseudorandom data to be read).