More than likely what is happening is that there is an accumulation of rust and water deposit that formed on the bottom of the water heater tank and this is inhibiting the transfer of heat from the exchanger to the water.
There should be a drain on the bottom of your water heater that you should regularly drain the water from it. This should be done every couple of years to prevent such problems.
Turn off your water heater temporarily, attach the end of a hose to the bottom drain and run the other end to a floor drain or nearby slop sink. Open the drain valve to help try and flush a lot of that sediment out from the bottom. Don't be alarmed if the water looks rusty or grainy, this is normal wear and tear for a water heater.
See if this helps and if not then it is probably time for a new water heater.