in general the MTU size for NB-IoT is not handled differently on the network side than for plain LTE. Choosing 1500 Bytes, which is the maximum for ethernet-based links can be considered as a good upper bound.
However, there are some points to consider bevor configuring this value. NB-IoT is usually used via private APNs (Mobile IP VPN NB-IoT). This means that an VPN connection via IPSec is established between our PGW and the customers infrastructure. The IPSec connection adds additional overhead and constraints on the effectively usable MTU size, for servers and devices behind the tunnel interfaces.
For instance, IPSec connections terminating on an AWS Site-to-Site GW are restricted to a MTU size of 1438 Bytes for devices and servers.
This means, that if you want to maximize the MTU, you need to determine the optimal size for each setup individually.
Actually, this is not a very complicated process. Once, the IPSec connection is established this can be achieved using ICMP pings, which are available on every common platform. On Linux-based servers the command:
ping <TARGET IP> -M do -s <MTU size - 28 Bytes>
can be used. Where <TARGET IP> is the IP-adress of a terminal attached to the network, using the private APN. The MTU size to be probed needs to be reduced by 28 Bytes to account for IP and ICMP headers.
If the ping is answered the MTU size can be increased otherwise, it has to be reduced. Usually, the response will already tell you which hop on the path requires fragmentation.