-
Notifications
You must be signed in to change notification settings - Fork 20.8k
geth 1.15.8 is slower than previous versions #31648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This comment has been minimized.
This comment has been minimized.
I've tested on hoodi on aws c5.2xlarge and ebs-gp3, it's very slow as well, you can see the elapsed is 8.044s to import 100 blocks. docker run --name geth --network host --rm -v /data/geth:/root/.ethereum ethereum/client-go:v1.15.8 --hoodi --synctarget 0xc40f122e4bc5ce023aadfe2bbec1f93d5e9c5797b3e53fd7b85f15bfda1581ef
|
sepolia 1.15.5, 700ms
1.15.8, 6s
|
Interesting. So the regressions you've posted appear when Geth is importing close-to-empty blocks. |
I had posted the results of some benchmarks that I did. However, I wasn't on the same basline version (v1.15.5) that's apparently before the regression. Running them again with v.15.8 and v1.15.5 to confirm this. |
My immediate feeling was it's because the new log indexer is doing its job and it should become fast once that is done. But the indexer should be disabled during catch-up sync AFAIK which is the case in all of the logs above. But just to rule it out can you confirm that the logs are not indicating indexer activity? |
It's slow even there's no transactions. |
Can you try to run the Pebble with Async mode? https://github.com/ethereum/go-ethereum/blob/master/ethdb/pebble/pebble.go#L188 |
1.15.7 is faster, it uses async mode.
|
Okay, that's the cause of importing slowly. I've tried on master branch with below code change. index 969e67af5a..b26d08cacd 100644
--- a/ethdb/pebble/pebble.go
+++ b/ethdb/pebble/pebble.go
@@ -185,7 +185,7 @@ func New(file string, cache int, handles int, namespace string, readonly bool, e
fn: file,
log: logger,
quitChan: make(chan chan error),
- writeOptions: &pebble.WriteOptions{Sync: !ephemeral},
+ writeOptions: &pebble.WriteOptions{Sync: false},
}
opt := &pebble.Options{
// Pebble has a single combined cache area and the write |
Are you running Geth for ethereum or some other things? It's weird the reported mgas is 0 |
It's sepolia
|
On 1.15.5, It takes about 300ms to import 2048 blocks
but on 1.15.8, it takes 7s
The text was updated successfully, but these errors were encountered: