As PoolStored said, it's likely low flow. If increasing the flow does not resolve it, some of the heat exchanger could be clogged. Try back flushing the heater. Also check to see it's using the right amount of natural gas and not over fueling (not likely, but doesn't hurt to check), with NG you should be able to see how much gas is being used and equate that to the BTU output of your heater with an adjustment for efficiency (100 CF is about 104K btu). If your heater is 400K btu it should use about 1 cf in 15 minutes if it's running continuously. If there is scale build up impeding flow it might need a new heat exchanger or a cleaning with chemicals to dissolve the scale.