游戏运维,可能是目前最详细的游戏运维指南

IT行业运维职业详细介绍 运维分类一、初入运维领域的头衔:运维实习生系统管理员网络管理员二、使用频率最高的运维头衔:运维工程师IT运维工程师Linux运维工程师: 三、侧重某项技能或行业的运维头衔:系统运维工程师数据库运维工程师网络运维工程师安全运维工程师桌面运维工程师软件运维工程师业务运维工程师CDN运维工程师IDC运维工程师存储运维工程师硬件运维工程师游戏运维工程师运维平台开发工程师与业务强相关的岗位,如:直播运维工程师、中间件运维工程师应用运维工程师四、新兴的运维头衔:自动化运维软件开发工程师DevOps运维开发工程师五、资深 阅读详情

编者按:

从端游到页游再到手游,15年来中国网游在世界上都有着举足轻重的地位。但是再好的游戏如果出现连接、延迟等问题时也会造成巨大损失,这时游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启超来向我们讲述,进入游戏领域10余年来的风风雨雨。

有服务器的地方就有运维

如今我们说到游戏,可能想到的是火爆异常的VR,办公室里一言不合带上眼镜就地开打;亦或是刚刚虐了李世石的AlphaGo,扬言要挑战《星际争霸2》“教主”Flash。然而,除去这些还有一个游戏行业不可避免的潮流正在发生,那便是网游化。

前不久育碧旗下大作《全境封锁》上线时闹出个小笑话:由于很多国内玩家下载之前没注意是网游,下意识的以为育碧的游戏肯定是单机,好不容易下完之后才发现玩不上,进而发生了不少的骚动。这不是第一个发生这种情况的传统游戏厂商,肯定也不是最后一个,很多有名的游戏公司都在做类似的尝试,Popcap的《植物大战僵尸:花园战争》系列,暴雪的《暗黑3》等,甚至那些还有单机成分的大作也早就开始网络化:大名鼎鼎的《GTA5》、FPS风向标《使命召唤》系列和《战地》系列,网络联机部分的比重也在一年一年的增加。

网络联机,意味着玩家需要登录官方服务器,“有人的地方就有江湖”,这句话说的不仅是网游里的恩怨情仇,还包括游戏外的种种:“有服务器的地方就有运维。”这便是今天我们要说的话题——游戏运维。

游戏运维编年史

1、石器时代:端游

想要了解如今的游戏运维,不得不从早期的端游运维开始说起。对于08年入行端游,11年经历过页游最后14年全面接触手游的吴启超来说,这几年的游戏运维经历让他深切感受到运维思路的巨大转变。

1.1  端游的运维工种:IDC运维、系统型运维、网络运维、业务型运维、运维值班等。各个工种分工各有侧重。

IDC运维:装机、换配件、扛着2U的服务器全国各个机房来回跑。

系统运维:安装各种软件,调试各种不兼容的软件,在各种版本的Linux、Windows上。

网络运维:二层交换、三层交换、四层交换,还要区分华为、思科。

业务运维:24点维护,零晨2点维护,零晨5点维护,早上7点维护……

运维值班:0点盯着屏幕打电话,1点盯着屏幕打电话,2点盯着屏幕打电话……

运维开发:写着各种的逻辑,因为业务、网络环境、BUG、刚刚帮忙扛完服务器。

1.2  端游运维业务范围:在端游时代,大部分游戏公司都是自主做各种业务环境,做各种游戏业务需要的各种环境。

资产管理:服务器、交换机、各种服务分布位置,端口等。

下载服务器:搭建BT集群,做种子、分发,供玩家下载游戏客户端使用。

静态缓存服务器:squid + apache|nginx  

邮件服务器:postfix +sasl +ssl 收发服务、反垃圾邮件服务。

网络质量监控:somkingping各个机房的交换,各个安放点服务器。

配置管理:nginx 、apache、lighttpd、MySQL。

批量管理:ssh公钥/私钥 。

监控管理:nagios、catcai 然后是c|perl|python|shell +rrdtool各种业务监控图。

1.3  端游游戏服务器架构:一般来讲都是以一组服务器集群为一个区服单位,单机上的进程提供不同的服务。

 传统运维,任务道远,正因为有过去那些年的翻译文档,兼顾整合方案,以及大批分享技术的前辈、社区,踩着前辈一步一个坑的走过来,才能有今天的运维的局面。

