Configure core count

This commit is contained in:
Craig Everett 2025-05-14 22:46:36 +09:00
parent f29389ded7
commit 42bd267310

View File

@ -365,16 +365,12 @@ do_start_stop(#s{key = #key{id = PubKey}, network = Network}) ->
end
end,
Miner = unicode:characters_to_binary([Fatness, Bits, "-", Type]),
Count = optimize_count(),
Instance = #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
Workers = lists:duplicate(Count, Instance),
Profile =
[{pubkey, PubKey},
{workers, [#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>},
#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}]},
{workers, Workers},
{pool_admin_url, Eureka}],
ok = gmc_gui:message({notice, "Starting..."}),
ok = gmc_gui:message({notice, ["Miner: ", Miner]}),
@ -392,6 +388,31 @@ do_start_stop(#s{key = #key{id = PubKey}, network = Network}) ->
disconnected],
lists:foreach(fun gmhc_events:ensure_subscribed/1, Events).
optimize_count() ->
{Procs, Memory} =
case os:type() of
{unix, linux} ->
{processor, Cores} = hd(erlang:system_info(cpu_topology)),
P = length(Cores),
M = list_to_integer(string:trim(os:cmd("cat /proc/meminfo | grep MemTotal | awk '{print $2}'"))) * 1024,
{P, M};
{unix, darwin} ->
P = list_to_integer(os:cmd("sysctl -n hw.physicalcpu")),
M = list_to_integer(os:cmd("sysctl -n hw.memsize")),
{P, M};
{win32, nt} ->
P = list_to_integer(os:getenv("NUMBER_OF_PROCESSORS")),
M = list_to_integer(string:strip(lists:nth(2, string:split(os:cmd("wmic computersystem get TotalPhysicalMemory"), "\r\r\n", all)))),
{P, M}
end,
MeanMaps = Memory div (1_073_741_824 * 4),
Recommended = max(min(Procs, MeanMaps) - 1, 1),
ok = tell(info, "Physical Processors: ~p", [Procs]),
ok = tell(info, "Physical Memory: ~p", [Memory]),
ok = tell(info, "29-bit Mean Map Space: ~p", [MeanMaps]),
ok = tell(info, "Recommended Workers: ~p", [Recommended]),
Recommended.
do_gajudesk() ->
ok = tell(info, "Running gajudesk"),