-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
Hello!
After some performance testing, I found out that shards in my application have different memory requirements, but require roughly same CPU. It looks like can't redistribute tasks evenly, it will cost a lot in terms of synchronization and passing data around. But, at same time I can't grow seastar memory indefinitely because of rather tight budget.
I have an idea to hack seastar allocator and introduce some "memory groups", to setup at engine startup - thus some dedicated shards get smaller pools, than others. Is it a valid solution? I don't want to maintain a fork, so I'll be very glad if someone can help me with ideas, how to stay on vanilla.
I've been thinking about using multiple app_templates, but as I understand there are some thread locals and other static global entities in framework, thus second app won't work as for now.
Also, with multiple apps, I will lose native ways of interaction between shards, which is also bad.
So, thank you in advance for your help.