2、青铜时代:页游

在2011-2013年左右的页游运维,游戏市场处于探索期,其实运维也处于探索期。端游时代每个新服都要经历上架、装系统,装服务的过程,一般一到两周可以上线一个区服,对于端游高粘性低流动的特性来说可能还好,但是当页游出现时,转变给运维带来的冲击无法估量。页游时代1天开100多个新服的概念,是传统端游运维所不能理解的。当时的运维认为页游就是把所有服务器实现自动部署服务,同时搭配运维自动部服工具就可以了。但事实上如果在开服时一组一组的使用物理服务器,开服速度根本跟不上,资源浪费还非常巨大,两周后用户留存率仅剩5%-7%。成本巨大亏空,急需技术转型,这个时间点上出现了两种概念影响了以后的手游以及云的发展。

1. 虚拟化技术

在2010年11月份左右, kvm出现在REHL6中,去掉了RHEL 5.X系列中集成的Xen。正是这一次虚拟化技术的转型,而且当时市场的需要,在2011年-2012年掀起了一场私有云建设的风潮。在实践过程中,优点很多,但暴露的缺点也不少。在端游占主要市场的情况下,实践过程中表现出来的不适尤其明显。

a.虚拟机时钟不准

b.虚拟机网卡,超负荷down、丢包

c.多虚拟机间争抢cpu、内存

d.多虚拟机间的安全访问,虚拟机与物理机间的安全管控

e.对于关系型数据库磁盘读写慢问题突出。

f.等等

以上几点随着时间的推移有的已经然后解决,有的换上了代替方案。时至今日,端游在单纯的虚拟云上部署仍是问题,但是随着物理、虚掩混合云出现,这个局面应该可以被打破。

2. 社交化的页游

社区化的页游戏,为什么这样说呢,因为当时更多的页游信托社区入口,导入用户流量,当时最火的应该是人人网(校内网)的农场偷菜。然后是DZ论坛一堆农场插件袭卷全国,当然这一切都是为了增加用户粘稠度。但是也影响了页游技术的选型,当时基本上大家不约而的选用了于社区相同的LAMP的技术,从而降低开发成本及接入成本。当然现使用JAVA SSH2架构的页游也有。除技术选型外,同时还带入了另一个概念:联运。联运这个概念在页游时代对于端游运维就像一个恶梦,不同区服要随时跨服站,不同区服要随时可以合区,所有数据不再是以物理服务器为单位,而是要逐条打标签,再也看不到账号,只能拿着一串长长的KEY,四处兑换,然后拿着不知道所谓的表标问第三方…….

在这个时期,是运维开发的爆发年,随着虚拟化技术的推广,越来的越多的运维开始接触自动化运维的概念,开始了自动化运维的奋斗之路,开始了以项目管理的角度看待运维脚本开发。

3、黄金时代:手游

随着私有云转为公有云、云时代推动着云计算以及移动互联网的发展,网游行业慢慢进入了手游黄金时代,云时代的变革不仅挑战了整个游戏行业,也挑战了游戏运维。

3.1  手游的运维工种:系统型运维,业务型运维。

3.2  手游运维业务范围:阿里云、 亚马逊 、UCloud、 蓝汛CDN、 听云监控。

3.3  手游游戏服务器架构:一般来讲都是以一组服务器集群为一个平台单位,不同的集群提供不同的服务。

手游的架构理念是提供一组虚拟服务器,当短连接的时候,每开一组服,将玩家引导到Web集群,随后被分配到不同的MongoDB,数据缓存用在Redis。当第一个服务器玩家请求DB时,会落到Mongo1上;当开第二个服的时候,还是将玩家引导到Mongo1上;以此类推直到运维发现压力累积到一定程度时,便会新开一组MongoDB,Web集群也是如此但只有性能不够时才会添加,一般情况下,每50个新服可能需要添加1个MongoDB。这便实现并解释了当时在页游里希望实现的快速开服方法。

 到此为止我们已经回顾了一遍游戏运维从端游到页游再到手游的演变过程,不难看出,手游对于区服的架构概念不同于端游:端游认为一个物理集群是一个服,而手游认为一个Web请求落到相应的数据库上就是一个服。这样的好处是开服合服都简单,如果前五十组服务器需要合并,实现起来很容易,因为同一个DB的数据是互通的,所以只需发一个公告,服务器加标识即可,不需要进行物理操作也不需要数据迁移。

