I found out, that i don't have to. I have just few large channels open to well connected nodes.
I don't optimize for forwarding or anything so I don't care about the traffic.
I set high fees on approx half of the channels. The other half is drained (I also use them to pay things) over time so have like half as inbound liquidity.
That's how I balance them.
If things are too bad (actually happened only once in the begining) i just loop in/out.