M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write 1 Connection A 2 Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write 1 2 Connection A Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write Connection A 1 2 Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write Connection A 2 1 Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write Connection A 1 2 Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write Connection A 1 2 Connection B 3 5
M OD ELING I NDIVI AL M IC ODELING IVIDU DUAL ICRO ROSERVIC ERVICES ES 𝝂 qSim microservice model • Multiple stages per microservice • Provided models for common OS queueing utilities (e.g., epoll & socket read) • Each stage optionally coupled with a queue • Multiple execution paths (e.g., Memcached read/write) per microservice Memcached Mem$ read Socket Socke TCP RX Epoll TCP TX read t Mem$ send write Connection A 1 2 Connection B 3 5
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW 6
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Microservice dependency graph Memcached NGINX MongoDB 6
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Microservice dependency graph Memcached Dataflow NGINX • Sequence of microservices to execute MongoDB • Differ across request types • Dataflow node encodes blocking/synchronization operation 6
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Microservice dependency graph Memcached Dataflow NGINX • Sequence of microservices to execute MongoDB • Differ across request types • Dataflow node encodes blocking/synchronization operation Deployment • Available servers and hardware resources • Service to server mapping • Services on the same server share network stack & disk I/O 6
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 2 1 NGINX Memcached Connection B 3 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 2 1 NGINX Memcached 3 Connection B 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 2 1 NGINX Memcached 3 Connection B 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 2 1 NGINX Memcached 3 Connection B 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 2 1 NGINX Memcached 3 Connection B 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 1 2 NGINX Memcached 3 Connection B 7
M OD ELING D EP CY G RA RAPH & D ATA ODELING EPENDEN ENDENCY ATAFLOW FLOW Example: 2-tier application & http 1/1.1 protocol • Dependency graph NGINX Memcached NGINX Memcached NGINX • Dataflow Block recv Unblock recv connection connection Connection A 1 2 NGINX Memcached 3 Connection B 7
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write MongoDB Graph NGINX Text Read Memcached UserTag Post MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write R MongoDB Graph NGINX Text Read Memcached UserTag Post MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL r Shorten Memcached Posts Unique r Storage MongoDB ID Write r Video Timeline Compose Memcached r Post Image Write MongoDB Graph NGINX r Text Read Memcached r UserTag Post MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique Storage MongoDB ID Write Video Timeline r r r r Compose r r Memcached Post Image Write MongoDB Graph NGINX Text Read Memcached UserTag Post MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video r Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text Read Memcached UserTag Post MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text Read Memcached UserTag Post r MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text R Read Memcached UserTag Post r MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text Read Memcached UserTag Post r MongoDB Read R Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose R Memcached Post Image Write r MongoDB Graph NGINX Text Read Memcached UserTag Post r MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text Read Memcached UserTag Post r MongoDB Read R Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
D EP CY G RA OR C OMPL EX M IC EPENDEN ENDENCY RAPH FOR OMPLEX ICRO ROSERVICES SERVICES Social network application URL Shorten Memcached Posts Unique r Storage MongoDB ID Write Video Timeline Compose Memcached Post Image Write r MongoDB Graph NGINX Text R Read Memcached UserTag Post r MongoDB Read Timeline Memcached Follow User User Info MongoDB Source: http://www.csl.cornell.edu/~delimitrou/papers/2019.asplos.microservices.pdf 8
S IM IMULATOR ULATOR IN INPUTS UTS 9
S IM IMULATOR ULATOR IN INPUTS UTS Microservice queueing model • Identifying sources of queueing • Typical queues: network, epoll/kqueue, socket read, disk I/O… • Microservice models reusable (open source community) 9
S IM IMULATOR ULATOR IN INPUTS UTS Microservice queueing model • Identifying sources of queueing • Typical queues: network, epoll/kqueue, socket read, disk I/O… • Microservice models reusable (open source community) Processing time distribution • Instrumenting applications and profiling on real servers • Instrumentations reusable 9
S IM IMULATOR ULATOR IN INPUTS UTS Microservice queueing model • Identifying sources of queueing • Typical queues: network, epoll/kqueue, socket read, disk I/O… • Microservice models reusable (open source community) Processing time distribution • Instrumenting applications and profiling on real servers • Instrumentations reusable Microservice dependencies & dataflow paths • Obtained from app developers 9
S IM IMULATOR ULATOR IN INPUTS UTS Microservice queueing model • Identifying sources of queueing • Typical queues: network, epoll/kqueue, socket read, disk I/O… • Microservice models reusable (open source community) Processing time distribution • Instrumenting applications and profiling on real servers • Instrumentations reusable Microservice dependencies & dataflow paths • Obtained from app developers Server & system resources 9
V AL ALIDATIO IDATION Validation experiments • Multi-tier microservices: 2/3-tier application • Load balancing & fanout effects • Microservices based on RPC • Comparison with BigHouse Server platform for trace collection • 10-server cluster • Intel(R) Xeon(R) CPU E5-2660 v3 • 2 sockets, 10 cores/socket, 2 threads/core • Min/max DVFS frequency: 1.2GHz/2.6GHz • Network bandwidth: 1Gbps 10
2/3-T IER IER A PPLICA ICATION TION 2-tier application NGINX Memcached 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application R Memcached NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application R Memcached R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R NGINX R MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R R NGINX MongoDB 11
2/3-T IER IER A PPLICA ICATION TION 2-tier application R NGINX Memcached 3-tier application Memcached R R NGINX MongoDB 11
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R Load Balancer R NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R Load Balancer R NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
L OA OAD B AL ALAN ANCING CING Linear throughput increase from cluster size of 4 to 8 Sub-linear increase from cluster size of 8 to 16 R R Load Balancer NGINX NGINX NGINX Web Server Web Server Web Server 12
Recommend
More recommend