Load balancing (LB) is crucial in the field of cloud computing. LB is to find the optimum allocation of services onto a set of machines so the machine usage can be maximised. This paper proposes a new method for LB, simulated annealing (SA) enhanced by grammatical evolution (GE). SA is a well-known stochastic optimisation algorithm that has good performance on a range of problems including loading balancing. However the success of SA often relies on a key parameter known as the cooling schedule and the type of the utilised neighbourhood structure. Both the parameter and the structure of SA are problem specific. They need to be manually adjusted to fit the problem in hand. In addition different stages of the search process may have different optimal parameter values. To address these issues, a grammar evolution approach is introduced to adaptively evolve the cooling schedule parameter and neighbourhood structures. The proposed method can adjust SA parameter and structure based on the landscape of the current search state so high quality solutions can be found more quickly. The effectiveness of the proposed GE method is demonstrated on the Google machine reassignment problem, which is a typical LB problem, proposed for the ROADEF/EURO 2012 challenge. Experimental results show that our GE enhanced SA is highly competitive compared to state-of-the-art algorithms.