
你登陆的是界面客户client端,服务器在service端,装备和人物信息包括等级经验等等存放在若干关联数据条中。
一般来说,client和server之间的数据交换,分为几个优先级,大部分情况下是下面3种:
1 不可以丢失,但是不要求速度。
2 不可以丢失,但是要求速度,确并不是非常严格。
3 可以丢失,但是要求速度
对于1来说,最直接的例子就是聊天信息,动态的地图信息。这些数据不是time-critical的,所以应该使用TCP连接。 在大多数情况下,有专门的 voice/chat server和map server,client到每个server有个TCP连接。一个client有多少个连接根据需要决定。同时有2-3个连接并没有多大开销。当然,如果开销很大,就是程序设计的问题了。其实你想想开BT的时候同时有4,50个连接,你用其他程序的速度并没有慢多少。
对于2来说,比较显著的例子是战斗信息,动作序列。 比如一个人玩游戏,用鼠标点了下地图上的一个坐标,那么人物向这个坐标前进。这个信息从server转发到其他的client,当然越快越好,如果client没收到,就要重发,否则client就看不到这个动作。如果你玩过wow的盗贼,就会发现在网络卡的时候,经常先偷袭,按下键盘以后要等一会才看到攻击动作,就是这个原理。当然这里数据需要经过server的处理,每次打包多个client的动作,和顺序,然后发送。需要复杂的server端逻辑处理。这种应该使用UDP,同时对所有的UDP包编号(用来防止2次处理),使用slide window类似的协议进行重传。
对于3来说,就是位置信息。 位置信息可以丢失,但是由于这种信息更新的最频繁,所以即使丢失其中一个,也可以根据 dead reckoning 算法进行位置预测和修正。 dead reckoning算法有很多变种,适合多类情况。 比如你见过wow里,如果一个人掉线,但是一直往前不停的跑,那多半就是算法进行的预测。偶尔你会发现网络卡的时候,刚刚走到一个地方就退回到原来的位置,就是因为你的动作数据包(2里的)没发送出去,导致update world position的时候,算法进行位置修正的结果。这类数据应该使用UDP
需要说明的是 UDP和TCP无明显分界。 TCP相比UDP,有3个主要缺点,1是slow start, 2是 throughput jitter, 3是insistence on reliability(相对的,不时绝对缺点) 在数据传送量比较小,网络状况比较稳定的情况下,使用TCP和UDP无大分别。
此外,如果是官服,会有防火墙。
对于防火墙穿透,如果你是做client的,不需要关心这个问题,因为你往Server发数据,建立连接,都不会受到防火墙的影响。不过server端对于放火墙可以有几种实现方式:
1 最差的方式是client发送SYN包给服务器,在防火墙或网关上建立NAT地址,然后 Server之需要取得这个NAT地址,把所有的数据包都封装成SYN-ACK包,发给client就行拉。这样做比较省事。但是无法穿透 stateful firewall
2 是比较好的方式。 不过需要先建立TCP连接,然后对server发送正常的UDP包。大部分的NAT网关会为UDP专门建立个NAT地址,那么通过这个地址,server就可以发UDP包了。但是并不是所有的firewall都会为UDP建立单独的NAT地址。
3 是最好的方式,由于防火墙不会阻止内部网发起的TCP连接,所以TCP进行数据传输没有任何问题。对于Server/Client来说,只要使用 Raw Socket模拟TCP协议,但是这个模拟的TCP协议使用UDP的本质,没有slide window, 没有 congestion control, 没有flow control等等,这种实现最麻烦,但是几乎能处理所有的防火墙。
4 其实没有4,不过实在想提下这种最强技术 就是所有的Server到Client的数据包都可以是ICMP echo reply message 由于种种原因,firewall不太可能禁止ICMP echo,所以这类消息也是很容易传送到client,但是。。。。。。。。Client如果有 IDS system,很容易把你的sever归类到入侵扫描的范围。所以不用最好。你好,游戏制作分为三大类,分别是:\x0d\一、游戏程序:\x0d\类似软件工程师,需要精通至少一门以上程序语言,比如c,c++,页游方面有flashas3,php等。他们的主要工作是写程序代码,需要一定的逻辑思维能力,数学能力。\x0d\如果你想成为程序员,可以从学习一门程序语言入手。\x0d\二、游戏美术:\x0d\游戏中的画面都是由游戏美术师来制作的,具体细分为:游戏原画,3d游戏模型贴图(分3d场景与3d角色),游戏动画,游戏特效,关卡美术等。想学习游戏美术的话,一定要有审美能力,如果有深厚的绘画功底更佳。另外,还需要学习3dmax,ps,zbrush等软件,这三个软件是做游戏美术最常用的。\x0d\三、游戏策划:\x0d\游戏策划主要制定游戏的规则和玩法,比如世界观,剧情,对话,任务,数值,职业设定,副本设计,帮会系统等等。想学习策划的话,需要你有较高的综合素质,沟通能力,理解能力,逻辑思维能力等。另外需要多玩游戏,并从设计的角度去分析游戏。策划需要掌握的技能范围很广,根据具体项目和具体职责而不同。\x0d\\x0d\游戏制作的流程是:\x0d\一立项:\x0d\提出游戏创意,前期预估项目成本,风险,市场分析,需求分析,主策拿出游戏创意提案和大纲,美术,程序和相关部门一起讨论可行性\x0d\二制作demo:\x0d\制作游戏的demo版,确立游戏的主要玩法,画面风格和程序主要构架,通常在demo版本制作后会给投资人或者发行商审核很多游戏在demo阶段就over了\x0d\三正式开发:\x0d\制作游戏的封测版,内测版和公测版,(这是网游的叫法,单机是alpha版,beta版和release版)制作人把控游戏质量,项目经理进度和成本控制,策划完善游戏的细节和功能,提交策划案给美术和程序策划通常会提前一些,美术和程序基本同时动工每一阶段测试后,会根据bug进行相关调整策划程序美术人员比例一般为1:1:2\x0d\四后期制作:\x0d\补丁,资料片和其他后续制作服务器是用来处理高并发的请求,同时能够满足扩展的业务逻辑的需求,最重要的是满足三点:并发性,稳定性,扩展性。
经历过两款上线游戏产品,见识到了游戏行业的杂乱无章,虽然和传统软件行业相比,少了那么些规范,但是对个人能力要求还真不比传统软件行业低。
今天开始,陆续利用业余时间将自己设计的一个服务器的框架贴出来,也会包好一些基本的代码,也会用到一些开源库。从最基础的讲起,首先看看一个实时网络游戏服务器的框架:
目前市面上的游戏,总的来说分为两类:
1弱联网类游戏,像手机上的卡牌类游戏(MT,Dota传奇等),大部分逻辑在客户端处理,不需要实时联网,这类游戏只有一个玩家,而且只有PVE模式,就是打游戏中的机器人(AI),不存在玩家与玩家的实时交互。例如一场副本打斗,只有在开始和结束,才会连接服务器,请求获取或者存储数据,打斗过程由客户端计算完成,最后将战斗结果提交服务器就行了。
2强联网类游戏,典型的就是MMORPG或者MMARPG的类型的游戏,一般常见于端游或者页游,也包含手游。在一个地图中,同时有很多玩家,任何一个玩家的状态或者属性发生变化,服务器就需要实时更新游戏中角色的状态,并且通知到周围的玩家。例如在副本中,一个玩家释放技能,攻击范围,伤害计算这些逻辑都是服务器来完成的,而客户端只需要负责特效的显示,这个过程中需要实时的数据交互。
显然,第2种,MMORPG类游戏需要服务器做更多的事情,对服务器的运算要求更高,实时性要求更高,自然实现起来更复杂。
一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。
这里说的模块可以指一个进程,或者一个线程方式存在,本质上就是一些类的封装。
对于服务器的并发性,要么采用单进程多线程,要么采用多进程单线程的方式,说说两种方式的优缺点:
一、单进程多线程的服务器设计模式,只有一个进程,但一个进程包好多个线程:
网络通讯层,业务逻辑,数据存储,分别在独立的线程中,无守护进程。
优点:
1数据共享和交换方便,使用全局变量或者单例就可以,数据存储方便。
2单进程,服务器框架结构相对简单,编码容易。
缺点:
1所有功能只能在单个物理服务器上,不能做成分布式。
2不方便监控各个线程状态,容易死锁
3一个线程出错,例如内存非法访问,栈空间被破坏,那么服务器进程就退出,所有玩家掉线,影响大。
二、多进程单线程的服务器设计模式,多个进程,每个进程只有一个线程:
网路通讯,业务逻辑,数据存储,守护进程,分别在不同的进程。
优点:
1各个进程可以分布在不同的物理服务器上,可以做成分布式的服务器框架,例如可以将数据存储单独放到一个物理服务器上,供几个区的服务器使用。将网络通讯进程独立出来,甚至可以做成导向服务器,实现跨服战。
2可以通过守护进程监控其它进程状态,例如有进程死掉,马上重启该进程,或者某个进程cpu使用率接近100%(基本可以判断是某个逻辑死循环了), 强制kill掉该进程,然后重启。
3单个服务器进程异常退出,只要不是网络通讯进程(一般这个都会比较稳定,没什么逻辑),那么就可以及时被守护进程重启,不会造成玩家掉线,只会造成在1-2秒内,某个逻辑功能无法使用,甚至玩家都感觉不到。
4服务器通过共享内存进行数据交换,那么如果其中一个服务器死掉,数据还在,可以保护用户数据(当然多线程也可以使用共享内存)。
5并发性相对多线程要高点。
缺点:
1不方便使用互斥锁,因为进程切换的时间片远远于线程切换,对于一个高并发服务器是无法允许这么高时间片的切换代价的。因此必须设计好服务器的框架,尽量避开使用锁机制,但要保证数据不出错。
2多进程编程,在各个进程间会有很多通讯,跨服务器进程的异步消息较多,会让服务器的编码难度加大。从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对外提供ftp服务,也可以叫服务器)。
从狭义上讲,服务器是专指某些高性能计算机,能通过网络,对外提供服务。相对于普通PC来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。
[编辑本段]服务器解析
服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。
它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络 *** 作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。
服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。
服务器分类
一:按照体系架构来区分
目前,按照体系架构来区分,服务器主要分为两类:
非x86服务器:包括大型机、小型机和UNIX服务器,它们是使用RISC(精简指令集)或EPIC处理器,并且主要采用UNIX和其它专用 *** 作系统的服务器,精简指令集处理器主要有IBM公司的POWER和PowerPC处理器,SUN与富士通公司合作研发的SPARC处理器、EPIC处理器主要是HP与Intel合作研发的安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。
x86服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或其它兼容x86指令集的处理器芯片和Windows *** 作系统的服务器,如IBM的System x系列服务器、HP的Proliant 系列服务器等。 价格便宜、兼容性好、稳定性差、不安全,主要用在中小企业和非关键业务中。
从当前的网络发展状况看,以“小、巧、稳”为特点的x86架构的PC服务器得到了更为广泛的应用。
从理论定义来看,服务器是网络环境中的高性能计算机,它侦听网络上其它计算机(客户机)提交的服务请求,并提供相应的服务。为此,服务器必须具有承担服务并且保障服务质量的能力。
但是这样来解释仍然显得较为深奥模糊,其实服务器与个人电脑的功能相类似,均是帮助人类处理信息的工具,只是二者的定位不同,个人电脑(简称为Personal Computer,PC)是为满足个人的多功能需要而设计的,而服务器是为满足众多用户同时在其上处理数据而设计的。而多人如何同时使用同一台服务器呢这只能通过网络互联,来帮助达到这一共同使用的目的。
我们再来看服务器的功能,服务器可以用来搭建网页服务(我们平常上网所看到的网页页面的数据就是存储在服务器上供人访问的)、邮件服务(我们发的所有电子邮件都需要经过服务器的处理、发送与接收)、文件共享&打印共享服务、数据库服务等。而这所有的应用都有一个共同的特点,他们面向的都不是一个人,而是众多的人,同时处理的是众多的数据。所以服务器与网络是密不可分的。可以说离开了网络,就没有服务器;服务器是为提供服务而生,只有在网络环境下它才有存在的价值。而个人电脑完全可以在单机的情况下完成主人的数据处理任务。
二:按应用层次划分
按应用层次划分通常也称为"按服务器档次划分"或"按网络规模"分,是服务器最为普遍的一种划分方法,它主要根据服务器在网络中应用的层次(或服务器的档次来)来划分的。要注意的是这里所指的服务器档次并不是按服务器CPU主频高低来划分,而是依据整个服务器的综合性能,特别是所采用的一些服务器专用技术来衡量的。按这种划分方法,服务器可分为:入门级服务器、工作组级服务器、部门级服务器、企业级服务器。
1、入门级服务器
这类服务器是最基础的一类服务器,也是最低档的服务器。随着PC技术的日益提高,现在许多入门级服务器与PC机的配置差不多,所以目前也有部分人认为入门级服务器与"PC服务器"等同。这类服务器所包含的服务器特性并不是很多,通常只具备以下几方面特性:
·有一些基本硬件的冗余,如硬盘、电源、风扇等,但不是必须的;
·通常采用SCSI接口硬盘,现在也有采用SATA串行接口的;
·部分部件支持热插拨,如硬盘和内存等,这些也不是必须的;
·通常只有一个CPU,但不是绝对,如SUN的入门级服务器有的就可支持到2个处理器的;
·内存容量也不会很大,一般在1GB以内,但通常会采用带ECC纠错技术的服务器专用内存。
这类服务器主要采用Windows或者NetWare网络 *** 作系统,可以充分满足办公室型的中小型网络用户的文件共享、数据处理、Internet接入及简单数据库应用的需求。这种服务器与一般的PC机很相似,有很多小型公司干脆就用一台高性能的品牌PC机作为服务器,所以这种服务器无论在性能上,还是价格上都与一台高性能PC品牌机相差无几,如DELL最新的PowerEdge4000 SC的价格仅5808元,HP也有类似配置和价格的入门级服务器。
入门级服务器所连的终端比较有限(通常为20台左右),况且在稳定性、可扩展性以及容错冗余性能较差,仅适用于没有大型数据库数据交换、日常工作网络流量不大,无需长期不间断开机的小型企业。不过要说明的一点就是目前有的比较大型的服务器开发、生产厂商在后面我们要讲的企业级服务器中也划分出几个档次,其中最低档的一个企业级服务器档次就是称之为"入门级企业级服务器",这里所讲的入门级并不是与我们上面所讲的"入门级"具有相同的含义,不过这种划分的还是比较少。还有一点就是,这种服务器一般采用Intel的专用服务器CPU芯片,是基于Intel架构(俗称"IA结构")的,当然这并不一种硬性标准规定,而是由于服务器的应用层次需要和价位的限制。
2、工作组服务器
工作组服务器是一个比入门级高一个层次的服务器,但仍属于低档服务器之类。从这个名字也可以看出,它只能连接一个工作组(50台左右)那么多用户,网络规模较小,服务器的稳定性也不像下面我们要讲的企业级服务器那样高的应用环境,当然在其它性能方面的要求也相应要低一些。工作组服务器具有以下几方面的主要特点:
·通常仅支持单或双CPU结构的应用服务器(但也不是绝对的,特别是SUN的工作组服务器就有能支持多达4个处理器的工作组服务器,当然这类型的服务器价格方面也就有些不同了);
·可支持大容量的ECC内存和增强服务器管理功能的SM总线;
·功能较全面、可管理性强,且易于维护;
·采用Intel服务器CPU和Windows/NetWare网络 *** 作系统,但也有一部分是采用UNIX系列 *** 作系统的;
·可以满足中小型网络用户的数据处理、文件共享、Internet接入及简单数据库应用的需求。
工作组服务器较入门级服务器来说性能有所提高,功能有所增强,有一定的可扩展性,但容错和冗余性能仍不完善、也不能满足大型数据库系统的应用,但价格也经前者贵许多,一般相当于2 ̄3台高性能的PC品牌机总价。
3、部门级服务器
这类服务器是属于中档服务器之列,一般都是支持双CPU以上的对称处理器结构,具备比较完全的硬件配置,如磁盘阵列、存储托架等。部门级服务器的最大特点就是,除了具有工作组服务器全部服务器特点外,还集成了大量的监测及管理电路,具有全面的服务器管理能力,可监测如温度、电压、风扇、机箱等状态参数,结合标准服务器管理软件,使管理人员及时了解服务器的工作状况。同时,大多数部门级服务器具有优良的系统扩展性,能够满足用户在业务量迅速增大时能够及时在线升级系统,充分保护了用户的投资。它是企业网络中分散的各基层数据采集单位与最高层的数据中心保持顺利连通的必要环节,一般为中型企业的首选,也可用于金融、邮电等行业。
部门级服务器一般采用IBM、SUN和HP各自开发的CPU芯片,这类芯片一般是RISC结构,所采用的 *** 作系统一般是UNIX系列 *** 作系统,现在的LINUX也在部门级服务器中得到了广泛应用。以前能生产部门级服务器的厂商通常只有IBM、HP、SUN、COMPAQ(现在也已并入HP)这么几家,不过现在随着其它一些服务器厂商开发技术的提高,现在能开发、生产部门级服务器的厂商比以前多了许多。国内也有好几家具备这个实力,如联想、曙光、浪潮等。当然因为并没有一个行业标准来规定什么样的服务器配置才能算得上部门级服务器,所以现在也有许多实力并不雄厚的企业也声称其拥有部门级服务器,但其产品配置却基本上与入门级服务器没什么差别,用户要注意了。
部门级服务器可连接100个左右的计算机用户、适用于对处理速度和系统可靠性高一些的中小型企业网络,其硬件配置相对较高,其可靠性比工作组级服务器要高一些,当然其价格也较高(通常为5台左右高性能PC机价格总和)。由于这类服务器需要安装比较多的部件,所以机箱通常较大,采用机柜式的。
4、企业级服务器
企业级服务器是属于高档服务器行列,正因如此,能生产这种服务器的企业也不是很多,但同样因没有行业标准硬件规定企业级服务器需达到什么水平,所以现在也看到了许多本不具备开发、生产企业级服务器水平的企业声称自己有了企业级服务器。企业级服务器最起码是采用4个以上CPU的对称处理器结构,有的高达几十个。另外一般还具有独立的双PCI通道和内存扩展板设计,具有高内存带宽、大容量热插拔硬盘和热插拔电源、超强的数据处理能力和群集性能等。这种企业级服务器的机箱就更大了,一般为机柜式的,有的还由几个机柜来组成,像大型机一样。企业级服务器产品除了具有部门级服务器全部服务器特性外,最大的特点就是它还具有高度的容错能力、优良的扩展性能、故障预报警功能、在线诊断和RAM、PCI、CPU等具有热插拨性能。有的企业级服务器还引入了大型计算机的许多优良特性,如IBM和SUN公司的企业级服务器。这类服务器所采用的芯片也都是几大服务器开发、生产厂商自己开发的独有CPU芯片,所采用的 *** 作系统一般也是UNIX(Solaris)或LINUX。目前在全球范围内能生产高档企业级服务器的厂商也只有IBM、HP、SUN这么几家,绝大多数国内外厂家的企业级服务器都只能算是中、低档企业级服务器。企业级服务器适合运行在需要处理大量数据、高处理速度和对可靠性要求极高的金融、证券、交通、邮电、通信或大型企业。企业级服务器用于联网计算机在数百台以上、对处理速度和数据安全要求非常高的大型网络。企业级服务器的硬件配置最高,系统可靠性也最强。
[编辑本段]服务器硬件
其实说起来服务器系统的硬件构成与我们平常所接触的电脑有众多的相似之处,主要的硬件构成仍然包含如下几个主要部分:中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。这也成了我们选购一台服务器时所主要关注的指标。
整个服务器系统就像一个人,处理器就是服务器的大脑,而各种总线就像是分布与全身肌肉中的神经,芯片组就像是脊髓,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方。
对于一台服务器来讲,服务器的性能设计目标是如何平衡各部分的性能,使整个系统的性能达到最优。如果一台服务器有每秒处理1000个服务请求的能力,但网卡只能接受200个请求,而硬盘只能负担150个,而各种总线的负载能力仅能承担100个请求的话,那这台服务器得处理能力只能是100个请求/秒,有超过80%的处理器计算能力浪费了。
所以设计一个好服务器的最终目的就是通过平衡各方面的性能,使得各部分配合得当,并能够充分发挥能力。我们可以从这几个方面来衡量服务器是否达到了其设计目的;R:Reliability——可靠性;A:Availability——可用性;S:Scalability——可扩展性;U:Usability——易用性; M:Manageability——可管理性,即服务器的RASUM衡量标准。
由于服务器在网络中提供服务,那么这个服务的质量对承担多种应用的网络计算环境是非常重要的,承担这个服务的计算机硬件必须有能力保障服务质量。这个服务首先要有一定的容量,能响应单位时间内合理数量的服务器请求,同时这个服务对单个服务请求的响应时间要尽量快,还有这个服务要在要求的时间范围内一直存在。
如果一个WEB服务器只能在1分钟里处理1个主页请求,1个以外的其他请求必须排队等待,而这一个请求必须要3分钟才能处理完,同时这个WEB服务器在1个小时以前可以访问到,但一个小时以后却连接不上了,这种WEB服务器在现在的Internet计算环境里是无法想象的。
现在的WEB服务器必须能够同时处理上千个访问,同时每个访问的响应时间要短,而且这个WEB服务器不能停机,否则这个WEB服务器就会造成访问用户的流失。
为达到上面的要求,作为服务器硬件必须具备如下的特点:性能,使服务器能够在单位时间内处理相当数量的服务器请求并保证每个服务的响应时间;可靠性,使得服务器能够不停机;可扩展性,使服务器能够随着用户数量的增加不断提升性能。因此我们说不能把一台普通的PC作为服务器来使用,因为,PC远远达不到上面的要求。这样我们在服务器的概念上又加上一点就是服务器必须具有承担服务并保障服务质量的能力。这也是区别低价服务器和PC的差异的主要方面。
在信息系统中,服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根本出发点的差异决定了服务器应该具备比PC更可靠的持续运行能力、更强大的存储能力和网络通信能力、更快捷的故障恢复功能和更广阔的扩展空间,同时,对数据相当敏感的应用还要求服务器提供数据备份功能。而PC机在设计上则更加重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。目前使用服务器的站长和企业也比较多,也许有人会觉得二者差不多。从表面上看,服务器和我们日常用的PC电脑都是由CPU、内存、硬盘等部分组成,那么,服务器与普通电脑有什么区别呢?
1、服务器CPU设计的可连续运行时间长,基本都是设计为能常年连续工作的,而普通桌面级CPU是按72个小时连续工作而设计的。
2、服务器CPU支持多路互联,简单的说就是1台机器可装很多CPU,普通桌面级CPU不支持这种工作方式。
3、服务器CPU往往首先运用先进的技术如近期才在普通桌面级CPU出现L3缓存,服务器CPU很早就运用了。
4、内部指令集二者也会根据不同有所差异。
5、二者接口也不同,一般PC电脑放在自己家里,拉的普通宽带;而服务器都放在机房,大带宽接入。
6、性能:服务器需要及时响应众多客户端的请求,并提供相应服务,PC一般只由少数人 *** 作;尤其是网络性能,对PC来讲如果不联网,没有网卡,PC仍是PC,而对服务器来讲没有网卡就不是服务器了,因为,服务器的定义就是在网络中给其它计算机提供服务的计算机系统。
7、图形显示、键盘和鼠标的要求:普通台式机和显示器、键鼠等都是一对一的,而且,一般对显卡性能有要求,服务器不直接和用户交互对显卡性能基本无要求,一般键盘鼠标显示器是多台共用的。
8、扩展性:PC一般不需要很多外插卡,对扩展性要求不高,而服务器一般需要考虑增加网卡、RAID卡、HBA卡等;另外,扩展性还包括,内存、硬盘等存储位、电源,甚至是CPU的扩展,这些更是服务器的特性。
服务器CPU入门级的一般是对普通CPU做了服务器化,支持多路互联和长时间等,性能没有提升,价格更高。高端则是运用大量的先进技术,价格贵。在机房进行服务器租用和服务器托管业务的服务器CPU一般不适合家用和娱乐,由于其自身特性,价格高反而游戏等性能低,日常家用也不会连续运行一周以上吧。
服务器是计算机的一种,它是网络中一种为客户端提供不同服务的高性能的计算机,它是在网络 *** 作系统的控制下,将与其相连的硬盘、磁带机、打印机、Modem及昂贵的专用通讯设备提供给网络上过得客户端共享,也能为网络用户提供集中计算、信息发布及数据管理等服务。
从功能上讲: 服务器,简单地说就是为别的电脑提供服务的电脑,任何配置的电脑都可以做服务器,比如说你的电脑上共享了一个文件夹,所有其他电脑的文件都保存在这个文件夹里,那你的电脑就是一个文件服务器;而专业的服务器所提供的服务就很多了,如数据库服务、DHCP服务、DNS服务、RAS服务、活动目录服务等等。
从硬件上讲,所谓服务器,就是一台为提供服务优化了的PC,比如服务器需要24小时不间断的开机状态,这就需要服务器具有良好的散热性能。普通PC你开一个月不关机试试……服务器的好坏不在于配置的高低,而在于运行的稳定性,大内存、高性能CPU、高性能主板、电源,外加一个UPS不间断电源,基本就组成了一台实用的服务器。
任何电脑都可以做服务器,就好象任何人都可以唱歌一样,只不过业余的没有专业的唱得好,同时,也没有歌星出名罢了,要把你的电脑配置成一台网络上的服务器,需要有足够的带宽,内存;带宽不够的话,人一多就掉线;内存不够的话,人一多机器就瘫痪。 个人计算机和服务器都是计算机,但,两者有着明显的区别,因此,前者称个人PC机,后者以服务器自称!
服务器与PC的区别应该从硬件和软件两方面来看,根据应用的不同两者的差别很大,打个比方,PC就是那什么都会的门诊医生,但是医术不是那么精湛,而服务器就应该是某个方面的专家了,处理能力越出
众,它“专”的就越厉害。我先从硬件上,根据各个组件说说他们的不同:
1CPU 服务器CPU的指令一般是采用的RISC(精简指令集)。根据研究,在大多数的应用中,CPU仅仅使用了很少的几种命令,于是研究人员就根据这种情况设计了该指令集,运用集中的各种命令组合来实现各种需求。这种设计的好处就是针对性更强,可以根据不同的需求进行专门的优化,处理效更高。相对应的则是CISC(复杂指令集),他的特点就是尽量把各种常用的功能集成到一块,例如我们常常听到的MMX,SSE,SSE+,3D!NOW!等等都是这种类型的。另外,服务器的CPU设计一般都要考虑它的多路功能,说白了就是好几个甚至上千上万个CPU一起工作的问题,而PC则简单多了,这种多路功能用上实在浪费,而它的价钱也的确是上面兄弟说的,不是谁都能受的了的。(补充:服务器的寻址能力很早前就是64位了;APPEL采用的指令集也是RISC,他是个另类,不过现在已经投靠INTEL了)2内存。内存在服务器上的原则也上越快越大越好,不过它对纠错和稳定提出了更高的要求,比如ECC("错误检查和纠正"好象没人这么叫的)。我们现在使用的PC上很少有人能够用到1G的内存(玩游戏的不算),而在服务器上,这G级的内存有时也会显着捉襟见肘,记得去年国家发布银河最新超级计算机时,他的内存更是达到了1个T;相比内存的速度,人们在应用的时候更优先考虑内存的稳定和纠错能力,只有在保证了这两条,才能再考虑别的东西。
3硬盘。硬盘性能无论是在PC上还是服务器上,性能的提升一直很缓慢,个人认为,依靠机械的发展,硬盘的发展是不可能出现质的飞跃。由于使用服务器的一般都是企业单位,里面都是保存了大量珍贵数据,这对硬盘就提出了安全稳定的要求,硬盘上出现的相关技术也基本上围绕这两个要求转。比如:数据冗余备份,热插拔等。另外,服务器硬盘必须能做到247不间断工作的要求。
4主板这个我了解的比较少,很少看到服务器有主板的说法,不过我觉得应该提提服务器的总线设计——多路,就是多个CPU如何能够协调工作。有兴趣建议你看看 *** 作系统方面的书,看老外写的,很好!
5显卡除了图形和3D设计(那个人家好象都叫工作站,哪位达人知道请告诉我对不对),服务器上的显卡基本上就是你只要能接上显示器能显示就行!
接下来我说说软件,软件就主要指 *** 作系统,比如我们熟悉的NT,2000 SERVER,2003 SERVER,LINUX,SOLRAIS和UNIX等等,都是专门针对服务器设计的,比如:负载均衡,多路CPU的支持。
服务器首先稳定性极高,寄放在电信空调房里,可以整个一年都不关机,不重启的。一般CPU都是用至强处理器,频率相同的话,要比普通CPU高出N倍的价钱,速度很快。硬盘一般都用10000转的,而且基本上都有磁盘阵列,读写速度高出许多。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)