光子引擎中文网站使用条款 

欢迎使用光子引擎中文网站(“以下简称网站”)。除其他事项外,本网站旨在(a)向您提供有关光子及其产品和服务的信息,(b)提供内部或外部连接允许访问许可下载,相关资料,介绍和其他内容,(c)为您提供直接与我们联系的机会和方式。

我们希望您能享受访问我们网站的体验,但是我们也希望您了解访问网站时所同意的条款。本文中对“我们”或“VL”或“动联无限”的引用是指成都动联无限无限科技有限公司以及我们认为适当的我们的关联公司,子公司,服务提供商和指定人员。如果您或您的组织根据单独的协议(例如,光子系列软件或服务的许可协议等)获得相关的产品或服务,则您对此类产品和服务的使用将受该其他协议而非本网站条款的约束。本网站使用条款仅适用于您对网站的访问和使用,以及对于我们所列出,或提供的各类软件,资料,内部或外部链接,许可或服务(以下简称“相关服务”)的测试,试用或使用(以下简称“使用”)。通过任何网络方式,访问,或使用我们相关服务的任何个人,法人,机构或者团体,以下简称为“用户”或/及“访问者”。

1.0 遵守条款和资格

访问本网站或使用本网站相关服务,即表示您同意本网站的使用条款以及本网站上的所列出的相关产品或服务的其他法律声明,条款和政策(以下统称为“条款”)。

您同意仅按照条款使用本网站及我们列出或提供链接的相关服务。如果您不同意本条款,请不要使用本网站或其任何功能,及所涉及的任何内部及外部资料,或者我们所提供或列出的任何免费,付费,包括但不限于有其他任何条件下所提供的任何软件,许可,服务或资料(以下简称“服务”)。

2.0 修正

我们可以随时修改或终止任何条款,并且这些修改将于我们在网站上发布修订后的条款时生效。每次您使用本网站时,都应访问并阅读本网站的现行条款。在我们发布修订后的条款后,您继续使用本网站即表示您接受此类修订后的条款。如果您对本网站,其内容或任何条款(包括经修改的内容)不满意,则表示您同意唯一的专属的补救办法是停止使用本网站。本条款是您与我们之间就您使用本网站及我们所提供的相关软件,许可和服务所达成的全部协议;同意和遵守本条款其是您下载和使用我们所列或所提供的相关产品和服务的前提和必要条件。

3.0 有效期

本条款(我们可能会不时修改)在您使用本网站或相关服务期间将保持全部效力。您可以出于任何原因随时通过与我们联系并通知我们您希望终止注册的方式终止使用相关服务。我们可以随时以任何理由或没有理由终止您的相关服务,无论有无事先通知或解释,并且不承担任何责任。即使在相关服务使用终止后,本条款仍然有效,并且您将受其约束,但您作为相关服务使用者的权利将终止。

4.0 专有权

我们对您在本网站上发布的文本,文件,图像或任何其他材料(统称“内容”)(如果适用)不主张任何所有权。将您的内容发布到网站后,您将继续保留您在内容中可能拥有的任何此类权利,但须遵守此处的许可。

通过在网站上显示,发布或上载内容,或以其他方式向我们提交内容(统称为“发布”),您特此授予我们及其附属公司不可撤销的,永久的,全球性的,免版税的非专有许可,以出于任何原因并在网站上或通过网站使用,修改,删除,添加,创建,公开执行,公开展示,复制和分发(并通过多级被许可方再许可前述权利)此类内容的衍生作品通过广告和促销网站(包括通过截屏和博客)和/或我们产品的任何媒体格式和通过现在现有或将来开发的任何媒体渠道进行宣传。我们可能会不时地永久或暂时地从网站上删除内容,但前提是即使我们确实从网站上删除了该内容,我们也没有义务停止上述内容的其他使用。 我们也可能出于任何或没有理由(包括但不限于)而拒绝,拒绝发布或删除任何内容。

