I'm studying basics of inter-datacenter network. I know the ECMP idea and it's popular to combine ECMP and MPLS. I want to know the motivation of load-balancing all the LSPs. I think the reason is that evenly splitting the traffic to the LSPs will minimum the network congestion. But if assume we have a central controller for TE, will it be better that we use uneven bandwidth for the LSPs such that we can globally optimize the whole network traffic?
I think the question you have asked is bespoke to your situation. Without anything like MPLS-TE and PCEP etc, just having ECMP between to P/PEs is a very optimal design to ensure as network flows come and go there is a good chance there is enough free bandwidth on any of the ECMP member links to support those flows.
If you have a central traffic engineering solution that’s great, you can balance the LSPs unevenly and have no problems at all (as long as you can actually do that properly!).
For example sake; if you have two 1G links and use ECMP. If a network flow starts and it uses 500Mbps of bandwidth over LSP1 which is load-balanced over link 1. The next flow that starts up is 300Mbps over LSP2 and is load-balanced over link 2. Now a third flow starts up that is 600Mbps over LSP1 which is load-balanced over link 1, now link1 is congested and that flow would have fitted onto link2. That is a great advantage of a centralised TE system using unequal cost multi-pathing.
Which is best though really depend on your network. If you properly capacity mange the member links in an ECMP group (continuing our 2x 1G link example) to run at more than 50% each you will have no problems in a failure scenario. The links should have been upgraded to 10G Links by this point (or something higher than 1Gbps). Having said that, you also need to "know" your network and the traffic flows on it; capacity management isn't just about raw volume figures.
Just to touch on it as it's partially related...
ECMP and Single Link Failures
Number of connections from point A to point B = N
N = 4
Speed of a single connection = S
S = 1000
The maximum utilisation of any single link that will still support a single link failure = LinkMax
LinkMax = S-(S/N)
LinkMax = 750
ECMP and Multiple Link Failures
Maximum number of link failures that we would wish to endure without exceeding capacity of remaining links = F
F = 2
N = 4
S = 1000
LinkMax = S-(S/(N-L))
LinkMax = 500