Just for some analysis purpose i need to know what can be the maximum size limit of a block can have like 2MB or 5MB and is there any doc how we can customise it as per our need if its possible?
The block size is controlled in different ways. From the runtime you can set the maximum block size by setting the BlockLength. The block builder is also tracking the block size and by default aborts at around 4.5MiB, this can be changed by this function. The upper maximum is controlled by the maximum network package size, which is 16MiB.
When you are writing a parachain, the maximum block size is depending on the maximum PoV size. The maximum PoV size is controlled by the relay chain governance and thus, it is dynamic.