您声明并保证:(i)您拥有您在网站上或通过网站发布的内容,或有权授予上述许可,并且(ii)您在网站上或通过网站发布的内容不具有侵犯任何个人或实体的隐私权,公开权,合同权,知识产权或任何其他权利。您同意对由于您发布的任何内容而欠任何个人或实体的任何和所有特许权使用费,费用以及任何其他款项承担全部责任。

本网站可能包含我们提供的内容(包括我们发布或显示的而非由访问者发布或显示的第三方内容),包括但不限于文本,图像和徽标。我们内容受版权,商标,专利,商业秘密和其他法律的保护,并且在您与我们之间,我们拥有并保留我们相关内容以及本网站功能的所有权利。特此声明,我们授予您有限的,可撤销的,不可再许可的许可,用于复制和显示我们的相关内容(不包括任何软件代码),仅供您个人查看网站时使用。除非本条款中有规定,否则您不得复制,修改,翻译,发布,广播,传输,分发,执行,显示,转让,租赁,分许可,营销或出售本网站或其功能,或出现在网站上的任何内容的任何部分。

5.0免责声明

我们对本网站上的任何内容概不负责,也不作任何明示或暗示的保证,包括但不限于我们内容,访问者提交内容或通过以下方式发布的其他内容的准确性和可靠性:网站,无论是由我们,访问者或与网站相关,或由其使用的任何设备或程序造成的,还是由于其他原因产生的。访问者的内容不一定反映我们的观点或政策。在本网站上包含任何链接的网站并不意味着我们会批准或认可该链接的网站。访问这些第三方站点时,后果自负。 我们对在本网站上或通过本网站发布的第三方广告或第三方应用程序不承担任何责任,也不对其提供的商品或服务承担任何责任。 我们对网站的任何访问者的行为(在线或离线)概不负责,包括但不限于任何访问者发布的任何内容。我们对任何错误,遗漏,中断,删除,缺陷,操作或传输延迟,通信线路故障,盗窃或破坏或未授权访问或更改任何访问者通信皆概不负责。对于任何网络或线路,计算机在线系统,服务器或提供商,设备,软件,其由于技术问题或互联网或任何网络上的流量拥堵,线路波动而导致的任何软件或者硬件故障,我们概不负责,包括访问网站的部分内容或其组合,包括与参与或下载与网站相关的材料有关的内容,或导致的对访问者或任何人的包括计算机在内的任何设备的任何伤害或损害。在任何情况下,我们对因使用本网站,参加我们活动,由于在网站上或通过本网站发布的任何访问者内容而引起的任何损失或损害,包括人身伤害或死亡,概不负责,包括任何访问者,无论在线还是离线。此外,我们对任何病毒或我们无法控制的任何内容概不负责。我们不对您使用本网站对您软件,调制解调器,包括计算机在内的任何设备,电话或其他财产造成的任何损害负责。如果您无法通过本网站访问内容或其他材料,我们将对您不承担任何责任。

我们的网站和网站所列或所提供的相关服务按“现状”提供,因此,我们不包含其他保证,包括但不限于对特定目的的适用性,不侵权,准确性,或其他任何特质描述,所有权和娱乐性的保证。我们无法保证,也不保证因使用本网站和网站所列或所提供的相关服务而产生任何特定结果。

6.0我们的责任范围

在任何情况下,我们对您造成的任何损害,索赔或损失概不负责,包括但不限于补偿性,偶发性,直接,间接,特殊,后果性或特殊性损害,对我们已被告知或已知的任何不当性,是否知道这种损坏的可能性。此限制适用于所有诉讼原因,包括但不限于违反合同,违反保修,诽谤,疏忽大意,责任,错误陈述,其他侵权行为以及第三方索赔。如果本使用协议中规定的担保排除或责任限制是由于任何无法实行或不适用的原因引起的,则您同意我们的总赔偿责任不得超过五百圆人民币。

7.0赔偿

