Sé que puedo configurar -dbcache=<MB>
al iniciar bitcoind.
¿Esto afecta la cantidad de RAM asignada para UTXOPool o UTXOPool + mempool?
¿Cómo puedo saber cuánta RAM ocupa cada base de datos en RAM?
Si el grupo UTXO es de 2,7 GB y configuro -dbcache=4096
, ¿qué sucede con el resto de la memoria asignada?
En Bitcoin Core, hay dos configuraciones, -dbcache
y -maxmempool
, con valores predeterminados de 450 y 300, respectivamente.
El mempool solo puede ocupar tanto como esté configurado a través de -maxmempool
.
La memoria caché del conjunto de UTXO puede ocupar tanto como esté configurado -dbcache
más la cantidad de espacio de mempool configurado que actualmente no se utiliza. Sin embargo, el uso de la memoria es mucho mayor que la representación equivalente en el disco: cargar todo el conjunto UTXO requeriría 6-7 GiB en el momento de hablar.
Las representaciones en memoria son siempre más grandes. En el disco, solo son secuencias empaquetadas de bytes. En la memoria, hay índices y punteros, y sobrecarga de asignación de memoria, todo para acelerar el acceso. El factor de expansión de los datos UTXO es mayor que el de la memoria.
Desde 0.14, el mempool también se guarda en el disco al apagar (pero no de forma continua).
Hasta el momento, no se ha realizado ninguna priorización en la memoria caché UTXO. Simplemente mantenemos todas las entradas a las que se accede, y cuando crece demasiado, todas las entradas modificadas se escriben en el disco. Una optimización (muy) significativa es que cuando se crea un UTXO y luego se gasta, sin escribirlo en el disco en el medio, simplemente lo eliminamos de la memoria.
amanusk
pieter wuille
amanusk
-dbcache=16384
, ¿se utilizarán 16 GB de mi RAM independientemente del tamaño real que ocupará el conjunto UTXO en RAM?pieter wuille