Shard size not even for the same index

One of our index is relatively big and I just found its shards size are not even, see below.

Any idea what could have cause this?
Will it cause any perf issues and anything I can do?

|my-index|0|r|STARTED|23869700|9.1gb|123.123.104.233|es-data-25|
|my-index|0|p|STARTED|23864279|4.6gb|123.123.104.153|es-data-10|
|my-index|0|r|STARTED|23854902|10.3gb|123.123.113.49|es-data-35|
|my-index|2|p|STARTED|303340414|70.2gb|123.123.97.11|es-data-45|
|my-index|2|r|STARTED|302962931|62.1gb|123.123.108.156|es-data-7|
|my-index|2|r|STARTED|302694814|71.3gb|123.123.103.221|es-data-18|
|my-index|5|r|STARTED|23856194|11.2gb|123.123.114.221|es-data-20|
|my-index|5|p|STARTED|23852768|9.3gb|123.123.99.102|es-data-12|
|my-index|5|r|STARTED|23854955|4.6gb|123.123.102.23|es-data-33|

Are you using custom document routing? Is the index using parent-child relationships?

Thanks for the hint @Christian_Dahlqvist

I didn't find any routing config in the mapping of the index. How can I check for parent-child relationships?

Btw, we deleted a lot of documents in this index recently. This unbalance happened after that.

Then it may be that the shards are in different stages of merging so a lot of the deleted documents may not have been m,erged out yet for some shards. You can manually run a forcemerge and see if that reduces the size but that can be I/O intensive.

Seems like forcemerge have worked, thanks @Christian_Dahlqvist