Introduction
World pandemic created unprecedented growth of the video conferencing platforms during 2020/2021.
Google CEO speech regarding Q1 2020:
“Last week, we surpassed a significant milestone,” said Pichai on today’s earnings call. “We are now adding roughly 3 million new users each day and have seen a thirty-fold increase in usage since January. There are now over 100 million daily Meet meeting participants.”
Google engineers worked super hard to scale their data centers infrastructure to meet the hugely increased demand.
Here is an excerpt from Google technical blog:
“As of this month, Meet is hosting 3 billion minutes of video meetings”
Obviously,Google has tons of servers running, but let’s try to calculate their infrastructure costs. It would be tricky but interesting.
Basic Calculations
First, let’s find out the average meeting duration. Internet says:
The average meeting length is between 31 to 60 minutes.
Let’s choose something in between and stick to 45 minutes.
Now, taking into account information from Google excerpts above (3 billion meeting minutes every day), we can calculate average number of meetings per day:
3 billion / 45 min = 66,666,667 meetings per day
Another piece of useful information I’ve found online is about the number of participants inside video meetings:
Slightly over half (54%) of meetings have 4-6 participants, (27%) have 7-10 participants, (12%) have less than 3 participants, and (7%) have 11-25 participants
Let’s convert that into Google meetings per day numbers:
- (12%) Less than 3 participants = 8 mln meetings per day
- (54%) 4-6 participants = 36 mln meetings per day
- (27%) 7-10 participants = 18 mln meetings per day
- (7%) 11-25 participants = 4,7 mln meetings per day
Yes, I know Google Meet allows having more than 25 participants in one room.
But as you see, the declining trend for rooms with big audiences, let’s assume that meetings with 25+ participants are in the same 7% group of 11-25 participants.
Ok, and now an interesting fact. Google Meet uses “peer to peer” connections for calls with 2 participants.
Note: Peer-to-peer connections are used only for calls with two participants. If any additional participant joins, Hangouts will immediately switch to sending and receiving data using the connection to the Google server.
Meaning, that 8 mln meetings per day inside Google Meet are working via “peer-to-peer” approach, and that means almost no server load involved. Technically speaking, there is server load for TURN relay servers, but in comparison to other calls with bigger audiences, it’s negligible.
By the way, if you are interested in “peer 2 peer” approach, you can check out my other blog post “How many participants can we place in one WebRTC peer 2 peer room”
How to find Google Meet server load and capacity?
Ok, so, how do we estimate the server’s load for the majority of video calls? I would suggest considering products similar to Google Meet, since we can find benchmarks online.
For example, let’s take “Jitsi Meet”, an open source video conferencing alternative.
“Jitsi Meet” engineers have done the performance testing of their product and found out that quad-core Intel ® Xeon® E5-1620 v2 @ 3.70GHz CPU can handle 33 users in a video conferencing room while being busy only by 20% of its capacity.
We know Google is excited at optimizing everything, so we will take a greater number of 40 users per 20% CPU usage. Then we can calculate that for 100% CPU usage the Google Meet server will handle 200 users.
And as you probably noticed, not all users turn their cameras on. And when the camera is off, there is less load on a server. Meaning we can increase to 250 users per one server.
Servers: working hours numbers
36 mln meetings with 5 participants | 540K hours of server time |
18 mln meetings with 7-10 participants | 540K hours of server time |
4,7 mln meetings with 25 participants | 353K hours of server time |
Total 1,433 mln server hours
Detailed Calculations:
[36 mln meetings with 5 participants]. 250 users per server we will divide by 5 participants = 50 meetings could be going on one server at the same time.
36 mln meetings divided by 50 meetings per server = 720K server time slots by 45 min or in other words 540K hours of server time.
[18 mln meetings with 7-10 participants]. 250 users per server divide by 10 participants = 25 meetings could be going on one server at the same time
18 mln meetings divided by 25 meetings per server = 720K server time slots by 45 min or 540K hours of server time
[4,7 mln meetings with 25 participants]. 250 users per server divide by 25 participants = 10 meetings in one server
4,7 mln meetings divided by 10 meetings per server = 470K server time slots by 45 min or 353K hours of server time.
In Total per one single day we will have:
540K hours + 540 hours + 353 hours = 1,433 mln server hours.
Google DataCenter Pricing
Google Cloud pricing calculator suggests the price of c2-standard-4 instance around $0.167 per hour
Of course that’s an external rate and internally the base cost, I would say, should be around 30% of the price they charge average users. So let’s take 30% from $0.167 = $0.05 per server hour.
Now, we will multiply 1,433 mln server hours by $0.05 per hour = $71.6K per day. Or $71.6K * 30 = $2.14 mln per month.
It is worth adding redundancy to the equation, because it’s not possible to have infrastructure so optimized, I would add 200% on top of that price = $6.42 mln per month.
Internet Data Traffic Costs
The thing that remains untouched is the Data Traffic. We will calculate the amount of data Google Meet sends back and forth and add it to the server’s costs.
So we know that 1.433 mln hours of server time is being spent each day. One server handles 250 users.
Google has its recommendations for the network bandwidth:
Let’s assume 50% of users send/receive video in HD quality and the remaining in default 360p resolution.
Data Sending to Google Servers
250 users x 1,433 mln servers x 3.2 Mbits * 50% = 240 PB
250 users x 1,433 mln servers x 1 Mbits * 50% = 75 PB
Data Receiving From Google Servers
540K hours 4-6 participants => (HD) 3.2 mbps or (SD) 1.5 mbps
250 users x 3.2 mbps x 50% = 91 PB
250 users x 1.5 mbps x 50% = 42 PB
540K hours 7-10 participants => (HD) 4 mbps or (SD) 2 mbps
250 users x 4 mbps x 50% = 113 PB
250 users x 2 mbps x 50% = 57 PB
353K hours of 11-25 participants => (HD) 4 mbps or (SD) 2 mbps
250 users x 4 mbps x 50% = 74 PB
250 users x 2 mbps x 50% = 37 PB
Total Data Sent 240 PB + 75 PB = 315 PB
Total Data Received 91 PB + 42 PB + 113 PB + 57 PB + 74 PB + 37 PB = 414 PB
Total Data Transfer = 729 PB
Now let’s discuss the CDN pricing. The most recent pricing update that we can find online, is here:
Those charts are per 1 GB of transferred data. Let’s take the 2020 number $0.0006 and multiply by 729 PB = $458K for Data Transfer per month
Summary
Total estimated “Google Meet” Costs = $6.42 mln + $0.458 mln
If you would like to build custom video conferencing or video streaming platform, don’t hesitate to contact me here at Trembit: sz@trembit.com