Main memory accounts for a large and increasing fraction of the energy consumption in multi-core systems. Therefore, it is critical to address the power issue in the memory subsystem. This paper presents a solution to improve memory power efficiency through coordinating page allocation and thread group scheduling (CAS). Under the proposed page allocation, all threads are partitioned into different thread groups, where threads in the same thread group occupy the same memory rank. Thread group scheduling is then implemented by adjusting default Linux CFS. The CAS alternates active partial memory periodically to allow others power down and prolongs the idle ranks. Experimental results show that this approach improves energy saving by 10% and reduces performance overhead by 8% comparing with the state of the art polices.