游戏运维最强指南

说完了游戏运维的历史,我们要开始今天的重头戏,如何做好游戏运维?这里就用吴启超的一个冷笑话作为开始:运维为什么存在?a,有服务器;b,因为研发忙不过来。不管是笑没笑,运维确实因为上面两个原因才会诞生的。那么回到正题,想成为玩转上千服务器的游戏运维应该怎么样做呢?系统部运维构建大致如下图:

1、构建CMDB

21世纪什么最重要?信息最重要!运维所需信息要涉及:机房、物理服务器、虚拟机、交换机、网络、承载业务、业务配置、承载服务进程、端口等信息。不管是自己采购还是购买云服务,物理服务器和虚拟服务器都做为资产存在,在采购后录入相关的资产管理,给它打上标签,属于哪个游戏,哪个平台,这样不同游戏平台间就不能混用服务器了。然后,是再给不同的服务器标识它承担的业务角色,比如它是MongoDB,我们需要打上的标签会是大掌门-APPSTORE-MongoDB-主库-90000端口-第一组服务。这样一个基础信息录入就完成了。

这样的信息只要是用来将来批量化部署、管理服务器使用,以及当出现故障时,运维可以很方便的查询相当的服务器以及服务信息。但是数据的及时性、准确性、可检查是一个难点。

2、集中批量化管理

CMDB不是TXT文件,而是要变成EXE文件。运维在面临大量服务器的情况下,批量化工具的出现成为必须的结果,在日常的工作当中需要把其流程固化下来,为完成批量化安装、管理打下基础。大掌门喜欢使用 ssh sshpass paramiko libssh2这些基础的技术做批量管理。原因是不用安装简单、稳定、安全、可控。当然吴启超也表示推荐大家使用在市面上流程行puppet、Ansible、SaltStack等技术,为什么?简单、简单、简单!下图就是在做自动化半自动化运维过程中的模型。 

批量管理的难点在于:

a.命令的并发执行,要控制各点的超时时间

b.执行过程中,不同功能的不同权限要求

c.数据通信安全的保证,以及能够正常解析数据指令

d.人员账号权限管理,权限分发及回收

e.物理服务器、云服务器统一化安装及老项目改造

f.网络质量不可靠的情况下,执行不完整的情况下业务功能回滚。

3、性能与业务监控

  • 应用性能监控

1、每天都会对服务器进行上线,升级等操作,每款游戏在一个平台的集群数在几十个到几百个不等(根据平台大小)。因此每天维护和升级服务器压力极大,服务器异常或响应慢等问题的发生会给用户体验带来伤害。 这样的隐患在于一旦发生游戏关服之后就必须对玩家进行游戏中货币和元宝的赔偿,平均每个玩家补偿的元宝至少在5元以上,游戏币和各类游戏道具若干,以此类推由于服务器故障造成的损失可想而知。

2、大掌门使用了听云Server,能够对服务器响应慢和不可用进行定位,查看慢应用追踪和Web应用过程功能,能够实时定位消耗资源最大的代码和语句,这样就能帮助实时进行有针对性的调整和优化,并且可以快速定位问题时间,最快能到分钟级别。



 

3、发生高并发、服务器压力激增的情况时,平时运行正常的服务器异常概率大幅增加,日常可能的性能瓶颈点会被成倍放大,这就需要实时定位和解决性能瓶颈点,和提前进行预防改善。一般来说,传统日志收集方式耗时耗力,效果非常不好,大掌门用了听云Server后,可以进行1分钟级定位能迅速有效发现瓶颈点。同时还结合了听云Network的压测功能,能够在服务器上线前提前发现到高压力下的瓶颈点,提前预防,避免由于高并发出现的服务器瓶颈。

4、还有一种性能情况需要提前预防,游戏公司盈利在于玩家的充值,对于官网上从登陆到充值全流程的成功率业务部门极其关注,玩家点击跳转的失败会直接导致充值付费用户的转化率。对此,大掌门通过听云Network的事务流程功能能够实时对事物流程进行警报,帮助业务部门提升用户充值的转化率。

  • 业务监控

除了性能和硬件监控之外,对于游戏业务运转是否正常也需要建立一套标准去评判。

