At Parsec, we believe that the future of computing will shift from an ownership model to an access one. One way people will access their high-powered machines in the future will be through the cloud to get access to the software and hardware they need to run it. Today, the need is felt acutely in gaming. We're building the software platform to lower latency as much as possible to make it so you can stream PC games at high resolutions with a consistent 60 frames per second. To do this, we've solved a lot of challenges, but one is around managing the cloud machines we launch with AWS. Here we describe how we eliminated two issues - slow launch times with AWS and high I/O latency on newly launched AWS machines.
3. PC GAMING IS EXPENSIVE AND COMPLICATED
The typical price and difficulty of
building a gaming PC restricts the
market.
@ParsecTeam
4. OUR SOLUTION – NO MORE EXPENSIVE HARDWARE
Parsec is a low latency, interactive video
streaming technology for cloud gaming.
1. Internal testing
2. g2.xlarge Northern Virginia to NYC
3. Gaming Anywhere Study
Lag has always inhibited cloud gaming and remote gameplay, but we’ve taken advantage of new
technologies to eliminate 90% of the latency and introduce a viable cloud product.
Native
latency
Parsec Local
latency
Parsec Cloud
(AWS)
OnLive latency
(2014)
Maximum
latency for
60FPS video
5ms 7ms1 20-35ms2 100ms 150ms3
@ParsecTeam
5. THE TIME IS RIGHT FOR CLOUD GAMING
One – Bandwidth costs continue to fall
precipitously, Gbps to the home and 5G
wireless are coming.
@ParsecTeam
6. THE TIME IS RIGHT FOR CLOUD GAMING
Two – Hardware decoding is available
on every new CPU and GPU.
@ParsecTeam
7. THE TIME IS RIGHT FOR CLOUD GAMING
Three – Cloud providers are investing
heavily in GPUs.
@ParsecTeam
8. THE TIME IS RIGHT FOR CLOUD GAMING
Four – The cloud is everywhere and
distribution is growing.
@ParsecTeam
10. THE GOAL FOR THE ARCHITECTURE
A user builds a gaming PC in the cloud
and can connect within one minute.
@ParsecTeam
11. INFRASTRUCTURE OVERVIEW
@ParsecTeam
• Kubernetes cluster running on AWS EC2
• Website and API
• Billing, server management, cleanup
• Nginx, Python with Tornado
• AWS RDS
• MySQL database stores application data
• NAT hole-punching service
• C
• Redis state store
• Logging
• AWS Kinesis Firehose
• AWS Redshift
• AWS Elasticsearch Service
• Global gaming machine fleet
• AWS g2 and g3 instances
13. CHALLENGES – EC2 LAUNCH TIME
@ParsecTeam
0
50
100
150
200
250
300
Seconds
Region
AWS g2.2xlarge Time To Initialize By Region
14. SOLUTION – EC2 LAUNCH
@ParsecTeam
• Maintain a pool of launched instances in each region
• Post-launch, stop the instance, wait for provision request
• On provision, reconfigure to be associated with user
• Tag EC2 instance with user id, used for tracking billing
15. CHALLENGE – EBS COLD START
@ParsecTeam
“New EBS volumes receive their maximum performance the moment that they are
available and do not require initialization (formerly known as pre-warming).
However, storage blocks on volumes that were restored from snapshots must be
initialized (pulled down from Amazon S3 and written to the volume) before you can
access the block. This preliminary action takes time and can cause a significant
increase in the latency of an I/O operation the first time each block is accessed. For
most applications, amortizing this cost over the lifetime of the volume is acceptable.
Performance is restored after the data is accessed once.”
- AWS EBS Documentation
17. SOLUTION – EBS COLD START
@ParsecTeam
• After pre-warm launch, sequentially read all disk blocks
• Lightweight, simple C program for Windows
• 85 lines
• Opens root drive
• Sequentially reads all blocks
• Snapshot data now stored locally on EBS volume
• Stop instance, wait for user provisioning