I stay away from caffeine because I inevitably crash a few hours later. Lots of water and juice and I try to avoid greasy fast food too. I also eat a bit less, but will snack on trail mix and orange or apple juice if I start to get drowsy at the board. Being rested is also very important.
Walking around too of course. My advice is not to wait until you're drowsy. At least once every hour get up and walk around. In between rounds I have to resist the urge to watch my friend's games finish leaving me even less time in between. My advice is to leave the playing area immediately and walk around outside (like around the building).
I generally drink a soda or two when I'm playing at a shorter G60-G90 event at my local chess club. But when I travel to tournaments such as those at Vegas or St. Louis, or play in the Chicago open or supernationals, I also avoid caffeine.
You should work out physically more. Maybe try hitting the gym every now and then?
Also, eat well before your match, rest after eating for at least 30 minutes and drink a lot of water.