对此,大掌门开发了一套适用于全公司所有的游戏的统一登陆、充值、交易平台,解决了前端的SDK接入的问题,一个所有游戏或第三方的API接口统一接入的平台。在做业务型监控时,运维会要求后端开发人员写一个特定账号,在访问现有系统时,会完整的走一遍业务流,这样就可以看到需要的业务数字。

1、数据仓库搭建

上图为大掌门数据仓库的结构图,由于数据仓库搭建的话题比较大,只是简单的从数据集市的角度来聊聊,DM指的是数据集市。由于数据集市需要面对不同的人群,因此在数据仓库中需要建立不同的数据集市以面对各方的查询需求,进而对数据按照业务类型进行分类。

1、财务:关心月度充值数据

2、商务:关心渠道结算数据

3、运营:关心用户登陆量、转化率、留存率、平台充值额

4、产品:关心功能热度、用户体验

5、客服:关心所有数据及玩家属性

对于数据方面,运维的压力来自于需要贯穿及掌握所有的数据,并且为所有部门服务。简单的以下图的ETL为例:

数据对于运维的痛点:

1、日志切割工作谁做?研发还是运维。日志切割按什么规则?大小还是日期?

2、使用什么工具进行日志收集?scribe 还是flume 还是 sls?

3、数据的准确性谁来保证?日志内容不对、切割不对、传输丢失、入hadoop过滤

4、数据ETL过程监控,如果出现数据丢失怎么办?

5、数据采集怎么样尽可能的保证并发的采集,缩短时间。

6、数据的出现丢失或错误,整体数据回滚。谁来保证?怎么保证?

7、大量数据下,核对数据丢失情况怎么样核对?用什么方法?

那大掌门又是如何解决这些问题的呢:

1、将数据日志进行切割(按照业务打包日志)并合理命名。比如A登陆日志,B充值日志,C消费日志。分门别类进行打包后,对数据每5分钟切割1次,并生成md5包。

2、按照划分IDC Region。原来从本机向外传输数据会占用大量带宽,对于本身CPU的消耗大的话都会影响游戏的运行。现在按照IDC region做出划分,每个区域中会有1-3个中心存储服务器。将切割下来的数据放到中心存储上,划分成Aip1、Aip2、Aip3等md5压缩包,此处无需做合并(原因见3)。

3、建立下载任务。建立好任务列表后,对每5分钟的压缩包进行下载。考虑到如果上面的步骤做了合并的话就可能会产生在传输的时候丢数据却无法确定的情况,因此2步骤无需对数据进行合并。

4、将下载后的任务加到Hive数据仓库里。将当天的数据放到MySQL中,之前的数据放到Hive里。当运营提出数据需求时便可以到Hive中下载数据。即使数据出现错误,按照上面建立的每5分钟的任务列表也可以重新以规定时间点将数据压缩包重新拉回来。并且该流程可以按照正向、反向双向进行。

采用5分钟压缩包的另外一个原因在于每台服务器每天产生业务日志大概有5-6G的数据,分到5分钟后,切割完每个文件就是20M-30M,压缩后只占用很少的空间。这样就解决了占用大量带宽的问题。

5、数据传输后需将数据放到数据仓库(DW)中,数据下载完毕后会根据文件进行存储,当天的数据按照5分钟1个压缩包进入MySQL,MySQL则进入当天的查询。在数据仓库中,数据包按游戏及平台进行分类,这种格局的安排为了在并发时更好的运行。由于游戏与游戏之间是隔离的,因此按照这种模式是为了保证数据进行顺利并发。

35岁+运维人员的发展与出路

经常有人问我:干网工、干运维多年遇瓶颈,想学点新技术给自己涨涨“身价”,应该怎么选择?

聪明人早已经用脚投票:近年来,越来越多运维的朋友寻找新的职业发展机会,将目光聚焦到了网络安全产业。

1、为什么我建议你学习网络安全?

有一种技术人才:华为阿里平安等大厂抢着要,甚至高薪难求——白帽黑客。白帽黑客,就是网络安全卫士,他们“低调”行事,同时“身价”不菲。

根据腾讯安全发布的《互联网安全报告》,目前中国**网络安全岗位缺口已达70万,缺口高达95%。**而与网络安全人才需求量逐年递增局面相反的是,每年高校安全专业培养人才仅有3万余人,很多企业却一“将”难求,网络安全人才供应严重匮乏。

这种供求不平衡直接反映在安全工程师的薪资上,简单来说就是:竞争压力小,薪资还很高。

