Open lcgogo opened 1 month ago
When syncing get_info
can take minutes to respond. This has been greatly improved in 1.0.3 (not yet released) and improved even more in 1.1.0.
I have many errors such nodeos controller.cpp:3641 log_applied ] Received block 53b00922ab0b86b9... #402110449 @ 2024-10-30T14:01:44.500 signed by eossupportbp [trxs: 7, lib: 402110447, net: 1360, cpu: 2414 us, elapsed: 751 us, applying time: 1478 us, latency: -157 ms the node is started from snapshot v8 and synced
trace api plugin configured
I call trace_api/get_block
/v1/trace_api/get_block '{"block_num":401763564}' with different blocks
Please try again with https://github.com/AntelopeIO/spring/releases/tag/v1.0.3
Please try again with https://github.com/AntelopeIO/spring/releases/tag/v1.0.3
Tried 1.0.3,better than 1.0.2, but still met about 10-20 times in one day with per min curl test.
Can you provide the nodeos log at a time when there ia a delay. Also please provide config.ini and command line args of nodeos.
Can you provide the nodeos log at a time when there ia a delay. Also please provide config.ini and command line args of nodeos.
cat config.ini
# Specify the Access-Control-Allow-Origin to be returned on each request (eosio::http_plugin)
access-control-allow-origin = *
# The name supplied to identify this node amongst the peers. (eosio::net_plugin)
agent-name = "Cobo EOS"
# Enable block production, even if the chain is stale. (eosio::producer_plugin)
enable-stale-production = true
# Limits the maximum age (in seconds) of the DPOS Irreversible Block for a chain this node will produce blocks on (use negative value to indicate unlimited) (eosio::producer_plugin)
max-irreversible-block-age = -1
# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
producer-name = coboeos
# Maximum size (in MB) of the chain state database (eosio::chain_plugin)
#chain-state-db-size-mb = 8192
chain-state-db-size-mb = 131072
# Limits the maximum time (in milliseconds) that is allowed a pushed transaction's code to execute before being considered invalid (eosio::producer_plugin)
max-transaction-time = 60000
# Increase allowed abi serialization time for slow test machines #4505
# https://github.com/EOSIO/eos/pull/4505
abi-serializer-max-time-ms = 5000
# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
http-server-address = 0.0.0.0:8888
http-max-response-time-ms = 1000
# number of blocks to retrieve in a chunk from any individual peer during synchronization (eosio::net_plugin)
sync-fetch-span = 100
# Can be 'any' or 'producers' or 'specified' or 'none'. If 'specified', peer-key must be specified at least once. If only 'producers', peer-key is not required. 'producers' and 'specified' may be combined. (eosio::net_plugin)
allowed-connection = any
# Maximum number of clients from which connections are accepted, use 0 for no limit (eosio::net_plugin)
max-clients = 150
http-threads = 20
# Key=Value pairs in the form <public-key>=<provider-spec>
# Where:
# <public-key> is a string form of a vaild EOSIO public key
#
# <provider-spec> is a string in the form <provider-type>:<data>
#
# <provider-type> is KEY, KEOSD, or SE
#
# KEY:<data> is a string form of a valid EOSIO private key which maps to the provided public key
#
# KEOSD:<data> is the URL where keosd is available and the approptiate wallet(s) are unlocked
#
# (eosio::producer_plugin)
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
# Use to indicate that the RPC responses will not use ABIs.
# Failure to specify this option when there are no trace-rpc-abi configuations will result in an Error.
# This option is mutually exclusive with trace-rpc-api (eosio::trace_api_plugin)
trace-no-abis = true
# Plugin(s) to enable, may be specified multiple times
plugin = eosio::producer_plugin
plugin = eosio::producer_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
#plugin = eosio::state_history_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin
plugin = eosio::trace_api_plugin
# https://validate.eosnation.io/eos/reports/config.html
# bp4dex223dao: US, United States
p2p-peer-address = p2p.dex223.io:9876
# cryptolions1: DE, Germany-Finland
p2p-peer-address = p2p.eos.cryptolions.io:9876
# eosamsterdam: DE, eos01
p2p-peer-address = mainnet.eosamsterdam.net:9876
# eosauthority: GB, London
p2p-peer-address = node869-mainnet.eosauthority.com:9393
# eosnationftw: CA, Canada
p2p-peer-address = eos.seed.eosnation.io:9876
# eosriobrazil: BR, Rio de Janeiro
p2p-peer-address = p2p.mainnet.eosrio.io:9876
# ivote4eosusa: US, Greenville,SC,USA
p2p-peer-address = eos.p2p.eosusa.io:9882
As my monitor, when the disk tps reach 15000 or more (by command sar -d 4 -h
), the response is slower.
Now, I use AWS EBS io1 which has 400GiB size and 20000 iops.
sar -d 4 -h | grep -E 'tps|nvme3n'
Average: tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
06:11:37 4795.25 97.9M 0.0k 0.0k 20.9k 2.71 0.57 100.0% nvme3n1
06:11:41 3272.75 65.8M 0.0k 0.0k 20.6k 1.80 0.55 97.5% nvme3n1
06:11:45 3190.50 102.7M 2.3M 0.0k 33.7k 2.07 0.65 99.3% nvme3n1
06:11:49 19219.25 101.8M 68.7M 0.0k 9.1k 13.47 0.70 100.0% nvme3n1
06:11:53 18737.75 73.0M 70.3M 0.0k 7.8k 13.13 0.70 100.0% nvme3n1
06:11:57 17381.50 29.9M 71.5M 0.0k 6.0k 12.34 0.71 100.0% nvme3n1
06:12:01 16995.50 12.7M 70.1M 0.0k 5.0k 12.07 0.71 100.0% nvme3n1
06:12:05 16919.50 6.7M 75.8M 0.0k 5.0k 12.00 0.71 100.0% nvme3n1
06:12:09 17088.25 10.2M 82.2M 0.0k 5.5k 12.14 0.71 100.0% nvme3n1
06:12:13 17024.00 4.4M 69.2M 0.0k 4.4k 12.11 0.71 82.3% nvme3n1
06:12:17 165.25 7.5M 0.0k 0.0k 46.3k 0.11 0.67 10.7% nvme3n1
06:12:21 257.50 8.9M 0.0k 0.0k 35.2k 0.16 0.62 12.7% nvme3n1
06:12:25 113.75 4.7M 0.0k 0.0k 42.2k 0.08 0.68 8.0% nvme3n1
06:12:29 159.00 6.0M 0.0k 0.0k 38.4k 0.10 0.65 10.3% nvme3n1
06:12:33 194.75 8.1M 0.0k 0.0k 42.8k 0.13 0.67 13.5% nvme3n1
06:12:37 278.25 9.5M 6.0k 0.0k 35.0k 0.18 0.65 13.8% nvme3n1
06:12:41 98.50 3.1M 0.0k 0.0k 32.3k 0.06 0.63 6.6% nvme3n1
06:12:45 1712.50 3.1M 7.2M 0.0k 6.2k 1.21 0.71 17.9% nvme3n1
06:12:49 52.75 1.6M 0.0k 0.0k 30.5k 0.03 0.61 4.1% nvme3n1
06:12:53 82.25 3.0M 0.0k 0.0k 36.9k 0.05 0.65 6.6% nvme3n1
06:12:57 206.25 8.7M 0.0k 0.0k 43.2k 0.13 0.64 10.9% nvme3n1
06:13:01 128.25 5.1M 0.0k 0.0k 41.1k 0.09 0.68 9.1% nvme3n1
06:13:05 508.25 13.6M 8.0k 0.0k 27.4k 0.30 0.59 19.4% nvme3n1
06:13:09 3866.25 100.3M 0.0k 0.0k 26.6k 2.23 0.58 99.1% nvme3n1
06:13:13 3955.25 101.8M 0.0k 0.0k 26.4k 2.26 0.57 100.0% nvme3n1
06:13:17 15750.00 101.6M 46.9M 0.0k 9.7k 10.58 0.67 100.0% nvme3n1
06:13:21 9752.00 101.0M 23.6M 0.0k 13.1k 6.38 0.65 100.0% nvme3n1
06:13:25 9652.00 102.8M 22.0M 0.0k 13.2k 6.25 0.65 100.0% nvme3n1
06:13:29 5278.25 103.4M 5.9M 0.0k 21.2k 3.25 0.62 100.0% nvme3n1
06:13:33 3765.75 99.7M 0.0k 0.0k 27.1k 2.21 0.59 100.0% nvme3n1
06:13:37 3850.25 101.6M 2.0k 0.0k 27.0k 2.25 0.58 100.1% nvme3n1
06:13:41 3931.50 102.5M 0.0k 0.0k 26.7k 2.25 0.57 99.9% nvme3n1
06:13:45 3995.00 102.3M 0.0k 0.0k 26.2k 2.27 0.57 100.0% nvme3n1
06:13:49 3817.25 102.6M 0.0k 0.0k 27.5k 2.18 0.57 100.0% nvme3n1
06:13:53 4018.75 103.5M 20.0k 0.0k 26.4k 2.27 0.57 100.1% nvme3n1
06:13:57 7332.50 106.1M 13.5M 0.0k 16.7k 4.61 0.63 100.0% nvme3n1
06:14:01 20858.25 103.5M 67.7M 0.0k 8.4k 14.13 0.68 100.0% nvme3n1
06:14:05 20691.00 103.8M 68.8M 0.0k 8.5k 14.10 0.68 100.0% nvme3n1
06:14:09 15516.50 103.0M 46.4M 0.0k 9.9k 10.42 0.67 99.9% nvme3n1
06:14:13 3990.50 105.4M 0.0k 0.0k 27.1k 2.27 0.57 100.1% nvme3n1
06:14:17 4075.00 101.6M 0.0k 0.0k 25.5k 2.33 0.57 100.0% nvme3n1
06:14:21 4215.75 103.2M 0.0k 0.0k 25.1k 2.38 0.56 100.0% nvme3n1
06:14:25 4030.25 99.7M 0.0k 0.0k 25.3k 2.36 0.59 100.0% nvme3n1
06:14:29 4156.75 104.6M 0.0k 0.0k 25.8k 2.34 0.56 99.9% nvme3n1
06:14:33 4033.50 101.1M 0.0k 0.0k 25.7k 2.33 0.58 100.1% nvme3n1
06:14:37 4005.25 100.7M 2.0k 0.0k 25.7k 2.32 0.58 100.0% nvme3n1
06:14:41 14700.75 102.9M 43.1M 0.0k 10.2k 9.82 0.67 100.0% nvme3n1
06:14:45 20975.25 102.1M 67.9M 0.0k 8.3k 14.22 0.68 100.0% nvme3n1
06:14:49 20332.00 101.3M 65.6M 0.0k 8.4k 13.66 0.67 100.0% nvme3n1
06:14:53 4915.75 103.6M 0.0k 0.0k 21.6k 2.69 0.55 99.9% nvme3n1
06:14:57 4839.00 99.2M 0.0k 0.0k 21.0k 2.67 0.55 100.0% nvme3n1
database-map-mode = mapped_private
which will greately reduce the disk access.Unrelated
max-transaction-time
should not be set to anything higher than the on-chain max of 150
. Best to not set it at all.
- database-map-mode = mapped_private
After add database-map-mode = mapped_private
, the node failed to start with followed err.
info 2024-12-03T10:48:18.384 nodeos main.cpp:165 operator() ] nodeos version v1.0.3 v1.0.3-c954fe87382b62716815d9e3fcc11482bd1d0c17
info 2024-12-03T10:48:18.384 nodeos main.cpp:69 log_non_default_opti ] Non-default options: data-dir = /data/eos, config-dir = /data/eos, verbose-http-errors, http-validate-host = false, access-control-allow-origin = *, agent-name = "Cobo EOS", enable-stale-production = true, max-irreversible-block-age = -1, producer-name = coboeos, chain-state-db-size-mb = 131072, max-transaction-time = 60000, abi-serializer-max-time-ms = 5000, http-server-address = 0.0.0.0:8888, http-max-response-time-ms = 1000, sync-fetch-span = 100, allowed-connection = any, max-clients = 150, http-threads = 20, signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:***, trace-no-abis = true, database-map-mode = mapped_private, plugin = eosio::producer_plugin, plugin = eosio::producer_api_plugin, plugin = eosio::chain_plugin, plugin = eosio::chain_api_plugin, plugin = eosio::http_plugin, plugin = eosio::net_plugin, plugin = eosio::net_api_plugin, plugin = eosio::trace_api_plugin, p2p-peer-address = p2p.dex223.io:9876, p2p-peer-address = p2p.eos.cryptolions.io:9876, p2p-peer-address = mainnet.eosamsterdam.net:9876, p2p-peer-address = node869-mainnet.eosauthority.com:9393, p2p-peer-address = eos.seed.eosnation.io:9876, p2p-peer-address = p2p.mainnet.eosrio.io:9876, p2p-peer-address = eos.p2p.eosusa.io:9882
error 2024-12-03T10:48:18.384 nodeos main.cpp:224 main ] 13 N5boost12interprocess22interprocess_exceptionE: Cannot allocate memory
rethrow Cannot allocate memory:
{"what":"Cannot allocate memory"}
nodeos chain_plugin.cpp:1109 plugin_initialize
That means you have less than 131072 MB of memory available. If you don't have enough memory for the database to be in memory then you will see higher disk utilization.
After monitoring the log, I find the cpu metric (like cpu: 37350 us) grows very high (x5-10 than normal) when the get_info have no response.
I am sure the server has enough resource (8c64g) and disk
Is there any config to reduce this issue? I use spring 1.0.2 and starts from Oct 25th.