您同意赔偿并使我们、其子公司和关联公司及其各自的高级职员、代理人、合作伙伴和雇员免受任何损失、责任、成本、费用、索赔或要求(包括但不限于合理的律师费),这些损失、责任、成本、费用、索赔或要求是由于您违反使用条款使用网站和/或使用我们所列或所提供的相关服务的违反条款和/或违反条款中规定的您的陈述和保证和/或您张贴的任何内容而引起的。

8.0 数据保护 

我们通过使用业界公认的安全保障措施(如防火墙)和精心制定的安全程序来保护您的个人信息的保密性和安全性,以防止您的信息丢失、滥用或未经授权的更改。

我们要求我们的员工保护您的信息,并使用物理、电子和程序保障措施,我们限制员工仅出于业务目的访问个人信息。

9.0 您个人信息的使用。

当我们要求您提供个人信息时,我们会告诉您或明确告诉您,我们需要什么来满足您的要求,以及我们将如何使用这些个人信息。我们不会将您的个人信息出售或出租给任何人。我们不会将您的个人信息与第三方分享,供其宣传使用。

9.1 与第三方共享个人信息。

有时,我们会与第三方签订合同,以便他们能够以其品牌标签提供我们的服务。在这样的合同中,我们有时会向对方公司提供最低限度的必要信息,以便他们能够就所提供的服务开出账单。合同禁止他们将您的任何个人信息用于他们自己的目的,并要求他们对我们提供给他们的信息进行保密。在有限的情况下,当我们真诚地相信根据适用法律需要披露个人信息时,我们可能会披露或报告这些信息。例如,我们可能被要求披露个人信息,以与监管机构或执法机关合作,遵守法律程序,如法院命令、传票、搜查令或执法要求。

9.2    客户资料

访问者向VL授予非排他性、不可转让、不得再授权且买断之有限授权,以储存和使用经授权产品处理过之客户或其终端用户资料,包括任何数据、资讯、影像、文字、媒体和内容(以下称“客户资料”),仅供(a)在法律上且必要时履行VL之义务,并行使其根据本协议之权利,或(b)回应访问者使用授权产品时之服务或技术问题,访问者应对访问者或其终端用户提供之内容和所有资料负责。提供访问者资料时,访问者及其终端用户均不会上传以下任一类型资料,且VL对此类资料不承担任何责任:(a)受相关隐私或安全法规保护之资讯,根据为包括并不限于中华人民共和国个人信息保护法,中华人民共和国数据安全法,以及(b)可识别个人身份之资讯,包括(i)驾驶执照号码,(ii)护照/身份证号码或(iii)社会保险、税号或类似资料。访问者及其所有终端用户将根据适用法律,并以不违反或侵犯任何第三方任何权利之方式使用授权服务。当第三方提起诉讼(包括但不限于任何政府调查、投诉和诉讼),且内容与访问者资料(包括但不限于侵犯或盗用任何第三方智慧财产或违反适用法律)有关时,访问者将自行承担赔偿、辩护,并使VL/或其附随组织、主管、董事、员工、顾问和/或代理商免责。访问者将支付在明确可归因于此索赔诉讼中最终判决VL应支付之诉讼费和损失赔偿金,或因合同金钱和解而需支付之诉讼费和损失赔偿金。

10 营销政策

在任何时候,您都可以让我们知道您是否希望收到我们关于产品或服务的宣传材料。我们只想为您提供您想要的信息。如果您不希望收到此类材料,您可以在收集信息的过程中指定您的偏好,或通过网站表单向我们发送信息。

11.0 我们使用的网络技术

我们可能在网站上使用各种技术。其中包括cookies;当您访问我们的网站时,我们的网站可能会向您的浏览器提供一条信息。Cookies使我们能够跟踪网站的整体使用情况,并确定访问者喜欢的区域。Cookies还使我们能够在您再次访问我们的网站时识别您的身份,从而使您更容易访问我们的网站,并帮助为您提供个性化的体验。您可以通过您的浏览器设置在我们的网站上自由选择拒绝cookies,这不会限制您访问本网站的能力。大多数浏览器默认接受并保留cookies。请查看您所使用的浏览器的 “帮助 “菜单,了解如何更改您的cookie偏好。

