In this paper, we consider the problem of optimal dynamic service function (SF) placement and flow routing in a SF chaining (SFC) enabled network. We formulate a multi-objective optimization problem to maximize the acceptable flow rate and to minimize the energy cost for multiple service chains. We transform the multi-objective optimization problem into a single-objective mixed integer linear programming (MILP) problem, and prove that the problem is NP-hard. We propose a polynomial time algorithm based on linear relaxation and rounding to approximate the optimal solution of the MILP. Extensive simulations are conducted to evaluate the effects of the energy budget, the network topology, and the amount of server resources on the acceptable flow rate. The results demonstrate that the proposed algorithm can achieve near-optimal performance and can significantly increase the acceptable flow rate and the service capacity compared to other algorithms under an energy cost budget.