6 ms·
> We rent commodity dedicated servers. So not even a VPS like Linode, Discord rent physical servers across the board? Or is there a mix of AWS or some other ve
by leonroy 8y ago
> We rent commodity dedicated servers.
So not even a VPS like Linode, Discord rent physical servers across the board? Or is there a mix of AWS or some other vendor in there?
- deleted 8y ago[deleted]
- jhgg 8y agoWe host our voice server on dedicated hardware, not VPS. Visualization overhead for networking is too high for the cost. Additionally, you can buy bandwidth for much cheaper from dedicated hosting providers as opposed to cloud providers. For our usecase, AWS would be approximately 15,000x to 30,000x more expensive due to bandwidth pricing.
- Slartie 8y agoRegarding bandwidth, since that is probably the most important resource required by your voice servers: do you strategically use the mixed-calculation-type pricing that some dedicated server providers offer (where you can get large amounts of traffic included in cheap server prices because very few heavy users are subsidized by many users that only use a tiny fraction of their bandwidth share) or are you rather renting dedicated uplinks for your servers that you and your provider expect to be fully saturated most of the time?
- bcheung 8y agoCan't speak for Discord but at that scale a provider is probably going to charge you for the physical pipe 100 Mbps, 1 Gbps, 10 Gbps, or by the bandwidth used (Mbps) using the 95% percentile method.
- bcheung 8y agoIt really amazes me how ridiculous cloud providers are with their bandwidth pricing. Anything with user generated video is not feasible on the current cloud providers. Dedicated server providers like OVH are more than an order of magnitude cheaper. Anyone know why cloud providers have such high markup on bandwidth?
- jsjohnst 8y ago> Anyone know why cloud providers have such high markup on bandwidth? 1) because they can 2) because they may not really want that type of clients 3) because due to the nature of peering agreements, they want to avoid paying as much as they can Not sure which of the above applies, but the list is very likely at least part of the reason.
- mmt 8y agoIt can be at least partially explained by a mismatch between the "cloud" model and the underlying engineering (and market) reality [1]. One has to build (or buy) for peak bandwidth. Selling it pay-as-you-go, with no regard to local maxima, means one has to price that rate high enough to account for the typical (and then some) spikiness in traffic. [2] It's not hard to imagine that something like a UGC video site might significantly increase that spikiness ratio, if only because of the sheer quantity of data involved. Moreover, it's a large quantity of data transfer per user, so even modest user growth would result in huge network use growth. As a sibling comment pointed out a cloud provider "may not really want that type of client". Perhaps cloud providers could start charging on a more traditional-ISP 95th-percentile style basis for larger customer and engineer their networks accordingly, but then they might have to keep those customers corralled in specific datacenters, which would remove part of the value of cloud infrastructure. [1] Forgetting that "the cloud is just somebody else's servers" also led to the delusion that one doesn't have to "worry" about hardware failures in the cloud. Fortunately, it's now common knowledge that EC2 instances are subject to disappearing due to hardware reasons and that this needs to be "worried" about (engineered around). [2] There is a similar issue with residential electricity pricing, where consumers pay a flat rate but the utility actually pays time-of-use (potentially a much higher rate on the spot market). Somewhat related to but not identical to rooftop solar using the grid as a "free battery", since that's also time-of-use. These come up routinely on HN discussions of electric power.
- bcheung 8y agoWouldn't it be cheaper for cloud providers though? They are buying more bandwidth so they can get it cheaper. Also, they are taking advantage of the fact that clients have unused bandwidth so they can overprovision and get cost savings that way as well. I would think that that SHOULD make it cheaper for clients, but the opposite seems to be the case.
- gregdunn 8y ago>Visualization overhead for networking is too high for the cost. Do you mean virtualization? If so, I recommend looking into testing this with SR-IOV based NICs and passing through a VF to the guest. Even in regular operation the latency difference between bare metal and an ixgbevf virtualized NIC all but disappear into levels well below anything that would be meaningful for voice communication. Moving to a DPDK based poll mode driver would reduce the latency differences even further. Edit: https://01.org/packet-processing/blogs/nsundar/2018/nfv-i-host-configuration-low-latency https://01.org/packet-processing/blogs/nsundar/2018/nfv-i-ho... some actual numbers w/ DPDK on bare metal vs vm Disclaimer: I work for a cloud company, but SR-IOV knowledge in general is something I had from my days running a vmware environment, and not anything new :)
- mmt 8y agoWith potentially substantial engineering effort, including needing to hire someone with a relatively rare expertise, they could [1] eliminate that specific downside of virtualization. However, there are remaining overhead/downsides, and virtualization may be a solution looking for a problem in their environment. [1] Also, presumably, dependent on specific NIC hardware, but I expect they're already using something compatible. It's merely another constraint.
- gregdunn 8y agoBy no means do you need DPDK to basically eliminate the latency difference - I just wanted to point out how low latency can go in general. A vm using SR-IOV with ixgbevf on good ol' Intel 82599 from 7 years ago will not have a latency difference noticeable to the overwhelming majority of use cases vs. bare metal.
- mmt 8y ago> By no means do you need DPDK to basically eliminate the latency difference I didn't mean to imply that was your argument. > I just wanted to point out how low latency can go in general. Rather, I meant that "can" isn't the same as "does", absent exceptional circumstances. > A vm using SR-IOV Whether this qualifies as exceptional is, of course, arguable, but I'm arguing that it is. I could understand the point that it doesn't have to be, but, to be actually convinced, I'd want to see evidence that it's well understood and well implemented enough that neither rare expertise, substantial engineering effort, nor constrained configuration (hardware or software) would be required to take advantage of it. I'd expect most technically-minded decision makers to think similarly.