在整个互联网中,成人网站有多大?
上网之人,多少都会接触过成人网站。这是一个举世公认的事实。
不过这是一个难以洞察的领域,因为相关数据少之又少。我们知道成人网站都是那些在互联网上有着超高流量的网站。根据 Google DoubleClick 的 Ad Planner 服务(通过 cookie 跟踪网民)显示,全球 Top 500 网站中,就有数十个成人网站。全球最大的色情网站 Xvideos 每月网页浏览量(Page Views,PV)高达 44 亿,是 CNN 或 ESPN 新闻网站的 3 倍,是 Reddit 的 2 倍。LiveJasmin 也不小。除了 Google 和 非死book 等大站,其他网站在 YouPorn、Tube8 和 PornHub 面前都是小巫见大巫。
虽然网页浏览量是一个很好的起始点,但它们仅告诉我们某些色情网站比某些非色情网站要受欢迎。40 亿的 PV,听起来很多,但当我们把那些X站用户实际在做的事考虑进来,成人网站的大小和规模就有点明朗了。
规模
色情网站和非色情网站的主页区别是访客的平均停留时间。诸如 Engadget 等新闻网站的平均停留时间是 3 – 6 分钟,大约是是阅读 1 – 2 篇文章。然而色情网站的停留时间,大约是在 15 – 20 分钟。
大部分网站的内容主要是文本和图像,而成人大站则是视频。ExtremeTech 首页完全加载大约是几兆数据,打开一篇文章,大约是 500kb 数据。访问色情网站,假设是打开一个 480×200 低分辨率的视频,每秒传输 100 kb 数据。15 分钟的话,那就大约是 90 MB 数据了。
Xvideos 每月有 3.5 亿访问次数,乘以 90 MB,那就每月传输大约 29 PB 数据,也就是每秒传送数据约 50 GB。做个对比,你家网络连接可能每秒传送两兆(2 MB),Xvideos 是你家的 25,000 倍。
简而言之,色情网站是在处理天文数字级别的数据。在原始带宽(Raw Bandwidth)方面,能与之匹敌的网站,也就只有 油Tube 或 Hulu,而 YouPorn 却又是 Hulu 的 6 倍。
基础设施
就支持视频所需的资源,数据存储器、CPU 周期、I/O 和带宽,远超过文本和图像所需要的资源。
当然了,虽然每个网站的情况又不一样了,但大部分成人站点都有 50 至 200 TB 的成人资料。对一个网站来说,这是个大数目(Google、非死book、Blogger 和 油Tube 之流存储的数据比这还要多),好在现在 2 TB 的硬盘便宜。
CPU 周期和 I/O 会影响视频流和 PV 数量。首先,色情网站要提供动态、可搜索的海量视频数据库,然后点播视频时,从硬盘读取文件,再网络上传输。如果你有过在局域网传送大量大文件的经历,你就会知道网络系统的压力有多大了。
硬件设备情况,实际上我们几乎无法知晓,因为色情网站也没公布过。虽然如此,但我们讨论的大型色情网站会有四核服务器、千兆交换机、负载均衡 器。在软件方面,大部分大型色情网站都会使用超高吞吐量的数据库(比如 Redis )来存储和提供视频,还有轻量级的 HTTP 服务器(比如 Nginx )。
最后说带宽。还是以 Xvideos 为例(基于 Ad Planner 的数据估测),大型色情网站必须有足够的连通性(connectivity)来支撑每秒 50 GB(400Gbps )。这还只是平均传输速率。在高峰期间,Xvideos 或许要 1,000Gbps (1Tbps) ,或更高 。在伦敦和纽约直接的连通性也才 15Tbps。
有很多方法来处理高流量:自己搞个数据中心,或者去大数据中心租赁几排架的服务器,或者使用诸如 Amazon AWS 和 Microsoft Azure 之类的云服务。
真实案例
YouPorn 是全球第二大的色情网站,足够提供研究数据。另外要说一下,DoubleClick 的 Ad Planner 中的估测数据比实际数据要低很多的。
YouPorn 有“超过 100 TB 的干货”,每天网页浏览量超过 1 亿。总而言,这相当于每天传送 950 TB 数据(大部分都是视频流),每月大约传送 29 PB。Xvideos 肯定不止 28 PB 这个估测值了,它可能是每月 35 – 40 TB。
在高峰期,YouPorn 每秒得响应 4000 个网页,相当于有每秒 100 GB 或(800 Gbps )的突发流量。这相当月每秒传送 10+ 张双层 DVD。
在软件方面,YouPorn 的主数据库是 Redis,用 MySQL 作为管理工具,用于管理和向 Redis 簇中添加数据。后端是 Perl 和 MySQL,不过在 2011 年改成了 PHP + Redis。HTTP 服务器是 Nginx,同时用 HAProxy 和 Varnish 做负载均衡。
Redis 服务器可以每秒处理 30 万请求,每小时记录下 8 – 15 GB 数据,包括访客日志、行为数据等。据说 Redis 可以抗住 2 亿的日 PV。
(译注:2012 年 2 月份,YouPorn 的技术人员 Eric Pickup 在 Google 群组宣告他们网站改用 Redis DB 后。扛住了每天 1 亿 PV 浏览量,每秒 30 万请求,已经坚持 2 周。Eric 还将去加拿大一个技术大会分享经验。)
令人悲伤的是,YouPorn 拒绝透露硬件设备信息。从 YouPorn 的 CDN 的 IP 地址来看,它应该没有使用云服务,应该托管在某地的大型数据中心。
互联网每天大约处理 1/2 EB 数据,相当于每秒处理 50Tb, YouPorn 的 800Gbps 这个数字,几乎就占了互联网中每秒流量的 2%。而全球有几十个和 YouPorn 规模相当的色情网站。互联网流量中色情内容占据了 30%,这个说法也就不是不现实的哦。
(译注:1 EB = 1024 PB = 1024 * 1024 TB = 1024 * 1024 * 1024 GB)
The internet really is for porn.