搞嵌入式开发的人有两类:一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、 Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持 *** 作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式 *** 作系统原理和复杂应用软件等)。另一类是学软件、计算机专业出身的人,主要从事嵌入式 *** 作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有"花头"可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。
从事嵌入式软件开发的好处是:
(1) 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如 *** 作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式 *** 作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很难找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。
(2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、80211等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。
(3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。我们这届有个同学自己有点此类小生意,具体做什么的没细问, 他每月要进货几千片8位单片机,现在自己已经有车有房了。还有现在开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据说销路不错,饭馆点点PDA让客户点菜,多显派头档次。这些PDA的硬件设计一般都是请别的公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
从事嵌入式软件开发的缺点是:
(1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是 *** 作系统级软件功底不深,则可能不适于此行。
(2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有 Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、 Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
同学们若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式 *** 作系统方面,应是我们的强项。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):
(1) 掌握主流嵌入式微处理器的结构与原理
(2) 必须掌握一个嵌入式 *** 作系统
(3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。
嵌入式Linux *** 作系统:Linux的前途除作为服务器 *** 作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的 *** 作系统,不是微内核的,并且实时性不强。
目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在 ARM 9上的,一般是将Linux 2418内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式 *** 作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时 *** 作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时 *** 作系统原理,但由于ucOS/II功能有限,实用用得较少。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深 *** 作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux 开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人; 三是熟悉Linux 内核裁减和优化的人。
导语:服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。那么,我们可以怎么选择好的服务器
怎么选择好的服务器你需要从不同的角度来决定选择一台什么样的服务器,找到满足技术需要、业务发展和成本控制之间的最佳平衡点,为了做到这一点,绝对还是需要一点智慧。51IDC将在下面为大家介绍一些易于理解,尽可能全面的建议,并帮助你做出决定。
先不要急于决定需要怎样的CPU,几个硬盘,几个G内存,需要多少兆带宽这样的问题,那些是我们最后需要得到的答案。在这之前,先一起梳理几个问题。在下面,我们列出了一些“多少”或“什么样”的问题,拿起你的笔或在Windows记事本里新建一个文件,尝试根据下面四个问题来评估自己的需求:
1服务器运行什么应用
2需要支持多少用户访问
3需要多大空间来存储数据
4我的业务有多重要
1:服务器运行什么应用这是首先需要考虑的问题,在这里你要根据服务器的应用类型,也就是用途,来决定服务器的性能、容量和可靠性需求。我们按照前端服务器+应用程序服务器+数据服务器的常见基础架构来讨论:
11Web前端:正常情况下,我们认为大多数Web前端服务器(Front-end)对服务器的要求不大,例如静态Web服务器、动态Web服务器、服务器等等,因为在现有的技术框架中,我们有很多方案可以解决前端服务器的性能扩展和可靠性问题,例如LVS、Nginx反向代理、硬件负载均衡(F5,A10,Radware)等。甚至在很多访问量不高(几百个用户同时在线)的应用中,51IDC的经典酷睿服务器就可以满足需求。
12应用服务器:由于承担了计算和功能实现,我们需要为基于Web架构的应用程序服务器(Application Server)选择足够快的服务器,另外应用程序服务器可能需要用大量的内存,尤其是基于Windows基础架构的Ruby,Python,Java服务器。这一类服务器至少需要使用单路至强的配置。对于可靠性的问题,如果你的架构中只有一台应用服务器,那肯定需要这台服务器足够可靠,RAID绝对是不能忽视的选项。但如果有两台或更多的应用服务器,并设计了负载均衡机制,具有冗余功能,那我们则不必将每台服务器武装到底。
13特殊的应用:除了作为Web架构中的应用程序服务器之外,如果你的服务器是用来处理流媒体视频编码、服务器虚拟化、媒体服务器(Asterisk之类),或者作为游戏服务器(逻辑、地图、聊天)运行,则同样对CPU和内存需求比较高,我们至少要考虑单路至强的服务器。其中服务器虚拟化对存储的可靠性的要求都非常高,因为一个篮子里有十几个鸡蛋,篮子一定要足够牢靠才是。
14公共服务:我们指的是邮件服务器、文件服务器、DNS服务器、域控服务器这类服务器。通常情况我们会部署两台DNS服务器作为互相备份,域控主服务器也会拥有一台备份服务器(专用的或非专用的),所以对于可靠性,无需达到苛刻的地步。至于邮件服务器,至少需要具备足够的硬件可靠性和容量大小,这主要是为了对邮件数据负责,因为很多用户没有保存和归档邮件数据的习惯,当他们重装系统后,总会依赖重新下载服务器上的数据。至于性能问题,我们认为需要评估用户数量才能决定。
15数据库:我们最后讨论的应用,也是要求最高,最重要的服务器。无论你使用的是MySQL、SQLServer还是Oralce,一般情况下,我们认为它需要足够快的CPU,足够大的内存,足够稳定可靠的硬件。单路至强CPU/4GB内存/Raid1绝对是入门配置。关于准确的配置我们需要再讨论业务需求后才能作决定。
2:服务器需要支持多少用户访问服务器肯定是为了提供某种服务,而使用这些服务的用户同样是我们必须考虑的因素,有几个具体的问题你需要做出评估:有多少注册用户正常情况下有多少用户会同时在线访问每天同时在线访问的最高峰值大概是多少这些问题,对我们决定采用什么样的CPU,多大的内存有着至关重要的影响。51IDC建议你的技术人员和业务部门坐在一起来讨论这几个问题,最后甚至需要按照特定的技术模型和算法,将这些数字转化为一些更具体的技术数字,例如并发多少个连接(很多时候,用户数与连接数不是一个概念)。同时,你还要对未来的用户增长做一个尽可能准确的预测和规划,你的服务器需要支持越来越多的用户。
3:需要多大空间来存储数据我们需要从两个角度来计算这个问题,一个角度是有哪些类别的数据,包括: *** 作系统本身占用的空间、安装应用程序所需要的空间、应用程序所产生的数据、数据库、日志文件、邮件数据等等,如果是Web20类的网站,你还要计算每个用户的存储空间;另一个角度是从时间轴来考虑,这些数据每天都在增长,你至少要为未来1年(我们建议2~3年)的数据增长做个准确的测算,这可能仍然需要你的软件开发人员和业务人员一起提供足够的信息。最后你仍然需要为计算出来的数字结果乘15左右的系数,方便维护的时候做各种数据备份和文件转移 *** 作。
4我的业务有多重要:你需要根据自身的业务领域,来遵循一些要求,我们在下面举几个简单的例子,帮助你理解这些服务器对可靠性、数据完整性等方面的要求:
41如果你的服务器用来运行一个WordPress博客,与朋友们分享观点。那么我相信,一台酷睿服务器,1G内存外加一块160GB的硬盘就足够了。就算服务器出现了一点硬件故障,导致几个小时甚至一两天不能提供访问,生活会照常继续,天也不会塌下来。
42如果你的服务器用来作为测试平台,那么就不会如生产环境那样,对可靠性有极高的要求,你所需要的可能只是做好例行的数据备份,服务器宕机后,能有个人在今天把问题解决掉就OK了
43如果你是一个电子商务公司,服务器正在运行电子商务网站平台,那么请一定要像重视女朋友一样重视服务器,当硬件发生故障而导致宕机,你需要对以下危言耸听的后果做好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干,公司运营陷入瘫痪、数据丢失(这是最痛苦最灾难的结果,我们经历了太多这样的案例,它甚至会导致一个公司就此消亡)在这里,我们其实只需要简单讨论你的业务对服务器硬件可靠性的要求。换言之,如果你觉得业务不能承担硬盘损坏带来的停机或数据丢失风险,那么一定要选择一个合适的Raid卡,对于冗余电源问题,道理一样。(全面解决这个问题,不单考虑单个服务器的硬件,还需要结合系统架构的规划设计和运维管理来分析,这部分我们将单独撰写文章来讨论。)
在完成以上问题后,我们接下来就可以决定这些具体选项:
选择什么CPU
回忆一下上面”服务器运行什么应用“和“需要支持多少用户访问”两个问题的答案,这将帮助我们来选择合适的CPU。毫无疑问,CPU的主频越高,其性能也更高;两个CPU要比一个CPU来得更爽,至强肯定比酷睿更生猛。但我们究竟需要选择怎样的CPU我们在这里为你提供一些常见情况下的建议:
(1)如果你的业务刚刚起步,预算不是很充足,建议你选择一款经典酷睿服务器,毕竟51IDC的E5300服务器最便宜只需要450块钱一个月。而且,以后你可以根据业务发展情况,随时升级到更高配置的服务器。
(2)如果你需要在一台服务器同时运行多种应用服务,例如Net+Exchange+SQLServer,那么一个单路至强(例如X3330)或新一代酷睿I3/I7(双核四线程)将是最佳的选择。虽然从技术角度,这不是一个好主意,但至少能够帮你节约一大笔成本。
(3)如果你的服务器运行SQLServer、MySQL或者Oracle,而且目前有几百个用户同时在线,未来还会不断增长,那么你至少应该选择安装一个E5504(或更高主频)的至强服务器。当半年后负载越来越大的时候,可以选择增加一个CPU。
(4)如果你需要一台游戏服务器,那么我们建议你选择一台单路或双路的至强服务器。需要注意的是,使用双路CPU需要应用程序的支持,如果应用程序本身没有对双路CPU进行代码优化,就不会带来性能的显著提升,而且将造成投资的极大浪费。
需要多大的内存
同样,”服务器运行什么应用“和“需要支持多少用户访问”两个问题的答案,也将帮助我们来选择合适的内存容量。相比于CPU,我们更认为内存(RAM)是影响性能的最关键因素。因为在相当多正在运行的服务器中,我们发现CPU利用率一般都在10%~30%之间,甚至更低。但我们发现由于内存容量不够而导致服务器运行缓慢的案例比比皆是,如果服务器不能分配足够的内存给应用程序,应用程序就需要通过缓慢的硬盘接口来交换读写数据,这将导致网站慢的令人无法接受。内存大小主要取决于服务器的用户数量,当然也和应用软件对内存的最低需求和内存管理机制有关系,所以,最好由你的程序员或软件开发商给你最佳的内存配置建议。我们同样在下面给出了一些常见应用环境下的内存配置建议:
(1)无论是Windows下的`IIS还是Linux下的Apache,一般情况下Web前端服务器不需要配置特别高的内存,尤其是在集群架构中,1GB-2GB就已足够。只有当几千个并发用户,并运行动态脚本的时候,我们才会考虑使用4GB或更高的内存。
(2)对于运行Tomcat、Resin、WebLogic、Websphere或Net这样的应用服务器,2GB内存应该是基准配置。更准确数字需要根据用户数量和技术架构来确定。
(3)数据库服务器的内存由数据库实例的数量、表大小、索引、用户数来决定,一般建议配置4GB以上的内存,我们甚至在很多的客户案例中使用了24GB到48GB的内存。
(4)诸如Imail、Notes、Exchange这样的邮件服务器对内存的要求也并不高,1GB-2GB就可以满足了。
(5)对于一台文件服务器,1GB内存可能就足够了。
(6)还有一些特殊的服务器,我们需要为之配置尽可能高的内存容量,包括Squid,Varnish这样的缓存服务器,和Memcached Server。事实上,上面的数字已经足够慷慨,由于内存技术的不断进化和价格不断降低,我们才得以近乎奢侈的讨论4G、8G、16GB这些曾经不可想象的内存容量。早在2000年的时候,我面对的大多数服务器都是256MB、512MB内存,1GB已经算是高配,而那时同样也需要满足大量用户的访问。所以,除了花钱购买内存来满足应用程序的贪婪之外,系统优化和内存管理仍然是我们需要重视的问题。需要怎样的硬盘存储系统硬盘存储系统的选择和配置是整个服务器系统里最为复杂的一部分,我们需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否需要Raid卡,Raid卡的型号和Raid级别等问题。甚至在一些高可靠性高性能的应用环境中,我们还需要考虑使用怎样的外部存储系统(SAN、NAS或DAS)。
网卡的问题:
如果你的基础架构是多服务器环境,而且服务器之间有大量的数据交换,那么我们建议你为每台服务器配置两个或更多的网卡,一个用来对外提供服务,另一个用来做内部数据交换。如果你对安全的要求特别高,我们甚至可以单独安装一个用于系统管理和日常维护的网卡。至于网卡端口的速率问题,这主要取决于你对带宽流量的评估。大多数情况下,百兆网卡足够用来对外提供服务,而内部数据交换建议使用千兆网卡。但话说回来,除了经典酷睿服务器之外,我们现在很难找到百兆接口的服务器主板了。还有一种情况需要注意,如果你选择51IDC的数据备份服务(Managed Backup Service),则需要一块单独的网卡连接到专有的数据备份网络中,进行每天的数据备份,这会带来几个好处:不会占用宝贵的外网带宽、保证数据传输的安全、提供快速的数据备份速度。我们非常希望这篇文章能够帮助你为服务器选择合适的硬件配置,如果你阅读后发现有不正确的地方,请在评论中指出来,我们会及时更新并感谢你的热情指正。
常用的有:WEB:网站服务器FTP:文件传输服务器
MAIL:邮件服务器
:虚拟专网服务器
DHCP:自动分配IP服务器
DNS:域名解释服务器
PROXY:代理服务器
PRINT:打印服务器
这些就是一般常用的,还有一些不常用的如流媒和负载均衡等,有些企业,内网还配有域控制器和内网文件服务器、流量监控等内网管理的服务,有兴趣可以一起探讨一下,希望我的回答对你有帮助。
我本军团:助人为本,以本会友表面粗糙度。
上海文广新闻传媒集团;上海东方传媒集团;上海东方传媒集团有限公司;上海文广集团;上海文广传媒集团;
[例句]JustreceivedmynewpairofUltimateEarsxSMGcustomizedearmonitorsinmyfavouritepianowhite刚刚获得了我最喜欢的钢琴白我的终极耳朵x冲锋q定制耳显示器新鞋。两台以上exchange主要做成前后端服务器,前端服务器负责用户登录,共它N台服务器用来负载平衡。
至于备份嘛,少见。
exchange的日志功能很强大,只要不启用循环日志就好。然后做每天的备份计划就好了。
域控制器可以同步域信息,不过exchange双机同步真没见过。
nginx是一个功能非常强大的web服务器加反向代理服务器,同时又是邮件服务器等等
在项目使用中,使用最多的三个核心功能是反向代理、负载均衡和静态服务器
这三个不同的功能的使用,都跟nginx的配置密切相关,nginx服务器的配置信息主要集中在nginxconf这个配置文件中,并且所有的可配置选项大致分为以下几个部分
main # 全局配置
events { # nginx工作模式配置
}
>
server { # 服务器主机配置
location { # 路由配置
}
location path {
}
location otherpath {
}
}
server {
location {
}
}
upstream name { # 负载均衡配置
}
}
如上述配置文件所示,主要由6个部分组成:
main:用于进行nginx全局信息的配置
events:用于nginx工作模式的配置
>
server:用于进行服务器访问信息的配置
location:用于进行访问路由的配置
upstream:用于进行负载均衡的配置
随着国内互联网行业的快速发展,服务器托管不再像以前一样是很陌生的领域,甚至很多有这些需求的人对IDC行业和其具体的业务了解也非常有限。比如我们为什么选择服务器托管?这项业务能为我们带来什么好处?服务器托管需要考虑的五个因素:
客户在选择服务器时,优先考虑的应该是托管所需要的应用服务,然后确定服务需要的硬件和软件的配置
企业在建设网站或是开展电子商务时,未必需要高档或是价格昂贵的服务器,也不一定需要在IDC租用很大的带宽。完全可以根据自己的实际应用需求,来决定决定购买自己的服务器品牌和配置标准,如果做免费电子邮件服务,那么存储器一定要大些,可以采用多个硬盘或是磁盘阵列,甚至是网络存储设备;如果有数据库查询服务,那么内存一定要大些;如果网站的访问量很大,就需要采用负载均衡技术;如果数据量很大,那么数据备份和意外事故的数据恢复技术一定要强。总体来说,企业选择服务器时,一定要从自己的应用需求出发来选择品牌和服务器的配置,没有必要选择贵的,能满足自己的需求。
高配置不等于高性能,稳定性和扩展性比较重要
服务器的各个组成部分是一个有机的整体,彼此相联系和互相影响。在选择服务器时一定要考虑到各部分的兼容性,从而达到配置能发挥的性能。服务器重要的指标就是稳定性,尤其是IDC内运行的服务器,它必须是24×7×365的工作时间,所以对服务器的稳定性就要求很高了,必须能保证它们的稳定、安全、正常地工作。客户托管服务器后,随着客户访问量和服务变化,服务器需要不断地增加或是减少相关的软硬件,以达到不断地提高服务水平和服务能力,所以服务器一定要有很强的可扩展性,为客户提供可扩展的空间。
通用服务器向专用服务器发展,易用性和专用性非常明显
随着互联网的发展,客户对服务器的要求也在不断提高和变化。因此,目前的通用服务器将会逐渐地向专业服务器转变,以电子邮件为例,电子邮件服务以前只需要在任何一台服务上装上一套电子邮件软件即可以提供电子邮件服务,不管它的稳定性能如何,也不管它处理邮件的能力如何,只要能用就可以。
但事实远不如想象的那么简单,对电子邮件的服务与对Web服务是不同的,稳定性和服务器的响应速度非常重要。所以,需要有专用服务器来提供服务。未来企业邮局服务器的发展趋势应该是易用性和专用性,服务器的选择和配置都应该相对简单,不需要有太高的技术门槛,并且专用性的发展趋势会非常的明显,什么样的服务就会有什么样的特点,不同的特点就需要不同的产品来满足他的要求。
硬件和软件、网络资源共享是发展趋势
IDC用户的一个重要特点就是资源的可共享性,这一特点在目前的IDC用户中还无法得以体现,不同客户因考虑自己数据和信息的安全性,不可能与其它的客户共享硬件和软件资源。但是未来的发展趋势,不同的客户可能共享IDC提供的网络存储、增值服务、应用服务等各类型资源。服务器中的部分设备可以达到共享,达到资源的优化和成本的降低,提高资源的利用率。
软件与硬件互补性强,综合考虑选择标准
客户在选择服务器时应该从软件与硬件两方面来考虑。如果要运行大量应用软件,则需要大的内存;如果需要负载大访问量,就需要考虑较大的内存。硬件与软件的配合良好才能发挥服务器的良好性能,仅仅追求服务器的硬件高档化,如果没有软件的配合,也无法保证服务的高性能和稳定性。因此,在选择服务器时应该从两方面综合考虑,以综合指标来选择服务器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)