1. 程式人生 > >在整個網際網路中,成人網站有多大?

在整個網際網路中,成人網站有多大?

上網之人,多少都會接觸過成人網站。這是一個舉世公認的事實。

不過這是一個難以洞察的領域,因為相關資料少之又少。我們知道成人網站都是那些在網際網路上有著超高流量的網站。根據 Google DoubleClick 的 Ad Planner 服務(通過cookie跟蹤網民)顯示,全球 Top 500 網站中,就有數十個成人網站。全球最大的色情網站 Xvideos 每月網頁瀏覽量(Page Views,PV)高達 44 億,是 CNN 或 ESPN 新聞網站的 3 倍,是 Reddit 的 2 倍。LiveJasmin 也不小。除了 Google 和 Facebook 等大站,其他網站在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)方面,能與之匹敵的網站,也就只有 YouTube 或 Hulu,而 YouPorn 卻又是 Hulu 的 6 倍。

基礎設施

就支援視訊所需的資源,資料儲存器、CPU 週期、I/O 和頻寬,遠超過文字和影象所需要的資源。

當然了,雖然每個網站的情況又不一樣了,但大部分成人站點都有 50 至 200 TB 的成人資料。對一個網站來說,這是個大數目(Google、Facebook、Blogger 和 Youtube 之流儲存的資料比這還要多),好在現在 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.