而且安全行业就业非常灵活,既可以就职一家公司从事信息安全维护和研究,也可以当作兼职或成为自由职业者,给SRC平台提交漏洞获取奖金等等。

随着国家和政府的强监管需求,一线城市安全行业近年来已经发展的相当成熟工作机会非常多,二三线城市安全也在逐步得到重视未来将有巨大缺口。

作为运维人员,这几年对于安全的技能要求也将不断提高,现阶段做好未来2到3年的技术储备,有非常大的必要性

2、运维转型成为网络安全工程师,是不是很容易?

运维转安全,因为本身有很好的Linux基础,相对于其他人来说,确实有一定的优势,入门会快一些。
系统管理经验
运维对服务器、网络架构的深度理解,可直接迁移到安全防护场景。例如,熟悉Linux/Windows系统漏洞修补、权限管控,能快速上手安全加固工作。
网络协议与架构知识
运维日常接触TCP/IP、路由协议等,有助于分析网络攻击路径(如DDoS防御、流量异常检测)。
自动化与脚本能力
运维常用的Shell/Python脚本技能,可无缝衔接安全工具开发(如自动化渗透脚本、日志分析工具)。
平滑过渡方向
从安全运维切入,逐步学习渗透测试、漏洞挖掘等技能,利用现有运维经验快速上手。
学习资源丰富
可复用运维工具(如ELK日志分析、Ansible自动化)与安全工具(如Nessus、Metasploit)结合学习,降低转型成本。

3. 转型可以挖漏洞搞副业获取收益挖SRC漏洞

  1. 合法挖洞:在合法的平台上挖掘安全漏洞,提交后可获得奖励。这种方式不仅能够锻炼你的技能,还能为你带来额外的收入。

  2. 平台推荐:

补天:国内领先的网络安全漏洞响应平台。

漏洞盒子:提供丰富的漏洞挖掘任务。

CNVD:国家信息安全漏洞共享平台。

关于我

有不少阅读过我文章的伙伴都知道,笔者曾就职于某大厂安全联合实验室。从事网络安全行业已经好几年,积累了丰富的技能和渗透经验。

在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了互联网安全防护水平。

在这里插入图片描述

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

游戏业务运维方法论 一.方法起源 方法论是运维工作中很重要的一方面,可以使我们的运维工作思路清晰,更有条理。 本套运维方法非重新创造,而是源自itil。在此基础之上,结合游戏日常工作内容,进行改进,最终形成目前的状态。   三.方法模型 1.     itil v3 itil内容庞大,但一张图也基本涵盖了ITIL的要点。从图中可以出,itil围绕服务战略,将运维工作分成三个阶段,服务设计—》服务转换—》服 阅读详情

相关推荐

2017年最精彩的自动化运维、智能运维文章都在这了

2017年,我们不断的探索运维自动化,努力将运维从苦海中解救出来。关于“运维自动化”的热门文章都在这了:有赞数据库自动化运维实践之路顺丰全栈资源下的自动化运维灵魂六个人如何运维一万台服务器?从ITIL到SRE | 唯品会运维自动化实践去哪儿网的硬件自动化运维体系建设之路不会 Python 的运维都将失业?(内含福利)8亿人晒军装:背后的运维技术大揭密!自动化运维之架构设计六要点 | 腾讯大梁专栏老

高效运维 2万+

游戏运维编年史:可能是目前最详细游戏运维指南

文章出自:听云博客 编者按: 从端游到页游再到手游,15年来中国网游在世界上都有着举足轻重的地位。但是再好的游戏如果出现连接、延迟等问题时也会造成巨大损失,这时游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启超来向我们讲述,进入游戏领域10余年来的风风雨雨。 有服务器的地方就有运维 如今我...

weixin_30894583的博客 716

ESP32+MAX7219二进制时钟设计与嵌入式时间映射实践

二进制时钟是嵌入式系统中数据表示与物理呈现深度耦合的典型范例,其核心在于将时间语义(年月日时分秒)解构为比特位,并通过LED点阵的空间权重布局实现直观识别。该设计依托RTC模块提供时间基准,依赖SPI协议完成微控制器与专用驱动芯片(如MAX7219)的可靠通信,涉及寄存器级配置、位图坐标变换、软硬件时序对齐等关键原理。技术价值体现在低资源占用下的高可读性人机交互,适用于教学演示、极客项目及嵌入式UI原型开发。本文聚焦ESP32平台在MicroPython环境下,结合MAX7219驱动8×8点阵实现高可靠性二

