In most structured P2P systems, using DHT algorithms to distribute objects randomly among nodes results in unbalance load in each node. Numerous load balancing proposals exist in P2P networks, most of them only focus on namespace balancing and under the uniform assumption. In ideal condition, these techniques really work well, but ignoring the effect of heterogeneity and uneven in both of varying object loads and wide varying node capacity. We propose an algorithm for load balancing in such heterogeneous systems. Our simulation results show that in face of overloaded peers appeared, our algorithm can transfer load successfully from overloaded node, achieve load balancing effectively.