我们或者我们所使用的工具可能会还分析我们网站上的活动。我们收集的信息包括IP地址、浏览器类型和版本以及您浏览的网页。我们也可能会跟踪您如何进入我们的网站,以及您在离开我们网站时点击的任何链接。一旦您离开我们的网站,我们不会再分析您的信息。我们使用您的网站活动可能会协助我们为您提供个性化的网络体验,协助我们了解您关注的服务并,为您量身定制我们的产品。

性能测试(也称为负载测试)是一种有用且强烈推荐的方式,用于验证服务器端的实现,和硬件是否可以实际处理预期的负载(在线人数)。

您的期望是什么?

我们经常被问到一个简单的问题就是:一个光子服务器可以处理多少个并发用户(CCU)?

但是如果要认真考虑这个问题,那么这个答案并不是那么简单。因为它取决于多个因素,例如:

  • 每个房间的人数
  • 传递消息率(每间房间和每秒的消息量合计)
  • 通讯量的大小
  • 协议类型(可靠Reliable/不可靠Unreliable)
  • 客户的平台
  • 采用服务器硬件规格
  • 等等
在一个典型的案例中,我们假设需要处理的量为:约200消息量/房间/秒。

在如下的标准配置中:

  •  四核CPU(例如Intel Xeon E3-1270 v3、3.5GHz)
  •  8 GB RAM
  •  1 GBps NIC /上行链路端口速度
在标准配置中,每个配置Photon的服务器可以处理2000-3000 CCU

通常情况下,瓶颈不是CPU运算能力,而是NIC/带宽大小。 因为流量通常比高配置的CPU更贵,因此可能使用较低配置的服务器通常效率更高。

而且一般而言,实体物理服务器比VM(虚拟云服务器)提供更好的结果。

但是,上面的数字只是对预期结果的粗略估计。 您需要使用自己的代码库进行一些调整并运行负载测试,以获得适合您自己的项目的可靠数字。

确定测试方案

在运行负载测试之前,请预估您的项目运行环境并进行预先计算。

  • 您希望服务器是什么硬件规格?
  • 您希望自己的游戏有多少CCU(同时连接数)?
  • 您是哪种类型的游戏,配对会如何进行?您是否具有用于不同功能的不同服务器?
  • 您是使用Photon Server SDK中未经修改的代码,还是拥有自定义代码? 如果有自定义部分,主要修改是什么?
  • 每间客房有多少位用户?
  • 有多少条消息要被传递?
    •  示例:4个用户/房间,每100ms调用RaiseEvent() 
      •  传入:4 * 10 msg / s = 40 msg / s
      •  传出:4 * 40 msg / s = 160 msg / s
      •  总计:200消息/房间/秒
  • 平均消息大小是多少?
    •  例:
      •  200消息/房间/秒 * 200byte=〜40kByte/秒/房间
      •  预期:1000 CCU / 250个房间=>〜10 Mbyte / s 总计

使用上面示例中的计算,您的项目已经接近100 MBit / s上行链路端口速度的上限。

我们几个客户端库具有内置的“网络流量统计信息”(Network Traffic Stats),可以帮助您回答这些问题。

建立一个测试客户端

光子是专门为处理大量的连接和流量进行优化的, 但是,客户端SDK和库并不是设计来用于进行负载测试的。一般案例中也无法以与Photon相同的方式对客户端进行优化。

不建议的设置:实际的游戏客户端和服务器通过“某些网络”进行连接

在大多数情况下,要准备要运行负载测试时,一般您的“游戏客户端”已完成。 因此,您可能会认为,将真实的游戏客户端用于负载测试是更加简单的做法。 但是,如果您尝试使用PhotonSDK的“负载测试客户端load test client”,则这些客户端将成为瓶颈,您将获得不准确且令人误解的结果。

