MajorCompaction and Minor Compactions are strictly frequency based.
They should be at least time of the day based.
Ideally we should run longer compactions during low system load in background, and if the system load raises, reduce the compaction depending on the disk availability.
Simpler first step would be to schedule "deeper" compaction at the times of the day/days of the week with typically lower load.
i.e. set major compaction threshold to 0.4 normally, 0.6 at night/weekdays and 0.8 at night/Saturday.