weixin_42160645的博客 301

运维面试常考题

1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系

m0_59388634的博客 2033

SHP转TXT、TXT转SHP工具(附工具下载链接)

关于TXT,可以选择整个图层生成一个TXT。也可以勾选“每个地块单独存TXT”,然后选择一个字段,根据字段值,给每个地块生成一个TXT文件。支持选择和数据框一样的坐标系,也可以选择一个图层,工具会采用和这个图层一样的坐标系。1、TXT数据支持输入单个或者多个TXT文件,也可以直接选择TXT所在的文件夹。所有的TXT数据都生成到一个矢量数据图层。关于这一行的内容,可以在地块坐标行设置中进行设置。其他:①面节点闭合:勾选,则回到起点。属性描述:可以直接复制粘贴进来,也可以直接修改。也可以改为任意字母。

坐听风雨 4301

SigFit实战:从FEA到光学仿真的热力耦合分析全流程解析

在光机系统与芯片封装等精密工程领域,热与力的耦合效应是影响产品性能与可靠性的核心物理问题。有限元分析(FEA)是预测结构在热、力载荷下变形与应力的基础工具,但其结果通常无法直接用于评估光学性能。这需要一座桥梁,将物理场数据转化为光学设计语言。其核心原理在于数据映射与面形表征技术,例如通过泽尼克多项式拟合,将离散的节点位移分解为离焦、像散等标准光学像差。这项技术的工程价值在于,它实现了多物理场仿真的闭环,使工程师能在设计阶段精准预测热变形或应力对波前误差、调制传递函数等关键光学指标的影响。其典型应用场景包括高

weixin_28630185的博客 339

游戏运维职责理解

游戏运维职责理解   为了更好的理解这个职位的工作、为了更好的诠释这个职位,我们先来看一下一款游戏,从研发后期开始,到运营介入进行封测、内测、公测,直到正式运营,游戏应用运维工程师都进行了哪些工作吧。 一、游戏应用运维工程师职责 1、研发后期开始,一直到产品公测 1)运维介入推行一些架构、可运营性、可维护性、可监控性、可扩展性、可容错性等的规范和建议,尽量去规避一些运营后期可能产生的短板和...

holy_bear 5494

【科学文献计量】标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)

@[TOC](标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)) 1 标准参考出版年谱与多维参考出版年谱 1.1 标准参考出版年谱(Standard RPYS) 标准参考出版年谱(Standard Reference Publication Year Spectroscopy)是由Marx, Bornmann, Barth, and Leydesdorff(2014)和Marx and Bornmann(2014)提出的一种量化历史出版物对研究领域影响的方法。该方法通

lys_828的博客 1103

什么是运维?

运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运做的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术,运维有包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等 开发运维: 是给应用运维开发运维工具和运维平台的 应用运维: 是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维: 是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等 总结:开发运维和系统运维给应用运维提供

爱吃鱼的小明的博客 4210

DRV8711驱动器的各寄存器的介绍

drv8711驱动器

PCLintelligence的博客 1634

SAP UI5 主题设置全解析:从启动参数到运行时切换、跨域白名单与事件监听

SAP UI5主题体系深度解析:从配置到切换的完整指南 摘要:SAP UI5主题机制远不止CSS换肤,其工程化实践涵盖启动配置、运行时API切换、跨库路径映射及安全管控等关键环节。通过bootstrap标签或URL参数设置初始主题,运行时可用Theming.setTheme无刷新切换。自定义主题需配置theme-roots路径,跨域加载需声明sap-allowed-theme-origins白名单。主题切换完成后会触发applied事件,适合执行视觉同步操作。该体系支持多品牌适配、集中式主题管理,在Fior

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 327

什么是游戏运维?

游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的。 在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的? 游戏运营要做的一个事.

红目香薰 2751

玩转企业微信群机器人:一份超详细的Webhook消息推送指南

企业微信群机器人是一个连接内部协作与外部服务的强大桥梁。通过灵活运用本文介绍的各种消息类型,你可以构建出丰富多彩、信息明确的自动化通知系统,极大地提升团队沟通效率。现在,就动手试试,将你的第一个机器人集成到工作流中吧!如果你有任何有趣的机器人应用场景或遇到了问题,欢迎在评论区留言交流!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3977

