`
KC008
  • 浏览: 28722 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MMORPG 服务端架构随想

阅读更多

今天因为工作需要,要了解游戏服务器端架构设计,看到一篇文章,提到了 EVE Online 欧洲服务器刷新了单台服务器最高上线人数的世界纪录,支持 23178 个用户,它的服务器架构是 Windows OS + SQL Server, 使用高性能的 IOCP 网络 I/O模型为网络层,配合 SMP(Symmetric Multi-Processor)的高级并行计算的网络游戏服务器端逻辑实现,表现相当出色,相对于频频当机的 WOW Online 服务器而言,形成了鲜明的对比。

 

这里谈到两个我不熟悉的术语,我 google 了一下,算是明白它的解释。

IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。

它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销比较大,所以造成了效率的低下。而IOCP模型是事先开好了N个线程,存储在线程池中,让他们hold。然后将所有用户的请求都投递到一个完成端口上,然后N个工作线程逐一地从完成端口中取得用户消息并加以处理。这样就避免了为每个用户开一个线程。既减少了线程资源,又提高了线程的利用率。

 

SMP - 对称多处理机,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上

1、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。CPU通过彼此发送中断来完成它们之间的通信。通过给中断附加动作(actions),不同的CPU可以在某种程度上彼此进行控制。每个CPU有自己的APIC(成为那个CPU的本地APIC),并且还有一个I/O APIC来处理由I/O设备引起的中断,这个I/O APIC是安装在主板上的,但每个CPU上的APIC则不可或缺,否则将无法处理多CPU之间的中断协调。

2、相同的产品型号,同样类型的CPU核心。例如,虽然Athlon和Pentium III各自都内置有APIC单元,想要让它们一起建立SMP系统是不可能的,当然,即使是Celeron和Pentium III,那样的可能性也为0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能建立SMP系统--这是因为他们的运行指令不完全相同,APIC中断协调差异也很大。

3、完全相同的运行频率。如果要建立双Pentium III系统,必须两颗866MHz或者两颗1000MHz处理器,不可以用一颗866MHz,另一颗1000MHz来组建,否则系统将无法正常点亮。

4、尽可能保持相同的产品序列编号。即使是同样核心的相同频率处理器,由于生产批次不同也会造成不可思议的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机,因此,应该尽可能选择同一批生产的处理器来组建SMP系统。

 

 

 

 

 

SMP的优点是并行度很高,但是由于系统总线的带宽是有限的,故处理器的数目是受限的。

 

分享到:
评论

相关推荐

    mina mmorpg服务端源码

    《mina mmorpg服务端源码解析》 在游戏开发领域,尤其是大型多人在线角色扮演游戏(MMORPG)的设计与实现中,服务端源码扮演着至关重要的角色。"mina mmorpg服务端源码"是一个专注于游戏服务器端开发的项目,其核心...

    MMORPG服务器端架构和设计.ppt

    MMORPG服务器端架构和设计 后端设计

    arcemu源码(MMORPG网络服务端引擎)

    《arcemu:MMORPG网络服务端引擎的深度解析》 arcemu,作为一个全球网络技术研究者们共同构建的MMORPG(大型多人在线角色扮演游戏)网络服务端引擎,它揭示了网络游戏背后的技术奥秘,为游戏开发者和研究者提供了...

    某MMORPG手机网络游戏的服务端源码

    通过对这些源码的研究,开发者不仅可以深化对MMORPG服务端设计的理解,还能学习到如何构建高性能、高并发的游戏服务器,这对于提升个人技能或团队开发能力具有极大的帮助。在实际应用中,还可以结合其他技术,如...

    MMORPG架构.docx

    ### MMORPG服务器架构知识点详解 #### 一、MMORPG服务器架构概述 MMORPG(大型多人在线角色扮演游戏)因其复杂的多人交互特性,在服务器架构设计上有着极高的要求。随着技术的发展,MMORPG服务器架构经历了从单一...

    云风的大世界架构,介绍基础的大型网游的服务端架构。

    ### 云风的大世界架构——基础的大型网络游戏服务端架构 #### 一、概述 “云风的大世界架构”是一篇由网易开发经理云风撰写的关于大型网络游戏服务端架构的文章。该文章深入介绍了如何构建一个高效、稳定且可扩展...

    MMORPG服务器端架构和设计

    在构建大型多人在线角色扮演游戏(MMORPG)服务器端架构时,设计和开发的目标是至关重要的。首先,高稳定性是核心需求,确保服务器能够长时间无故障运行,以满足玩家不间断的游戏体验。高适应性意味着服务器需要应对...

    eROSE.rar_knight online_mmorpg_服务端模拟器

    经典MMORPG的R.O.S.E服务端模拟器,但SVN,可更新源码。

    Unity3D开发的MMORPG游戏服务器和客户端源码

    Unity3D开发的MMORPG游戏服务器和客户端 Unity3D开发的MMORPG游戏服务器和客户端源码,服务端是用PhotonServer开发,全部解压后900多mb。 所以请不要商用,仅限学习使用

    【游戏开发】MMORPG服务器架构.doc

    【游戏开发】MMORPG服务器架构是一个复杂而关键的领域,涉及到多个服务器组件协同工作,以支持数以万计的玩家在同一游戏世界中流畅互动。以下是对这一主题的详细阐述: 1. **登录分配服务器**:作为游戏区的入口点...

    C# .net core开发的分布式游戏服务端

    在现代的游戏开发中,服务端架构的选择至关重要,它直接影响到游戏的稳定性和可扩展性。本文将深入探讨使用C# .NET Core技术栈构建的分布式游戏服务端,揭示其背后的原理、优势以及实现方法。 一、C# .NET Core的...

    热血江湖12.0服务端

    1. **服务端架构**:热血江湖12.0服务端可能采用了分布式架构,通过多个服务器节点协同工作,提高游戏的稳定性和并发处理能力。这涉及到负载均衡、数据库集群等技术,确保玩家在游戏中不会因服务器压力过大而出现...

    传奇服务端代码 delphi

    3. 扩展性设计:服务端架构应具备良好的可扩展性,以适应游戏更新、增加新功能的需求。 总结,传奇服务端代码是Delphi编程技术在网络游戏领域的应用实例,展示了其在处理复杂逻辑、高并发场景下的强大实力。通过对...

    MMORPG数值策划的设计架构.pdf

    ### MMORPG数值策划的设计架构 #### 数据模型建立与优化的重要性 在MMORPG(大型多人在线角色扮演游戏)的设计过程中,数值策划扮演着至关重要的角色。它不仅关乎游戏的平衡性,更是直接影响玩家的游戏体验。数值...

    blitzbasic游戏引擎编写的MMORPG网游服务端和客户端源码

    使用blitzplus开发,是blitzbasic游戏开发引擎2d版开发的服务端和客户源码。blitzplus开发引擎已经源码开源,大家不用担心版权问题。 其中,服务器端已经实现地图的读取、发送、客户端IP限制、聊天消息等。 客户端...

    蜀门v207版商业服务端

    5. **服务端架构**: 蜀门v207版商业服务端可能采用了分布式架构,将游戏逻辑、数据库、网络通信等功能分散到不同的服务器上,以提高系统的稳定性和可扩展性。 6. **安全性与反作弊**: 商业服务端需要考虑游戏的...

    代码 kbengine unity3d实现的mmorpg游戏(服务端全部代码 客户端全部代码)

    代码 kbengine unity3d实现的mmorpg游戏(服务端全部代码 客户端全部代码)代码 kbengine unity3d实现的mmorpg游戏(服务端全部代码 客户端全部代码)代码 kbengine unity3d实现的mmorpg游戏(服务端全部代码 客户端全部...

    热血江湖2.0服务端,亲测可用

    本文将详细探讨《热血江湖2.0服务端》的相关知识点,包括服务端的架构、主要组件及其功能,以及数据库在其中的作用。 首先,服务端是网络游戏的核心部分,负责处理玩家的请求,维护游戏世界的逻辑和状态。在《热血...

    热血江湖12.0服务端_热血江湖V12服务端_热血江湖_hurry4k1_

    《热血江湖》是一款深受玩家喜爱的大型多人在线角色扮演游戏(MMORPG),其V12版本的服务端是游戏运行的核心部分。这个服务端包含了游戏服务器所需的所有软件组件,包括但不限于数据库管理系统、游戏逻辑处理引擎、...

Global site tag (gtag.js) - Google Analytics