在西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability 的报告。视频内容在 Google Video 上有(地址),可惜国内用户看不到。
Kyle Cordes 对这个视频中的内容做了介绍。里面有不少技术性的内容。值得分享一下。(Kyle Cordes 的介绍是本文的主要来源)
简单的说 YouTube 的数据流量, "一天的YouTube流量相当于发送750亿封电子邮件.", 2006 年中就有消息说每日 PV 超过 1 亿,现在? 更夸张了,"每天有10亿次下载以及6,5000次上传", 真假姑且不论, 的确是超乎寻常的海量. 国内的互联网应用,但从数据量来看,怕是只有 51.com 有这个规模. 但技术上和 YouTube 就没法子比了.
Web 服务器
YouTube 出于开发速度的考虑,大部分代码都是 Python 开发的。Web 服务器有部分是 Apache, 用 FastCGI 模式。对于视频内容则用 Lighttpd 。据我所知,MySpace 也有部分服务器用 Lighttpd ,但量不大。YouTube 是 Lighttpd 最成功的案例。(国内用 Lighttpd 站点不多,豆瓣用的比较舒服。by Fenng)
视频
视频的缩略图(Thumbnails)给服务器带来了很大的挑战。每个视频平均有4个缩略图,而每个 Web 页面上更是有多个,每秒钟因为这个带来的磁盘 IO 请求太大。YouTube 技术人员启用了单独的服务器群组来承担这个压力,并且针对 Cache 和 OS 做了部分优化。另一方面,缩略图请求的压力导致 Lighttpd 性能下降。通过 Hack Lighttpd 增加更多的 worker 线程很大程度解决了问题。而最新的解决方案是起用了 Google 的 BigTable, 这下子从性能、容错、缓存上都有更好表现。看人家这收购的,好钢用在了刀刃上。
出于冗余的考虑,每个视频文件放在一组迷你 Cluster 上,所谓 "迷你 Cluster" 就是一组具有相同内容的服务器。最火的视频放在 CDN 上,这样自己的服务器只需要承担一些"漏网"的随即访问即可。YouTube 使用简单、廉价、通用的硬件,这一点和 Google 风格倒是一致。至于维护手段,也都是常见的工具,如 rsync, SSH 等,只不过人家更手熟罢了。
数据库
YouTube 用 MySQL 存储元数据--用户信息、视频信息什么的。数据库服务器曾经一度遇到 SWAP 颠簸的问题,解决办法是删掉了 SWAP 分区! 管用。
最初的 DB 只有 10 块硬盘,RAID 10 ,后来追加了一组 RAID 1。够省的。这一波 Web 2.0 公司很少有用 Oracle 的(我知道的只有 Bebo,参见这里). 在扩展性方面,路线也是和其他站点类似,复制,分散 IO。最终的解决之道是"分区",这个不是数据库层面的表分区,而是业务层面的分区(在用户名字或者 ID 上做文章,应用程序控制查找机制)
YouTube 也用 Memcached.
很想了解一下国内 Web 2.0 网站的数据信息,有谁可以提供一点 ?
--EOF--
相关推荐
`youtube-search` 是一个这样的库,专为在Python中搜索YouTube视频而设计。这个库的版本是2.1.0,以`.tar.gz`格式打包,这是一种常见的Linux和Unix系统中的归档和压缩方式。 `youtube-search` 库的主要功能是通过...
youtube-dl-master.zip
资源来自pypi官网。 资源全名:youtube-search-python-1.4.6.tar.gz
【标题解析】:“youtube-duration-sort:按时长排序YouTube订阅视频-源码”表明这是一个与YouTube订阅视频相关的项目,它的核心功能是实现视频时长的排序。"源码"提示我们这里包含的是编程代码,可能是用JavaScript...
为什么自动安装可用的最新youtube-dl版本。 以有效的方式执行任何命令。 直观的界面。安装$ npm install youtube-dl-exec --save用法const youtubedl = require ( 'youtube-dl-exec' )youtubedl ( '...
youtube-dl-gui mkdir %userprofile%\youtube-dl-gui curl -L ...
`youtube-playlist-videos-scraper-1.1.4.tar.gz`是一个针对YouTube的Python库,专门用于抓取和处理YouTube播放列表中的视频信息。这个库的名字揭示了它的主要功能,即从YouTube上抓取播放列表中的视频数据,并进行...
Python库`youtube_search-0.1.4-py3-none-any.whl`是针对Python编程语言的一个特定模块,主要用于在YouTube上执行搜索操作。这个压缩包包含了一个名为`youtube_search-0.1.4-py3-none-any.whl`的文件,这是一个...
资源来自pypi官网。 资源全名:youtube-dl-plugin-1.6.zip
Laravel开发-youtube-laravel-api 它是youtube api v3的一个包装,它简化了Laravel方式的功能。
python库。 资源全名:youtube-video-play-pause-1.1.3.tar.gz
python库。 资源全名:youtube-video-viewer-1.1.2.tar.gz
资源来自pypi官网。 资源全名:youtube-unlimited-search-0.3.2.tar.gz
YouTube-Like-predictor, 使用机器学习的YouTube计数 YouTube类似计数预测器本文采用了 prediction.A 随机林模型的一种工具,用于大量 ~3,50,000 videos.Feature 工程。数据清理。数据选择和它的他技术。报告Report....
前端项目-youtube-google-analytics,这是一个即插即用的跟踪解决方案,用于跟踪用户在谷歌分析中与YouTube视频的交互。它将检测页面上是否按该顺序安装了GTM、通用分析或经典分析,并使用匹配的第一个语法,除非另有...
- **数据结构**:合理选择数据结构(如数组、列表或字典)以提高查找和操作效率。 - **批量操作**:减少频繁的脚本调用,通过批处理更新库存状态。 - **内存管理**:避免不必要的内存分配,如复用对象和池化技术...
【标题】"YouTube Dynamic AJAX - JSON Search API Demo" 涉及的是利用AJAX(Asynchronous JavaScript and XML)技术和YouTube的JSON(JavaScript Object Notation)搜索API来创建一个动态的视频搜索应用程序。...
您可以使用书签或Chrome扩展程序来启动下载。 用法 $ youtube-dl-server 安装 $ sudo apt-get install ffmpeg $ curl -L https://github.com/dz0ny/youtube-dl-server/raw/master/install.sh | bash 执照 (麻省...
名称:ChatGPT LINER 用于Web和YouTube的Cha ---------------------------------------- 版本:7.13.11 作者: http://getliner.com 分类:网页增强 ---------------------------------------- 概述:您可以在任何...
python库。 资源全名:YouTube_ff-0.0.1-py3-none-any.whl