十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下载这个 EFI程序,或者是下载该帖的附件解压,(MD5: 02C3E0E4CFBE8266D045BD3DF62D0135)将这个 BOOTX64.EFI 复制到用FAT32格式化的U盘的\EFI\BOOT\目录内,用U盘启动电脑(只要插着U盘电脑就会从U盘启动了,无需BIOS设置),将看到如下显示:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、网络空间、营销软件、网站建设、上党网站维护、网站推广。
引用:
Welcome to GRUB!
Entering rescue mode...
error: file not found
grub rescue
输入命令
setup_var 0x1af 0x1
回车,重启电脑,VT应该就被打开了。(以上命令的圈圈都是数字零)
警告!风险自担!千万不要输错命令了!偏移量一定要正确!改错了偏移量将可能导致无法开机需要送修客服!(切断CMOS电池都没用)
目前已确认该方法能在以下版本的BIOS工作:
Sony VGN-Z11, V: M3a R2168M3 05/20/2009
Sony VGN-Z36GD, V: R3054M3
Sony VGN-Z540, V: R2168M3
Sony VGN-Z31, V: M3b R3054M3 05/19/2009
Sony VGN-Z21, V: M3a R2168M3
Sony VGN-Z31, V: R3052M3
如何开启BIOS高级设置菜单
只需要更改另一个偏移量的变量值即可,输入命令:
setup_var 0x25a 0x1
重启
这样就可以直接在BIOS里面随时控制开启关闭VT了,当然还包括其他一系列高级的东西比如AHCI、TXT之类的~大家慢慢玩去吧~装XP、Server 03的玩家们有福了!貌似不用集成SATA驱动了,轻松降级XP!
确认是否成功启动了VT的标准:是否能成功启动64位虚拟机,或者是否能使用Windows 7的XP模式
OK,现在是时候来测试一下到底 VT 对 32 位系统有没有性能上的影响了。
理论上来说,硬件虚拟(VT-x)相对于软件模拟(Binary Translation)的性能提升在于虚拟内核态运行的代码,也就是说提权到0环的时候影响最大。(什么是Kernel time?Windows用户开启任务管理器,性能-显示-显示内核时间,红线就是内核占用的CPU了。)为了验证这一点,笔者进行了以下测试:
测试平台:
VMWare 6.5.2
Host OS: Windows Server 2008 Enterprise SP2 32-bit
Guest OS:Ubuntu 6.06 32-bit
测试项目:
1、编译 PostgreSQL 的源代码
2、用 Firefox 2.0 运行 Peacekeeper 测试浏览器性能
为了保证数据的一致性,所有测试项均运行了两次,保证没有太大的差异。
结果:
VT disabled in bios, force "Binary Translation":
Jul 21 20:16:53.208: vmx| HV Settings: virtual exec = 'software'; virtual mmu = 'software'
Compile PostgreSQL:
real 3m54.795s
user 2m46.506s
sys 0m54.479s
real 3m50.576s
user 2m45.050s
sys 0m52.091s
Peacekeeper:
358
342
VT enabled in bios, force "VT-X":
Jul 21 20:42:53.937: vmx| HV Settings: virtual exec = 'hardware'; virtual mmu = 'software'
Compile PostgreSQL:
real 2m51.950s
user 2m11.012s
sys 0m29.426s
real 2m49.712s
user 2m11.464s
sys 0m27.054s
Peacekeeper:
362
384
可以看出,开启 VT 对于内核态的运算性能有很明显的提升,大概快 100%!不过开启 VT 对于用户态的运算就没有那么大的提升了,所以 Peacekeeper 的分数差别不大,编译过程中用户态消耗的时间差别也不大。
空间数据又称几何数据,它用来表示物体的位置、形态、大小分布等各方面的信息,是对现世界中存在的具有定位意义的事物和现象的定量描述。根据在计算机系统中对地图是对现实教想的存储组织、处理方法的不同,以及空间数据本身的几何特征,空间数据又可分为图形数据和图像数据。
空间数据包括以下五种类型:
1、地图数据:这类数据主要来源于各种类型的普通地图和专题地图,这些地图的内容非常丰富。
2、影像数据:这类数据主要来源于卫星、航空遥感,包括多平台、多层面、多种传感器、多时相、多光谱、多角度和多种分辨率的遥感影像数据,构成多元海量数据。
3、地形数据:这类数据来源于地形等高线图的数字化,已建立的数据高程模型(DEM)和其他实测的地形数据。
4、属性数据:这类数据主要来源于各类调查统计报告、实测数据、文献资料等。
5、混合数据:这类数据来源于卫星、航空遥感与各种类型的普通地图和专题地图形成多方面数据。
空间数据结构是空间数据适合于计算机存储、管理、处理的逻辑结构,是空间数据在计算机内的组织和编码形式,是地理实体的空间排列和相互关系的抽象描述。它是对空间数据的一种理解和解释。
空间数据结构又是指空间数据的编排方式和组织关系。空间数据编码是指空间数据结构的具体实现,是将图形数据、影像数据、统计数据等资料按一定的数据结构转换为适合计算机存储和处理的形式。不同数据源采用不同的数据结构处理,内容相差极大,计算机处理数据的效率很大程度取决于数据结构。
扩展资料:
空间数据库管理系统是空间数据库的核心软件,将对空间数据和属性数据进行统一管理,为GIS应用开发提供空间数据库管理系统除了必须具备普通数据库管理系统的功能外,还具有以下三方面研究内容:
1、空间数据存储管理,实现空间数据强大的基础平台。和属性数据的统一存储和管理,提高数据的存储性能和共享程度,设计实现空间数据的索引机制,为查询处理提供快速可靠的支撑环境。
2、支持空间查询的SQL语言,参照SQL-92和OpenGIS标准,对核心SQL进行扩充,使之支持标准的空间运算,具有最短路径、连通性等空间查询功能。
3、查询,供相关人士查询数据。
参考资料来源:百度百科-空间数据
本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。
在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:
3.1 单机架构
以淘宝作为例子。在网站最初时,应用数量与用户数都较少,可以把Tomcat和数据库部署在同一台服务器上。浏览器往发起请求时,首先经过DNS服务器(域名系统)把域名转换为实际IP地址10.102.4.1,浏览器转而访问该IP对应的Tomcat。
3.2 第一次演进:Tomcat与数据库分开部署
Tomcat和数据库分别独占服务器资源,显著提高两者各自性能。
3.3 第二次演进:引入本地缓存和分布式缓存
在Tomcat同服务器上或同JVM中增加本地缓存,并在外部增加分布式缓存,缓存热门商品信息或热门商品的html页面等。通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。其中涉及的技术包括:使用memcached作为本地缓存,使用Redis作为分布式缓存,还会涉及缓存一致性、缓存穿透/击穿、缓存雪崩、热点数据集中失效等问题。
3.4 第三次演进:引入反向代理实现负载均衡
在多台服务器上分别部署Tomcat,使用反向代理软件(Nginx)把请求均匀分发到每个Tomcat中。此处假设Tomcat最多支持100个并发,Nginx最多支持50000个并发,那么理论上Nginx把请求分发到500个Tomcat上,就能抗住50000个并发。其中涉及的技术包括:Nginx、HAProxy,两者都是工作在网络第七层的反向代理软件,主要支持http协议,还会涉及session共享、文件上传下载的问题。
3.5 第四次演进:数据库读写分离
把数据库划分为读库和写库,读库可以有多个,通过同步机制把写库的数据同步到读库,对于需要查询最新写入数据场景,可通过在缓存中多写一份,通过缓存获得最新数据。其中涉及的技术包括:Mycat,它是数据库中间件,可通过它来组织数据库的分离读写和分库分表,客户端通过它来访问下层数据库,还会涉及数据同步,数据一致性的问题。
3.6 第五次演进:数据库按业务分库
把不同业务的数据保存到不同的数据库中,使业务之间的资源竞争降低,对于访问量大的业务,可以部署更多的服务器来支撑。这样同时导致跨业务的表无法直接做关联分析,需要通过其他途径来解决,但这不是本文讨论的重点,有兴趣的可以自行搜索解决方案。
3.7 第六次演进:把大表拆分为小表
比如针对评论数据,可按照商品ID进行hash,路由到对应的表中存储;针对支付记录,可按照小时创建表,每个小时表继续拆分为小表,使用用户ID或记录编号来路由数据。只要实时操作的表数据量足够小,请求能够足够均匀的分发到多台服务器上的小表,那数据库就能通过水平扩展的方式来提高性能。其中前面提到的Mycat也支持在大表拆分为小表情况下的访问控制。
这种做法显著的增加了数据库运维的难度,对DBA的要求较高。数据库设计到这种结构时,已经可以称为分布式数据库,但是这只是一个逻辑的数据库整体,数据库里不同的组成部分是由不同的组件单独来实现的,如分库分表的管理和请求分发,由Mycat实现,SQL的解析由单机的数据库实现,读写分离可能由网关和消息队列来实现,查询结果的汇总可能由数据库接口层来实现等等,这种架构其实是MPP(大规模并行处理)架构的一类实现。
目前开源和商用都已经有不少MPP数据库,开源中比较流行的有Greenplum、TiDB、Postgresql XC、HAWQ等,商用的如南大通用的GBase、睿帆 科技 的雪球DB、华为的LibrA等等,不同的MPP数据库的侧重点也不一样,如TiDB更侧重于分布式OLTP场景,Greenplum更侧重于分布式OLAP场景,这些MPP数据库基本都提供了类似Postgresql、Oracle、MySQL那样的SQL标准支持能力,能把一个查询解析为分布式的执行计划分发到每台机器上并行执行,最终由数据库本身汇总数据进行返回,也提供了诸如权限管理、分库分表、事务、数据副本等能力,并且大多能够支持100个节点以上的集群,大大降低了数据库运维的成本,并且使数据库也能够实现水平扩展。
3.8 第七次演进:使用LVS或F5来使多个Nginx负载均衡
由于瓶颈在Nginx,因此无法通过两层的Nginx来实现多个Nginx的负载均衡。图中的LVS和F5是工作在网络第四层的负载均衡解决方案,其中LVS是软件,运行在操作系统内核态,可对TCP请求或更高层级的网络协议进行转发,因此支持的协议更丰富,并且性能也远高于Nginx,可假设单机的LVS可支持几十万个并发的请求转发;F5是一种负载均衡硬件,与LVS提供的能力类似,性能比LVS更高,但价格昂贵。由于LVS是单机版的软件,若LVS所在服务器宕机则会导致整个后端系统都无法访问,因此需要有备用节点。可使用keepalived软件模拟出虚拟IP,然后把虚拟IP绑定到多台LVS服务器上,浏览器访问虚拟IP时,会被路由器重定向到真实的LVS服务器,当主LVS服务器宕机时,keepalived软件会自动更新路由器中的路由表,把虚拟IP重定向到另外一台正常的LVS服务器,从而达到LVS服务器高可用的效果。
此处需要注意的是,上图中从Nginx层到Tomcat层这样画并不代表全部Nginx都转发请求到全部的Tomcat,在实际使用时,可能会是几个Nginx下面接一部分的Tomcat,这些Nginx之间通过keepalived实现高可用,其他的Nginx接另外的Tomcat,这样可接入的Tomcat数量就能成倍的增加。
3.9 第八次演进:通过DNS轮询实现机房间的负载均衡
在DNS服务器中可配置一个域名对应多个IP地址,每个IP地址对应到不同的机房里的虚拟IP。当用户访问时,DNS服务器会使用轮询策略或其他策略,来选择某个IP供用户访问。此方式能实现机房间的负载均衡,至此,系统可做到机房级别的水平扩展,千万级到亿级的并发量都可通过增加机房来解决,系统入口处的请求并发量不再是问题。
3.10 第九次演进:引入NoSQL数据库和搜索引擎等技术
当数据库中的数据多到一定规模时,数据库就不适用于复杂的查询了,往往只能满足普通查询的场景。对于统计报表场景,在数据量大时不一定能跑出结果,而且在跑复杂查询时会导致其他查询变慢,对于全文检索、可变数据结构等场景,数据库天生不适用。因此需要针对特定的场景,引入合适的解决方案。如对于海量文件存储,可通过分布式文件系统HDFS解决,对于key value类型的数据,可通过HBase和Redis等方案解决,对于全文检索场景,可通过搜索引擎如ElasticSearch解决,对于多维分析场景,可通过Kylin或Druid等方案解决。
当然,引入更多组件同时会提高系统的复杂度,不同的组件保存的数据需要同步,需要考虑一致性的问题,需要有更多的运维手段来管理这些组件等。
3.11 第十次演进:大应用拆分为小应用
按照业务板块来划分应用代码,使单个应用的职责更清晰,相互之间可以做到独立升级迭代。这时候应用之间可能会涉及到一些公共配置,可以通过分布式配置中心Zookeeper来解决。
3.12 第十一次演进:复用的功能抽离成微服务
如用户管理、订单、支付、鉴权等功能在多个应用中都存在,那么可以把这些功能的代码单独抽取出来形成一个单独的服务来管理,这样的服务就是所谓的微服务,应用和服务之间通过HTTP、TCP或RPC请求等多种方式来访问公共服务,每个单独的服务都可以由单独的团队来管理。此外,可以通过Dubbo、SpringCloud等框架实现服务治理、限流、熔断、降级等功能,提高服务的稳定性和可用性。
3.13 第十二次演进:引入企业服务总线ESB屏蔽服务接口的访问差异
通过ESB统一进行访问协议转换,应用统一通过ESB来访问后端服务,服务与服务之间也通过ESB来相互调用,以此降低系统的耦合程度。这种单个应用拆分为多个应用,公共服务单独抽取出来来管理,并使用企业消息总线来解除服务之间耦合问题的架构,就是所谓的SOA(面向服务)架构,这种架构与微服务架构容易混淆,因为表现形式十分相似。个人理解,微服务架构更多是指把系统里的公共服务抽取出来单独运维管理的思想,而SOA架构则是指一种拆分服务并使服务接口访问变得统一的架构思想,SOA架构中包含了微服务的思想。
3.14 第十三次演进:引入容器化技术实现运行环境隔离与动态服务管理
目前最流行的容器化技术是Docker,最流行的容器管理服务是Kubernetes(K8S),应用/服务可以打包为Docker镜像,通过K8S来动态分发和部署镜像。Docker镜像可理解为一个能运行你的应用/服务的最小的操作系统,里面放着应用/服务的运行代码,运行环境根据实际的需要设置好。把整个“操作系统”打包为一个镜像后,就可以分发到需要部署相关服务的机器上,直接启动Docker镜像就可以把服务起起来,使服务的部署和运维变得简单。
在大促的之前,可以在现有的机器集群上划分出服务器来启动Docker镜像,增强服务的性能,大促过后就可以关闭镜像,对机器上的其他服务不造成影响(在3.14节之前,服务运行在新增机器上需要修改系统配置来适配服务,这会导致机器上其他服务需要的运行环境被破坏)。
3.15 第十四次演进:以云平台承载系统
系统可部署到公有云上,利用公有云的海量机器资源,解决动态硬件资源的问题,在大促的时间段里,在云平台中临时申请更多的资源,结合Docker和K8S来快速部署服务,在大促结束后释放资源,真正做到按需付费,资源利用率大大提高,同时大大降低了运维成本。
所谓的云平台,就是把海量机器资源,通过统一的资源管理,抽象为一个资源整体,在之上可按需动态申请硬件资源(如CPU、内存、网络等),并且之上提供通用的操作系统,提供常用的技术组件(如Hadoop技术栈,MPP数据库等)供用户使用,甚至提供开发好的应用,用户不需要关系应用内部使用了什么技术,就能够解决需求(如音视频转码服务、邮件服务、个人博客等)。在云平台中会涉及如下几个概念: