That smell is coming from bacteria in the water. It's building up in your water heater and it gives you a smelly water heater. I suggest cutting off the water and put a few pints of hydrogen peroxide in to the heater and then hook it back up and run some water through it. Open all spigots and taps for a while. It should cure the smell. If the water sits in the heater for a long time, then it will smell again, so be careful when going out of town.