04-18-2018, 06:58 AM
Great that you got it running!
1. There are details on this in the config.sample.php file. But yes -- all your Gekko servers must be in sync meaning they must have the same strategies and history file(s). How you sync your servers is up to you. But rsync is one way to do it -- yes.
2. No requirement, but basically one can count 1 thread / 1 physical core needed. So if you have a Quad-core processor you would max out around 4 threads. What mostly happen if you use more threads then your core count is that your system will begin to que threads which is a bad thing since it will increase the time taken to finish each run and you may hit timeouts after a while. Often one can use core count + 1 though so a Quad-core computer can use 5 threads. Do note that 5 threads on a quad core will nearly use 100% of your CPU so for very long runs (10+ hours) i would not recommend that you push your hardware in such a way.
These limits doesn't got anything to do with GAB but is more about how Gekko API works; unfortunately Gekko API spawn's 1x nodejs instance per thread and doesn't make use of any sort of caching mechanism for repeated requests. To solve this Gekko itself would have to be modified.
--
3. Note that the multi-server mode is sort of an advanced use of GAB. It of course can do wonders for the max number of threads one can run but it requires quite a bit more from the user (like syncing everything etc). But -- it also is very recommended to run such a thing with the MySQL option. This due to the fact that any high number of threads can cause a lot of WRITE operations which SQLite just isn't great for and that can cause the SQLite databases to become corrupt. With the MySQL option this simply isn't a problem since MySQL easily handles a lot more concurrent read/write then GAB will ever use.
1. There are details on this in the config.sample.php file. But yes -- all your Gekko servers must be in sync meaning they must have the same strategies and history file(s). How you sync your servers is up to you. But rsync is one way to do it -- yes.
2. No requirement, but basically one can count 1 thread / 1 physical core needed. So if you have a Quad-core processor you would max out around 4 threads. What mostly happen if you use more threads then your core count is that your system will begin to que threads which is a bad thing since it will increase the time taken to finish each run and you may hit timeouts after a while. Often one can use core count + 1 though so a Quad-core computer can use 5 threads. Do note that 5 threads on a quad core will nearly use 100% of your CPU so for very long runs (10+ hours) i would not recommend that you push your hardware in such a way.
These limits doesn't got anything to do with GAB but is more about how Gekko API works; unfortunately Gekko API spawn's 1x nodejs instance per thread and doesn't make use of any sort of caching mechanism for repeated requests. To solve this Gekko itself would have to be modified.
--
3. Note that the multi-server mode is sort of an advanced use of GAB. It of course can do wonders for the max number of threads one can run but it requires quite a bit more from the user (like syncing everything etc). But -- it also is very recommended to run such a thing with the MySQL option. This due to the fact that any high number of threads can cause a lot of WRITE operations which SQLite just isn't great for and that can cause the SQLite databases to become corrupt. With the MySQL option this simply isn't a problem since MySQL easily handles a lot more concurrent read/write then GAB will ever use.