ericaltendorf / plotman

Chia plotting manager
Apache License 2.0
909 stars 280 forks source link

tmp_overrides multiple entries format #126

Open iliaorkin opened 3 years ago

iliaorkin commented 3 years ago

Hello, I was wondering if the below tmp_overrides are correctly formatted if we have multiple drives that can handle more max jobs than tmp_dir_max_jobs setting:

image

Thank you!

altendky commented 3 years ago

That strikes me as ok, though I haven't used this feature yet. Are you having any issues?

iliaorkin commented 3 years ago

Those drives seem to be starting a 4th job, and my tmpdir_max_jobs is set to 3, so it looks like the override is working!

I need to change the stagger_phase settings to make them each have 6 consecutive jobs. Is there a way to change these settings on the fly or do I have to restart plotman completely?

Thanks!

iliaorkin commented 3 years ago

Now that I think about it, it would be nice to have override option for stagger_phase settings as well. For instance my 1TB drives can use phase_limit 1, while the 2TB drives that have faster writes can use phase_limit 2

iliaorkin commented 3 years ago

Ok I think I have a work around for what I've described above:

In case of some drives using the global max jobs 3, and some drives using override max jobs 6:

Start plotman interactive with phase_limit 1 in the config. Let it run until the global max jobs drives reach 3 instances.

Change the config to phase_limit 2. Close the plotman interactive terminal to kill the process. Run plotman interactive again. The drives with override max jobs 6 will start working on new plots and always have 2 plots in phase 1 at a time.

This achieves the goal of not having the global max jobs 3 drives having 2 jobs in phase 1 at the same time

image

In the above screenshot, AORUS1 AORUS2 AORUS3 are global max jobs 3 and plotman started with the config set with phase_limit 1.

The rest of the drives can handle having 2 instances in phase 1 at the same time, so phase_limit was changed to 2 before restarting plotman. This should result in eventually reaching the desired override_max_jobs 6 (will report on it later on)

altendky commented 3 years ago

Presumably there should be more per-tmp-drive configurability at least in the direction you provide.

Yes, restarting plotman is how you get configuration updates. This should be fine since plotman is (fairly) stateless. You can exit plotman by pressing q.

Yeah, you can play games like you mention with changing the config. We can't support everything immediately, but I do consider this workaround to be exactly that, a workaround for missing features in plotman.

drygb commented 3 years ago

So when "plotman interactive" is open and running and I press Q - is it turned off? Because status is showing that processes are running. What should I do to correctly restart plotman to reload config settings?

altendky commented 3 years ago

@drygb plotman just launches chia plotting processes. They continue when you quit plotman. When you run plotman again it will load the present configuration file and detect the previously-started processes.

ericaltendorf commented 3 years ago

regarding the "overrides" part of the config, i am leaning towards eliminating the "global" settings and defaulting to per-dir settings.  Most people don't have a ton of directories anyway, and a lot of people seem to have heterogenous setups.  Then, if people have a lot of identical drives, they can use node references to avoid duplicating settings.  WDYT, @altendky ?

altendky commented 3 years ago

I think we're thinking pretty similarly, even down to YAML anchors... CPU related limits would still be global, but we probably need to discuss everything a bit and make sure I'm up to speed on some details.

gblikas commented 3 years ago

@drygb plotman just launches chia plotting processes. They continue when you quit plotman. When you run plotman again it will load the present configuration file and detect the previously-started processes.

@altendky Although unrelated to this issue, in particular, your statement I quoted should go in the readme. I feel like many, many issues I've seen in plotman have questions that can be answered by this statement. The readme has the following

Plotman tools are stateless. Rather than keep an internal record of what jobs have been started, Plotman relies on the process tables, open files, and logfiles of plot jobs to understand "what's going on". This means the tools can be stopped and started, even from a different login session, without loss of information.

but I think your explanation is much clearer.