Mashup is usually created by end-users to provide new services by combining data or functionality from multiple sources on the Web. Given that a mashup may have millions of concurrent user access, it is essential to work out a framework to optimize the runtime engine hosting the running of a myriad of pipe-like mashups. According to our analysis, memory is the primary resource to run mash ups and we work out a metric named PMT to measure the memory consumption. A scheduling framework is then put forward consisting of mashup decomposition and a PMT-aware scheduling policy, which is named "lazy-start" designed to improve memory utilization. A set of experiments are performed to show the effectiveness and efficiency of this framework.