在西雅图扩展性的技术研讨会上,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 站点不多,豆瓣用的比较舒服。byFenng)
视频
视频的缩略图(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 网站的数据信息,有谁可以提供一点 ?
相关推荐
在本压缩包中,我们能够了解到包括Facebook、YouTube、淘宝和豆瓣等知名互联网公司的网站架构设计。这些公司的架构设计都是业界的典范,具有很强的学习和参考价值。 1. Facebook的网站架构: Facebook作为全球最大...
2. **YouTube架构** (youku_arch_qcon2009_beijing.pdf): - YouTube的架构着重于视频上传、存储、编码、分发和播放的技术挑战。 - 使用CDN(Content Delivery Network)优化视频流媒体的性能。 - 分布式数据库和...
#### YouTube的架构扩展 - 采用了分布式文件系统、内容分发网络(CDN)、负载均衡等技术,确保了视频的快速上传和流畅播放。 #### eBay的数据库分布扩展架构 - 实现了数据库的水平扩展,通过分片、复制等手段,...
很早之前开始收集整理的网站架构及高性能并发服务器设计的一些好的案例及实际优化经验。... 资料收集:高并发 高性能 高扩展性 Web 2.0 站点架构设计及优化策略 243 CommunityServer性能问题浅析 250
YouTube的架构扩展同样引人关注。YouTube的数据流量巨大,每天的视频观看相当于发送7500亿封电子邮件。为了应对这种规模,YouTube大量使用Python进行开发,Web服务器部分采用Apache搭配FastCGI,以及Lighttpd来处理...
- **可扩展性**:谷歌始终追求的是能够随着业务增长而不断扩展的基础架构。 - **高性能**:为了支持庞大的用户基数和复杂的服务,谷歌的基础架构必须具备极高的性能。 - **成本效益**:在设计系统时考虑成本与效益的...
- **案例一**:YouTube的架构扩展 - **策略**: - 数据库分片。 - 使用NoSQL数据库存储非结构化数据。 - CDN服务。 - **案例二**:eBay的数据量及架构 - **策略**: - 分布式数据库。 - 数据库读写分离。 - ...
YouTube 的架构扩展 55 了解一下 Technorati 的后台数据库架构 57 Myspace架构历程 58 eBay 的数据量 64 eBay 的应用服务器规模 67 eBay 的数据库分布扩展架构 68 从LiveJournal后台发展...
- **YouTube的架构扩展**: - 视频存储与分发: 采用了高效的数据存储方案以及内容分发网络。 - 数据库管理: 采用了分布式数据库技术和数据分片策略。 - **eBay的架构优化**: - 数据量处理: eBay通过分区和分片技术...
Vitess是一个由YouTube开源的基于MySQL的数据库集群管理平台,专为水平扩展而设计,旨在支持大规模在线服务。这个项目使用Go语言进行开发,提供了一整套解决方案,包括分片、读写分离、自动故障恢复和高效的查询路由...
在标签“软件/插件”中,我们可以推断出这个项目可能涉及到一个可安装的软件或浏览器插件,它可以被用户下载和使用,或者它可能是为其他应用程序提供扩展功能的一个组件。 “learning”这个压缩包子文件的文件名称...
横向扩展服务器架构 认证服务器 用户登录发出的令牌存储在Redis中。 所有需要身份验证信息的服务器都可以查找Redis,而不是多个身份验证服务器。 聊天服务器 每个聊天服务器都有一个消息队列(R
其中,谷歌、亚马逊、微软等大公司,以及VMware、Salesforce、Facebook、YouTube、MySpace等企业,都对云计算架构设计做出了重要贡献,并推动了相关技术的进步。例如,《Cloud Computing Design Patterns》一书就...
总的来说,分布式数据库的出现是为了应对大数据时代的挑战,TiDB作为其中的代表,通过创新的架构设计和特性,实现了高性能、高可用和灵活扩展,能够满足现代企业对数据处理和分析的需求。随着技术的不断发展,我们...
例如,针对大数据处理的可扩展和高可用性架构,包括了SAP HANA方案,它支持从2TB到16TB的无缝扩展。这个方案涉及到了不同规模和配置的服务器,包括了从32-128用户到200用户的多种选择,满足了不同规模企业的需要。...
1. **基础架构** - **脚本组件**:Unity中,库存系统通常由一系列C#脚本组成,如Inventory.cs、Item.cs和Slot.cs等,它们分别负责库存的整体管理、物品定义和物品槽位行为。 - **界面UI**:库存界面的实现依赖于...