# 第二人生架构-网格

> 原文： [http://highscalability.com/blog/2008/12/20/second-life-architecture-the-grid.html](http://highscalability.com/blog/2008/12/20/second-life-architecture-the-grid.html)

**更新：** [演示：第二人生的体系结构](http://www.infoq.com/news/2008/12/Second-Life-Ian-Wilkes)。 *系统工程副总裁 Ian Wilkes 介绍了流行游戏“第二人生”使用的体系结构。 Ian 介绍了该体系结构首次亮相的过程，以及随着用户和功能的增加，它如何发展了多年。*

[第二人生](http://secondlife.com/whatis/)是由其居民创建的 3D 虚拟世界。 虚拟世界有望在 Internet 上越来越流行，因此其架构可能会引起人们的兴趣。 尤其重要的是开放的虚拟世界或虚拟宇宙的外观。
*当视频游戏符合 Web 2.0 时会发生什么？ [metaverse](http://www.metaverseroadmap.org/overview/)* 发生了什么。

# 信息来源

*   [Second Life 运行 MySQL](http://conferences.oreillynet.com/presentations/mysql06/wilkes_ian.pdf)

*   [采访伊恩·威尔克斯](http://dev.mysql.com/tech-resources/interviews/ian-wilkes-linden-lab.html)

*   [技术趋势：林登实验室内部](http://www.springerlink.com/content/a087424077663u0p/)

*   [市政厅和 Cory Linden](http://blog.secondlife.com/2006/12/20/town-hall-with-cory-introductory-transcript/)

*   InformationWeek 文章（ [1](http://www.informationweek.com/news/software/hosted/showArticle.jhtml?articleID=197800179) ， [2](http://www.informationweek.com/news/software/open_source/showArticle.jhtml?articleID=198500108) ）和[博客](http://www.informationweek.com/blog/main/archives/2007/05/linden_lab_plan.html<br></a>)

*   [Second Life Wiki：服务器体系结构](http://wiki.secondlife.com/wiki/Server_architecture)

*   [维基百科：第二人生服务器](http://en.wikipedia.org/wiki/Second_Life#Server)

*   [第二人生博客](http://blog.secondlife.com/2007/08/24/more-open-source-our-web-services-libraries/)
*   [第二人生：虚拟世界指南](http://www.amazon.com/gp/product/0321501667?ie=UTF8&tag=innoblog-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0321501667) ![](img/d244572f6732cbaebb79e76ee4f24a68.png)

# 平台

*   的 MySQL

*   阿帕奇

*   乌贼

*   蟒蛇

*   C ++

*   单核细胞增多症

*   德比安

# 里面有什么？

### 统计资料

*   约 100 万活跃用户

*   每季度约 9500 万用户小时

*   约 70K 并发用户高峰（年增长率 40％）

*   约 12Gbit / sec 的总带宽（2007 年）

### 员工（2006 年）

*   70 FTE + 20 兼职

<cite>“大约有 22 位程序员在 SL 上工作。在任何时候，大概 1/3 的团队在基础架构上，1/3 的团队在新功能上，而 1/3 的团队在各种维护任务上（bug 修复 ，总体稳定性和速度方面的改进）或对现有功能的改进。但这差别很大。”</cite>

### 软件

**客户端/查看器**

*   [开源客户端](http://wiki.secondlife.com/wiki/Source_downloads)

*   渲染虚拟世界

*   处理用户交互

*   处理对象的位置

*   获取速度并执行简单的物理操作以跟踪移动的位置

*   无碰撞检测

**模拟器（Sim）**
《第二人生》中的每个地理区域（256x256 米区域）都在称为模拟器或“ sim”的服务器软件的单个实例上运行。 每个 SIM 卡都在服务器的单独核心上运行。
模拟器是主要在大多数服务器上运行的 SL C ++服务器进程。 当观众在整个世界中移动时，它会从一个模拟器转到另一个模拟器。

*   运行 [Havok 4](http://en.wikipedia.org/wiki/Havok_(software)) 物理引擎

*   以 45 帧/秒的速度运行。 如果无法跟上，它将尝试时间拨号而不降低帧速率。

*   处理存储对象状态，地块状态和地形高度图状态的句柄

*   跟踪所有事物的位置以及碰撞检测的位置

*   将内容的位置发送给查看者

*   在优先队列中传输图像数据

*   仅在需要时（仅当发生碰撞或方向，速度等发生其他变化时）才将更新发送给查看者

*   运行 [Linden 脚本语言](http://en.wikipedia.org/wiki/Linden_Scripting_Language)（LSL）脚本

*   脚本最近已升级到更快的 [Mono 脚本引擎](http://wiki.secondlife.com/wiki/Mono)

*   处理聊天和即时消息
    *   *   [Eventlet](http://wiki.secondlife.com/wiki/Eventlet) 是用 Python 编写的网络库。 它通过使用非阻塞 io 来实现高可伸缩性，同时通过使用协程使非阻塞 io 操作在源代码级别上表现为阻塞来保持较高的程序员可用性。

        *   [Mulib](http://wiki.secondlife.com/wiki/Mulib) 是建立在事件
        *   2000 台以上服务器上的 REST Web 服务框架

        *   大约有 6000 台服务器，在 2008 年初

        *   计划升级到〜10000（？）

        *   每台计算机 4 个 sims，适用于 4 级和 5 级

        *   使用全 AMD 已有多年，但已从 Opteron 270 迁移到 Intel Xeon 5148

        *   升级到“ 5 级”服务器使每台计算机的 RAM 从 2GB 翻了一番 到 4GB 并移动到更快的 SATA 磁盘

        *   1-4 类在 100Mb 上具有 1Gb 上行链路到核心。 第 5 类位于纯 1Gb 上
        *   一个大型集群文件系统〜100TB

        *   存储资产数据，例如纹理。

    **Asset Server**

    **MySQL database**

    **Backbone**

    ### 硬件

    *Do you have more details?*

谢谢 geekr，这很有趣。

您已经收集了很多不错的事实。 将此与大约 18 个月前的设置进行比较很有趣（请参阅 [http://blogs.computerworld.com/node/5122）。](http://blogs.computerworld.com/node/5122).)

此外，虽然并发访问者的 40％的年增长率令人鼓舞，但今年以来的峰值货币和其他指标实际上已经趋于平稳（请参见 [http://nwn.blogs.com/nwn/demographics/index.html）](http://nwn.blogs.com/nwn/demographics/index.html))

Ian Lamont
行业标准

托德，很高兴您发现这很有趣。 收集所有这些事实非常具有挑战性：)

我认为虚拟世界的可伸缩性与网站一样重要。

很棒的文章！ 很高兴读到一些与您的标准网站结构有所不同的内容，尤其是 MMO。 关于如何设置这些浮动的信息不多。

*《第二人生》中的每个地理区域（256x256 米区域）都在称为模拟器或“ sim”的服务器软件的单个实例上运行。 每个 SIM 卡都在服务器的单独核心上运行。*

这就解释了为什么热门地区陷入困境。 h！

SL 有点...停滞不前吗？

费耶

通过创新的业务模型方法，这本书 [http://www.amazon.com/gp/product/1418052671?ie=UTF8 &标签= innoblog-20 & linkCode = as2 & 营地= 1789 & creative = 9325 & creativeASIN = 1418052671“](<a rel=) >游戏开发要点：在线游戏开发![](img/802585d3c2e9857695089434f58ff522.png) http://www.assoc-amazon.com/e/ir?t= innoblog-20 & l = as2 & o = 1 & a = 1418052671“ width =” 1“ height =” 1“ border =” 0“ alt =”“ style =” border：none！important; margin：0px！重要;“ / >提供了诸如《第二人生》和《魔兽世界》等大型多人在线游戏（MMOG）取得长期成功所需的基本要素。 本书通过将 MMOG 开发作为一个复杂的，多方面的，面向服务的业务来处理，而不是仅仅专注于技术，艺术或设计技术，而与传统游戏开发书相比，具有重要意义和重大意义。 由此产生的多维关注点使读者可以设计游戏并在考虑整个业务的情况下组织其开发过程。 涵盖范围包括单人游戏和 MMOG 之间的主要区别，以及开发过程的各个组成部分（如业务模型，营销计划，游戏社区和技术约束）如何相互影响并确定 MMOG 的成功。