游戏运维编年史|可能是目前最详细的游戏运维指南

一直以来,中国网游在世界上都处于举足轻重的地位。从最早的端游到页游再到手游,不仅市场用户 爆发式增长,近15年来网游技术的发展也是无比迅速。和单机游戏不同,网游除了游戏制作本身以外还牵涉到服务器端,再好的游戏如果出现链接、延迟等问题时 也会造成巨大损失,这时候游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启 超来向我们讲述,进入游戏领域10余年来的风风雨雨。 有服务器的地方就有运维 如今我们说到游戏,可能想到的是火爆异常的VR,办公室.

神棍之路 1236

AutoSAR_BSW高阶 7. Signal Group 信号组

Autosar BSW的高级配置是实现复杂汽车电子系统的关键步骤之一。通过合理配置信号组和使用适当的参数,您可以提高系统性能,确保数据的可靠传输。在本博客中,我们深入探讨了信号组的概念和高级配置参数,并提供了示例代码,希望这些信息能够帮助您更好地理解和应用Autosar BSW的高级配置。如果您在配置过程中遇到任何问题,不妨寻求专业支持,以确保您的汽车电子系统能够顺利运行。Autosar COM 模块是一个广泛应用于汽车行业的关键技术,它使不同的电子控制单元能够有效地通信和协作。

一直在水些技术小文 662

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

可能是目前最详细的游戏运维指南

一直以来,中国网游在世界上都处于举足轻重的地位。从最早的端游到页游再到手游,不仅市场用户爆发式增长,近15年来网游技术的发展也是无比迅速。和单机游戏不同,网游除了游戏制作本身以外还牵涉到服务器端,再好的游戏如果出现链接、延迟等问题时也会造成巨大损失,这时候游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启超来向我们讲述,进入游戏

欧辰的专栏 8185

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

游戏运维编年史|可能是目前最详细的游戏运维指南(转载附链接)

一直以来,中国网游在世界上都处于举足轻重的地位。从最早的端游到页游再到手游,不仅市场用户爆发式增长,近15年来网游技术的发展也是无比迅速。和单机游戏不同,网游除了游戏制作本身以外还牵涉到服务器端,再好的游戏如果出现链接、延迟等问题时也会造成巨大损失,这时候游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启超来向我们讲述,进入游戏...

holy_bear 2760

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

小公司网络游戏可能出现的运维事故

如果你是运营一个小的网络游戏公司,没有运维经验,你很可能会出现下面的运维事故:        1.游戏包版本出错,分为两种情况:A 向平台提交时,客户端版本出错(项目组遇到过几次);B 服务端版本出错(我遇到过几次)(出现概率很大)        2.服务器数据丢失;(出现概率比较小,但是我遇到好几次了。当然并非是我操作失误)        3.出客户端版本时,将内网的IP地址生成了里面,而

efulao的专栏 5618

什么是运维,什么是游戏运维

什么是运维,什么是游戏运维 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应

qq_33676595的博客 1001

什么是运维?什么是游戏运维?

1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,

weixin_50663202的博客 1243

腾讯最赚钱的部门是怎么做运维的?

2012年,我们开始提倡运维转型,鼓励运维向运维开发转型,让运维自己开发所需的工具来实现自动化。现在,我们提倡运维服务化和平台产品化。本文从文化、组织、人、流程、工具这几个维度分享运维管理的点滴经验。 腾讯游戏运营管理总监刘栖铜 腾讯互动娱乐事业群的主营业务是游戏,所有腾讯游戏都是由这个事业群做的,估计很多人都玩过,像《英雄联盟》、《全民突击》等。我所在的部门叫运营部,负责所有腾讯游...

dianxuai7307的博客 430

游戏类运维重点流程解析

一,某游戏公司例行上线与更新流程示例 例行维护/更新流程 1.1 更新前天 提前确认好要更新的是什么,更新会有人通知你,一般是运营人员比如:我们明天做什么什么更新 1.2 第2天更新 一般固定点更新,会先收到更新邮件运营人员会发公告给玩家,说我们什么什么游戏,几点进行维护比如:10点更新: (1)关闭游戏端口,禁止外部访...

anp4077的博客 622
上一篇: it运维管理体系,零基础入门到精通,收藏这篇就够了
下一篇: idc运维面试(非常全面),零基础入门到精通,收藏这篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值