建立一个好的测试客户端,是负载测试的真正挑战。

我们建议采用以下方法:

  •  记下游戏客户端需要发送的典型操作/事件的顺序。
  •  构建一个简单的Photon Server(!)应用程序,模拟游戏客户端的行为。
  •  使用Photon的服务器到服务器(Server to Server)功能在“S2S负载测试应用程序”和“服务器端” 的两个Photon应用之间建立连接。
推荐:Photon Server应用程序使用(S2S)连接进行测试负载平衡之Photon主机

配置光子

Photon / PhotonServer.config

  • 使用默认配置,请勿进行任何更改。
  •  默认配置针对各种用例进行了优化。 任何更改都可能产生不可预见的影响,并且将使理解和分析测试结果变得更加困难。

记录/ log4net.config:

  •  确保在所有log4net.config文件中使用“ INFO”日志级别。
  •  在“ DEBUG”级别上过多的日志记录会对性能产生巨大影响,因此需要避免使用!
  •  在此处了解有关日志的更多信息:https://logging.apache.org/log4net/release/config-examples.html

运行测试

  • 将您的Photon S2S负载测试客户端托管在单独的物理计算机上。
  •  根据经验,每个光子的“服务器端”至少需要两台“ S2S负载测试机”才能平均分配负载。

在运行测试之前,请确保在服务器端和客户端计算机上安装性能计数器(Performance Counters)并创建性能计数器日志:

  1.  如果光子正在运行,请停止它
  2.  从Photon Control->性能计数器(Performance Counters)->安装计数器(Install Counters),创建日志集(Logging Set)
  3.  从命令行启动“ perfmon”。 在“data collector sets”->“User Defined”下:在“右”窗格中选择photonperflog>“Properties”->将采样间隔设置为1秒(如果采用默认的间隔1分钟,则没有足够的数据)
  4.  启动光子
  5.  Photon Control -> Performance Counters -> Start Logging
  6.  运行负载测试(load test)
  7.  Photon Control -> Performance Counters -> Stop Logging
  8.  从c\perflogs\admin获取性能日志
  9.  从\deploy\bin_win64\log和\deploy\log获取日志文件

如果从Photon Control创建计数器日志失败,请从\deploy\bin_tools\perfmon运行以下命令:

logman.exe create counter photonperflog -si 00:01 -v mmddhhmm -cf logman.config.txt

分析性能并确定瓶颈

要分析负载,请在perfmon中加载性能计数器日志(performance counter log)。

在Photon Server SDK的“ doc”文件夹中,有一个“ photon-perfcounter.pdf”文件,其中列出了所有计数器并对其进行了简要说明。

  1.  估计“总体”负载:对于首次估计,请查看“明显Obvious”计数器,例如:CPU load, number of Peers / Connections Active, memory usage per process, disconnects, network traffic (Bytes in / out / total) 等。 这些计数器可以使您了解服务器是否按您之前预期方式处理负载,或者是否存在需要进一步调查的瓶颈。
  2.  传出流量(客户端忙吗?): 如上所述,客户端通常是瓶颈。 请检查“传出”流量是怎样被处理的,例如“重新发送的命令每秒”的数量(如果客户端不发送ACKs,则Photon重新发送该命令),“已排队的可靠命令(Queued Reliable Commands)”的数量(已发送的命令的数量,尚未确认)等等。 如果这些值很高,则很可能您存在客户端的问题。 无论如何,您都应该仔细检查并确认这些计数器,如果您发现了客户端的瓶颈,请解决它并重新运行测试。
  3.  传入流量(服务器忙吗?): 通过比较当前正在“处理”多少个“Active” I/O,业务和ENet线程(Business and ENet Threads),以及ENet队列中是否有消息等项目,来检查服务器是否繁忙。 这些计数器通常与CPU /内存使用的计数器相关。

error: 转摘请联络我们~