A. 主存储器常采用并行存储器的目的
主存储器常采用并行存储器的目的是通过并行主存储器和设置Cache来提高速度。
双端口存储器和多体交叉存储器属于并行存储器。
目前通常采用多级存储器体系结构,有高速缓冲存储器、主存储器、外存储器。
B. 阿姆达尔定律的并行存储性能中的阿姆达尔定律
并行存储系统的性能分析可以通过简单的性能模型展开,这其中主要就是阿姆达尔定律。阿姆达尔定律是一个非常简单而通用的并行处理性能模型。这里以程序的并行运行为例说明该定律,其他情况比较容易进行推推导分析。由于单个程序内部不一定全部可以实现并行处理。那么假设f为程序中必须进行串行操作的部分比率,其余的1-f部分则认为可以完全在硬件上并行执行,而且P表示硬件的并行度。P在不同形式的计算机系统中代表着不同的含义:
(1)在MIMD系统中,P是处理器的数目;
(2)在SIMD系统中,P是正在处理的数据数目;
(3)在流水方式工作的SIMD系统中,P是矢量速度和标量速度的比;
(4)在流水方式工作的MIMD系统中,P是流水线功能段的数目。
为了在并行度p的硬件上获得50%以上的效率,穿行操纵部分比率不能超过1/(P-1)。随着P的增加,相应条件也越来越难以满足。最早应用Amdahl定律对串行处理进行性能评价,但是在各种并行工作环境中Amdahl定律也非常有用。例如:在并行度很高的系统中,轻微的非并行代码会对系统带来很大的影响;快速的矢量处理器必须具有一个快速的标量处理器以获得其峰值性能的相当大部分能力;对当前穿行执行的小部分代码进行并行完成也可以增加相当大的效率。
虽然Amdahl定律建立了一个非常简单的行囊模型,但也不能过于简单化使用。系统规模,特别是处理器数目P通常为了处理更大的问题而不断增加,而通常问题的规模的增加并不能显着增加串行工作量。这种情况下,f与问题大小成反比。如果问题大小岁并行度P增加而增大,那么随着问题和系统规模的增大,性能表现呈现出收缩性。在计算机系统中,Amdahl定律也可表述为,对系统内某部分的并行化改进造成的整体性能提升量取决于该部分在整体过程中执行的时间,即经常性事件或其部分的改进造成的整体性能得到较大提升。加速比也可以表示为使用改进方式完成整个任务时间的比值。实际上有两个主要因素影响加速比,第一个因素是需要改进提高速度部分在总执行时间中所占的比值。实际上有两个主要因素影响加速比,第一个因素是需要改进提高速度部分在总执行时间中所占的比例。譬如,1s完成的人物其中有200ms可以改进,那么该比例救赎20%,可以称为改进比例。第二个因素是采用改进方式后相应部分速度提高的程度。可以用未改进情况下该部分执行时间与改进后执行时间的比值衡量。改进加速比一般都大于1。那么改进后的任务总时间为没有改进的部分执行时间和改进部分执行时间的和。
C. 如何设置使oracle10g性能最优 性能调优 步骤
一、 磁盘方面调优
1. 规范磁盘阵列
RAID 10比RAID5更适用于OLTP系统,RAID10先镜像磁盘,再对其进行分段,由于对数据的小规模访问会比较频繁,所以对OLTP适用。而RAID5,优势在于能够充分利用磁盘空间,并且减少阵列的总成本。但是由于阵列发出一个写入请求时,必须改变磁盘上已修改的块,需要从磁盘上读取“奇偶校验”块,并且使用已修改的块计算新的奇偶校验块,然后把数据写入磁盘,且会限制吞吐量。对性能有所影响,RAID5适用于OLAP系统。
2. 数据文件分布
分离下面的东西,避免磁盘竞争
Ø SYSTEM表空间
Ø TEMPORARY表空间
Ø UNDO表空间
Ø 联机重做日志(放在最快的磁盘上)
Ø 操作系统磁盘
Ø ORACLE安装目录
Ø 经常被访问的数据文件
Ø 索引表空间
Ø 归档区域(应该总是与将要恢复的数据分离)
例:
² /: System
² /u01: Oracle Software
² /u02: Temporary tablespace, Control file1
² /u03: Undo Segments, Control file2
² /u04: Redo logs, Archive logs, Control file4
² /u05: System, SYSAUX tablespaces
² /u06: Data1 ,control file3
² /u07: Index tablespace
² /u08: Data2
通过下列语句查询确定IO问题
select name ,phyrds,phywrts,readtim,writetim
from v$filestat a,v$datafile b
where a.file#=b.file# order by readtim desc;
3. 增大日志文件
u 增大日志文件的大小,从而增加处理大型INSERT,DELETE,UPDATE操作的比例
查询日志文件状态
select a.member,b.* from v$logfile a,v$log b where a.GROUP#=b.GROUP#
查询日志切换时间
select b.RECID,to_char(b.FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') start_time,a.RECID,to_char(a.FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') end_time,round(((a.FIRST_TIME-b.FIRST_TIME)*25)*60,2) minutes
from v$log_history a ,v$log_history b
where a.RECID=b.RECID+1
order by a.FIRST_TIME desc
增大日志文件大小,以及对每组增加日志文件(一个主文件、一个多路利用文件)
u 增大LOG_CHECKPOINT_INTERVAL参数,现已不提倡使用它
如果低于每半小时切换一次日志,就增大联机重做日志大小。如果处理大型批处理任务时频繁进行切换,就增大联机重做日志数目。
alter database add logfile member ‘/log.ora’ to group 1;
alter database drop logfile member ‘/log.ora’;
4. UNDO表空间
修改三个初始参数:
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=CLOUDSEA_UNDO
UNDO_RETENTION=<#of minutes>
5. 不要在系统表空间中执行排序
二、 初始化参数调优
32位的寻址最大支持应该是2的32次方,就是4G大小。但实际中32位系统(XP,windows2003等MS32位系统, ubuntu等linux32 位系统)要能利用4G内存,都是采用内存重映射技术。需要主板及系统的支持。如果关闭主板BIOS的重映射功能,系统将不能利用4G内存,可能只达3.5G.而在windows下看到的一般为3.25G。所以SGA设置为内存的40%,但不能超过3.25G
1. 重要初始化参数
l SGA_MAX_SIZE
l SGA_TARGET
l PGA_AGGREGATE_TARGET
l DB_CACHE_SIZE
l SHARED_POOL_SIZE
2. 调整DB_CACHE_SIZE来提高性能
它设定了用来存储和处理内存中数据的SGA区域大小,从内存中取数据比磁盘快10000倍以上
根据以下查询出数据缓存命中率
select sum(decode(name,'physical reads',value,0)) phys,
sum(decode(name,'db block gets',value,0)) gets,
sum(decode(name,'consistent gets',value,0)) con_gets,
(1- (sum(decode(name,'physical reads',value,0))/(sum(decode(name,'db block gets',value,0))+sum(decode(name,'consistent gets',value,0)) ) ))*100 Hitratio
from v$sysstat;
一个事务处理程序应该保证得到95%以上的命中率,命中率从90%提高到98%可能会提高500%的性能,ORACLE正在通过CPU或服务时间与等待时间来分析系统性能,不太重视命中率,不过现在的库缓存和字典缓存仍将命中率作为基本的调整方法。
在调整DB_CACHE_SIZE时使用V$DB_CACHE_ADVICE
select size_for_estimate, estd_physical_read_factor, estd_physical_reads
from v$db_cache_advice
where name = 'DEFAULT';
如果查询的命中率过低,说明缺少索引或者索引受到限制,通过V$sqlAREA视图查询执行缓慢的SQL
3. 设定DB_BLOCK_SIZE来反映数据读取量大小
OLTP一般8K
OLAP一般16K或者32K
4. 调整SHARED_POOL_SIZE以优化性能
正确地调整此参数可以同等可能地共享SQL语句,使得在内存中便能找到使用过的SQL语句。为了减少硬解析次数,优化对共享SQL区域的使用,需尽量使用存储过程、使用绑定变量
保证数据字典缓存命中率在95%以上
select ((1- sum(getmisses)/(sum(gets)+sum(getmisses)))*100) hitratio
from v$rowcache
where gets+getmisses <>0;
如果命中率小于 99%,就可以考虑增加shared pool 以提高library cache 的命中率
SELECT SUM(PINS) "EXECUTIONS",SUM(RELOADS) "CACHE MISSES WHILE EXECUTING",1 - SUM(RELOADS)/SUM(PINS)
FROM V$LIBRARYCACHE;
通常规则是把它定为DB_CACHE_SIZE大小的50%-150%,在使用了大量存储过程或程序包,但只有有限内存的系统里,最后分配为150%。在没有使用存储过程但大量分配内存给DB_CACHE_SIZE的系统里,这个参数应该为10%-20%
5. 调整PGA_AGGREGATE_TARGET以优化对内存的应用
u OLTP :totalmemory*80%*20%
u DSS: totalmemory*80%*50%
6. 25个重要初始化参数
² DB_CACHE_SIZE:分配给数据缓存的初始化内存
² SGA_TARGET:使用了自动内存管理,则设置此参数。设置为0可禁用它
² PGA_AGGREGATE_TARGET:所有用户PGA软内存最大值
² SHARED_POOL_SIZE:分配给数据字典、SQL和PL/SQL的内存
² SGA_MAX_SIZE:SGA可动态增长的最大内存
² OPTIMIZER_MODE:
² CURSOR_SHARING:把字面SQL转换成带绑定变更的SQL,可减少硬解析开销
² OPTIMIZER_INDEX_COST_ADJ:索引扫描成本和全表扫描成本进行调整,设定在1-10间会强制频繁地使用索引,保证索引可用性
² QUERY_REWRITE_ENABLED:用于启用具体化视图和基于函数的索引功能
² DB_FILE_MULTIBLOCK_READ_COUNT:对于全表扫描,为了更有效执行IO,此参数可在一次IO中读取多个块
² LOG_BUFFER:为内存中没有提交的事务分配缓冲区(非动态参数)
² DB_KEEP_CACHE_SIZE:分配给KEEP池或者额外数据缓存的内存
² DB_RECYCLE_CACHE_SIZE:
² DBWR_IO_SLAVES:如果没有异步IO,参数等同于DB_WRITER_PROCESSES模拟异步IO而分配的从SGA到磁盘的写入器数。如果有异步IO,则使用DB_WRITER_PROCESSES设置多个写程序,在DBWR期间更快地写出脏块
² LARGE_POOL_SIZE:分配给大型PLSQL或其他一些很少使用的ORACLE选项LARGET池的总块数
² STATISTICS_LEVEL:启用顾问信息,并可选择提供更多OS统计信息来改进优化器决策。默认:TYPICAL
² JAVA_POOL_SIZE:为JVM使用的JAVA存储过程所分配的内存
² JAVA_MAX_SESSIONSPACE_SIZE:跟踪JAVA类的用户会话状态所用内存上限
² MAX_SHARED_SERVERS:当使用共享服务器时的共享服务器上限
² WORKAREA_SIZE_POLICY:启用PGA大小自动管理
² FAST_START_MTTR_TARGET:完成一次崩溃恢复的大概时间/S
² LOG_CHECKPOINT_INTERVAL:检查点频率
² OPEN_CURSORS:指定了保存用户语句的专用区域大小,如此设置过高会导致ORA-4031
² DB_BLOCK_SIZE:数据库默认块大小
² OPTIMIZER_DYNAMIC_SAMPLING:控制动态抽样查询读取的块数量,对正在使用全局临时表的系统非常有用
三、 SQL调优1. 使用提示
1.1 改变执行路径
通过OPTIMIZER_MODE参数指定优化器使用方法,默认ALL_ROWS
Ø ALL_ROWS 可得最佳吞吐量执行查询所有行
Ø FIRST_ROWS(n) 可使优化器最快检索出第一行:
select /*+ FIRST_ROWS(1) */ store_id,… from tbl_store
1.2 使用访问方法提示
允许开发人员改变访问的实际查询方式,经常使用INDEX提示
Ø CLUSTER 强制使用集群
Ø FULL
Ø HASH
Ø INDEX 语法:/*+ INDEX (TABLE INDEX1,INDEX2….) */ COLUMN 1,….
当不指定任何INDEX时,优化器会选择最佳的索引
SELECT /*+ INDEX */ STORE_ID FROM TBL_STORE
Ø INDEX_ASC 8I开始默认是升序,所以与INDEX同效
Ø INDEX_DESC
Ø INDEX_COMBINE 用来指定多个位图索引,而不是选择其中最好的索引
Ø INDEX_JOIN 只需访问这些索引,节省了重新检索表的时间
Ø INDEX_FFS 执行一次索引的快速全局扫描,只处理索引,不访问具体表
Ø INDEX_SS
Ø INDEX_SSX_ASC
Ø INDEX_SS_DESC
Ø NO_INDEX
Ø NO_INDEX_FFS
Ø NO_INDEX_SS
1.3 使用查询转换提示
对于数据仓库非常有帮助
Ø FACT
Ø MERGE
Ø NO_EXPAND 语法:/*+ NO_EXPAND */ column1,…
保证OR组合起的IN列表不会陷入困境,/*+ FIRST_ROWS NO_EXPAND */
Ø NO_FACT
Ø NO_MERGE
Ø NO_QUERY_TRANSFORMATION
Ø NO_REWRITE
Ø NO_STAR_TRANSFORMATION
Ø NO_UNSET
Ø REWRITE
Ø STAR_TRANSFORMATION
Ø UNSET
Ø USE_CONCAT
1.4 使用连接操作提示
显示如何将连接表中的数据合并在一起,可用两提示直接影响连接顺序。LEADING指定连接顺序首先使用的表,ORDERED告诉优化器基于FROM子句中的表顺序连接这些表,并使用第一个表作为驱动表(最行访问的表)
ORDERED语法:/*+ ORDERED */ column 1,….
访问表顺序根据FROM后的表顺序来
LEADING语法:/*+ LEADING(TABLE1) */ column 1,….
类似于ORDER,指定驱动表
Ø NO_USE_HASH
Ø NO_USE_MERGE
Ø NO_USE_NL
Ø USE_HASH前提足够的HASH_AREA_SIZE或PGA_AGGREGATE_TARGET
通常可以为较大的结果集提供最佳的响应时间
Ø USE_MERGE
Ø USE_NL 通常可以以最快速度返回一个行
Ø USE_NL_WITH_INDEX
1.5 使用并行执行
Ø NO_PARALLEL
Ø NO_PARALLEL_INDEX
Ø PARALLEL
Ø PARALLEL_INDEX
Ø PQ_DISTRIBUTE
1.6 其他提示
Ø APPEND 不会检查当前所用块中是否有剩余空间,而直接插入到表中,会直接将数据添加到新的块中。
Ø CACHE 会将全表扫描全部缓存到内存中,这样可直接在内存中找到数据,不用在磁盘上查询
Ø CURSOR_SHARING_EXACT
Ø DRIVING_SITE
Ø DYNAMIC_SAMPLING
Ø MODEL_MIN_ANALYSIS
Ø NOAPPEND
Ø NOCACHE
Ø NO_PUSH_PRED
Ø NO_PUSH_SUBQ
Ø NO_PX_JOIN_FILTER
Ø PUSH_PRED
Ø PUSH_SUBQ 强制先执行子查询,当子查询很快返回少量行时,这些行可以用于限制外部查询返回行数,可极大地提高性能
例:select /*+PUSH_SUBQ */ emp.empno,emp.ename
From emp,orders
where emp.deptno=(select deptno from dept where loc=’1’)
Ø PX_JOIN_FILTER
Ø QB_NAME
2. 调整查询
2.1 在V$SQLAREA中选出最占用资源的查询
HASH_VALUE:SQL语句的Hash值。
ADDRESS:SQL语句在SGA中的地址。
PARSING_USER_ID:为语句解析第一条CURSOR的用户
VERSION_COUNT:语句cursor的数量
KEPT_VERSIONS:
SHARABLE_MEMORY:cursor使用的共享内存总数
PERSISTENT_MEMORY:cursor使用的常驻内存总数
RUNTIME_MEMORY:cursor使用的运行时内存总数。
SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。
MODULE,ACTION:用了DBMS_APPLICATION_INFO时session解析第一条cursor时信息
SORTS: 语句的排序数
CPU_TIME: 语句被解析和执行的CPU时间
ELAPSED_TIME: 语句被解析和执行的共用时间
PARSE_CALLS: 语句的解析调用(软、硬)次数
EXECUTIONS: 语句的执行次数
INVALIDATIONS: 语句的cursor失效次数
LOADS: 语句载入(载出)数量
ROWS_PROCESSED: 语句返回的列总数
select b.username,a.DISK_READS,a.EXECUTIONS,a.DISK_READS/decode(a.EXECUTIONS,0,1,a.EXECUTIONS) rds_exec_ratio,a.SQL_TEXT
from v$sqlarea a ,dba_users b
where a.PARSING_USER_ID=b.user_id and a.DISK_READS>100 order by a.DISK_READS desc;
2.2 在V$SQL中选出最占用资源的查询
与V$SQLAREA类似
select * from
(select sql_text,rank() over (order by buffer_gets desc) as rank_buffers,to_char(100*ratio_to_report(buffer_gets) over (),'999.99') pct_bufgets from v$sql)
where rank_buffers <11
2.3 确定何时使用索引
² 当查询条件只需要返回很少的行(受限列)时,则需要建立索引,不同的版本中这个返回要求不同
V5:20% V7:7% V8i,V9i:4% V10g: 5%
查看表上的索引
select a.table_name,a.index_name,a.column_name,a.column_position,a.table_owner
from dba_ind_columns a
where a.table_owner='CLOUDSEA'
² 修正差的索引,可使用提示来限制很差的索引,如INDEX,FULL提示
² 在SELECT 和WHERE中的列使用索引
如: select name from tbl where no=?
建立索引:create index test on tbl(name,no) tablespace cloudsea_index storage(….)
对于系统中很关键的查询,可以考虑建立此类连接索引
² 在一个表中有多个索引时可能出现麻烦,使用提示INDEX指定使用索引
² 使用索引合并,使用提示INDEX_JOIN
² 基于函数索引,由于使用了函数造成查询很慢.必须基于成本的优化模式,参数:
QUERY_REWRITE_ENALED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED (OR ENFORCED)
create index test on sum(test);
2.4 在内存中缓存表
将常用的相对小的表缓存到内存中,但注意会影响到嵌套循环连接上的驱动表
alter table tablename cache;
2.5 使用EXISTS 与嵌套子查询 代替IN
SELECT …FROM EMP WHERE DEPT_NO NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=’A’);
(方法一: 高效)
SELECT ….FROM EMP A,DEPT B WHERE A.DEPT_NO = B.DEPT(+) AND B.DEPT_NO IS NULL AND B.DEPT_CAT(+) = ‘A’
(方法二: 最高效)
SELECT ….FROM EMP E WHERE NOT EXISTS (SELECT ‘X’ FROM DEPT D WHERE D.DEPT_NO = E.DEPT_NO AND DEPT_CAT = ‘A’);
四、 使用STATSPACK和AWR报表调整等待和闩锁
1. 10GR2里的脚本
在$ORACLE_HOME/RDBMS/ADMIN下
Spcreate.sql 通过调用spcusr.sql spctab.sql 和spcpkg.sql创建STATSPACK环境,使用SYSDBA运行它
Spdrop.sql 调用sptab.sql和spsr.sql删除整个STATSPACK环境,使用SYSDBA运行它
Spreport.sql 这是生成报表的主要脚本,由PERFSTAT用户运行
Sprepins.sql 为指定的数据库和实例生成实例报表
Sprepsql.sql 为指定的SQL散列值生成SQL报表
Sprsqins.sql 为指定的数据库和实例生成SQL报表
Spauto.sql 使用DBMS_JOB自动进行统计数据收集(照相)
Sprepcon.sql 配置SQLPLUS变量来设置像阈值这样的内容的配置文件
Spurge.sql 删除给定数据库实例一定范围内的快照ID,不删除基线快照
Sptrunc.sql 截短STATSPACK表里所有性能数据
五、 执行快速系统检查1. 缓冲区命中率
查询缓冲区命中率
select (1 - (sum(decode(name, 'physical reads',value,0)) /
(sum(decode(name, 'db block gets',value,0)) +
sum(decode(name, 'consistent gets',value,0))))) * 100 "Hit Ratio"
from v$sysstat;
D. 简述SRAM,DRAM型存储器的工作原理
个人电脑的主要结构:
显示器
主机板
CPU
(微处理器)
主要储存器
(记忆体)
扩充卡
电源供应器
光盘机
次要储存器
(硬盘)
键盘
鼠标
尽管计算机技术自20世纪40年代第一台电子通用计算机诞生以来以来有了令人目眩的飞速发展,但是今天计算机仍然基本上采用的是存储程序结构,即冯·诺伊曼结构。这个结构实现了实用化的通用计算机。
存储程序结构间将一台计算机描述成四个主要部分:算术逻辑单元(ALU),控制电路,存储器,以及输入输出设备(I/O)。这些部件通过一组一组的排线连接(特别地,当一组线被用于多种不同意图的数据传输时又被称为总线),并且由一个时钟来驱动(当然某些其他事件也可能驱动控制电路)。
概念上讲,一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号,称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么),也可以是数据(指令的处理对象)。原则上,每一个“细胞”都是可以存储二者之任一的。
算术逻辑单元(ALU)可以被称作计算机的大脑。它可以做两类运算:第一类是算术运算,比如对两个数字进行加减法。算术运算部件的功能在ALU中是十分有限的,事实上,一些ALU根本不支持电路级的乘法和除法运算(由是使用者只能通过编程进行乘除法运算)。第二类是比较运算,即给定两个数,ALU对其进行比较以确定哪个更大一些。
输入输出系统是计算机从外部世界接收信息和向外部世界反馈运算结果的手段。对于一台标准的个人电脑,输入设备主要有键盘和鼠标,输出设备则是显示器,打印机以及其他许多后文将要讨论的可连接到计算机上的I/O设备。
控制系统将以上计算机各部分联系起来。它的功能是从存储器和输入输出设备中读取指令和数据,对指令进行解码,并向ALU交付符合指令要求的正确输入,告知ALU对这些数据做那些运算并将结果数据返回到何处。控制系统中一个重要组件就是一个用来保持跟踪当前指令所在地址的计数器。通常这个计数器随着指令的执行而累加,但有时如果指令指示进行跳转则不依此规则。
20世纪80年代以来ALU和控制单元(二者合成中央处理器,CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。
由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。一般可以分为四类:1)、数据移动(如:将一个数值从存储单元A拷贝到存储单元B)2)、数逻运算(如:计算存储单元A与存储单元B之和,结果返回存储单元C)3)、条件验证(如:如果存储单元A内数值为100,则下一条指令地址为存储单元F)4)、指令序列改易(如:下一条指令地址为存储单元F)
指令如同数据一样在计算机内部是以二进制来表示的。比如说,10110000就是一条Intel
x86系列微处理器的拷贝指令代码。某一个计算机所支持的指令集就是该计算机的机器语言。因此,使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说,它们通常只会关注一种或几种不同的机器语言。
更加强大的小型计算机,大型计算机和服务器可能会与上述计算机有所不同。它们通常将任务分担给不同的CPU来执行。今天,微处理器和多核个人电脑也在朝这个方向发展。
超级计算机通常有着与基本的存储程序计算机显着区别的体系结构。它们通常由者数以千计的CPU,不过这些设计似乎只对特定任务有用。在各种计算机中,还有一些微控制器采用令程序和数据分离的哈佛架构(Harvard
architecture)。
E. 对比sisd计算机系统,提高并行计算机系统浮点性能的方法有哪些
超级计算机(Supercomputers)通常是指由数百数千甚至更多的处理器(机)组成的、能计算普通PC机和服务器不能完成的大型复杂课题的计算机。超级计算机是计算机中功能最强、运算速度最快、存储容量最大的一类计算机,是国家科技发展水平和综合国力的重要标志。超级计算机拥有最强的并行计算能力,主要用于科学计算。在气象、军事、能源、航天、探矿等领域承担大规模、高速度的计算任务。在结构上,虽然超级计算机和服务器都可能是多处理器系统,二者并无实质区别,但是现代超级计算机较多采用集群系统,更注重浮点运算的性能,可看着是一种专注于科学计算的高性能服务器,而且价格非常昂贵。 1、服务器 专指某些高性能计算机,能通过网络,对外提供服务。相对于普通电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通电脑有所不同。服务器是网络的节点,存储、处理网络上80%的数据、信息,在网络中起到举足轻重的作用。它们是为客户端计算机提供各种服务的高性能的计算机,其高性能主要表高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。服务器的构成与普通电脑类似,也有处理器、硬盘、内存、系统总线等,但因为它是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。服务器主要有网络服务器(DNS、DHCP)、打印服务器、终端服务器、磁盘服务器、邮件服务器、文件服务器等。 2、工作站 是一种以个人计算机和分布式网络计算为基础,主要面向专业应用领域,具备强大的数据运算与图形、图像处理能力,为满足工程设计、动画制作、科学研究、软件开发、金融管理、信息服务、模拟仿真等专业领域而设计开发的高性能计算机。工作站最突出的特点是具有很强的图形交换能力,因此在图形图像领域特别是计算机辅助设计领域得到了迅速应用。典型产品有美国Sun公司的Sun系列工作站。 无盘工作站是指无软盘、无硬盘、无光驱连入局域网的计算机。在网络系统中,把工作站端使用的操作系统和应用软件被全部放在服务器上,系统管理员只要完成服务器上的管理和维护,软件的升级和安装也只需要配置一次后,则整个网络中的所有计算机就都可以使用新软件。所以无盘工作站具有节省费用、系统的安全性高、易管理性和易维护性等优点,这对网络管理员来说具有很大的吸引力。 无盘工作站的工作原理是由网卡的启动芯片(Boot ROM)以不同的形式向服务器发出启动请求号,服务器收到后,根据不同的机制,向工作站发送启动数据,工作站下载完启动数据后,系统控制权由Boot ROM转到内存中的某些特定区域,并引导操作系统。 根据不同的启动机制,比较常用无盘工作站可分为RPL 和PXE。RPL 为Remote Initial Program Load 的缩写,此技术常用于Windows95 中。PXE 是RPL 的升级品,它是Preboot Execution Environment的缩写。两者不同之处在于RPL 是静态路由,而PXE 是动态路由,其通信协议采用TCP/IP,实现了与Internet 连接高效而可靠,它常用于Windows98、Windows NT、Windows2000、Windows XP中 。 3、集线器 集线器(HUB)是一种共享介质的网络设备,它的作用可以简单的理解为将一些机器连接起来组成一个局域网,HUB 本身不能识别目的地址。集线器上的所有端口争用一个共享信道的宽带,因此随着网络节点数量的增加,数据传输量的增大,每节点的可用带宽将随之减少。另外,集线器采用广播的形式传输数据,即向所有端口传送数据。如当同一局域网内的A 主机给B 主机传输数据时,数据包在以HUB 为架构的网络上是以广播方式传输的,对网络上所有节点同时发送同一信息,然后再由每一台终端通过验证数据包头的地址信息来确定是否接收。其实接收数据的一般来说只有一个终端节点,而对所有节点都发送,在这种方式下,很容易造成网络堵塞,而且绝大部分数据流量是无效的,这样就造成整个网络数据传输效率相当低。另一方面由于所发送的数据包每个节点都能侦听到,容易给网络带来一些不安全隐患。 4、交换机 交换机(Switch)是按照通信两端传输信息的需要,用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称。广义的交换机就是一种在通信系统中完成信息交换功能的设备,它是集线器的升级换代产品,外观上与集线器非常相似,其作用与集线器大体相同。但是两者在性能上有区别:集线器采用的是共享带宽的工作方式,而交换机采用的是独享带宽方式。即交换机上的所有端口均有独享的信道带宽,以保证每个端口上数据的快速有效传输,交换机为用户提供的是独占的、点对点的连接,数据包只被发送到目的端口,而不会向所有端口发送,其它节点很难侦听到所发送的信息,这样在机器很多或数据量很大时,不容易造成网络堵塞,也确保了数据传输安全,同时大大的提高了传输效率,两者的差别就比较明显了。 5、路由器 路由器(Router)是一种负责寻径的网络设备,它在互联网络中从多条路径中寻找通讯量最少的一条网络路径提供给用户通信。路由器用于连接多个逻辑上分开的网络,为用户提供最佳的通信路径,路由器利用路由表为数据传输选择路径,路由表包含网络地址以及各地址之间距离的清单,路由器利用路由表查找数据包从当前位置到目的地址的正确路径,路由器使用最少时间算法或最优路径算法来调整信息传递的路径。路由器是产生于交换机之后,就像交换机产生于集线器之后,所以路由器与交换机也有一定联系,并不是完全独立的两种设备。路由器主要克服了交换机不能向路由转发数据包的不足。 交换机、路由器是一台特殊的网络计算机,它的硬件基础CPU、存储器和接口,软件基础是网络互联操作系统IOS。 交换机、路由器和PC机一样,有中央处理单元CPU,而且不同的交换机、路由器,其CPU一般也不相同,CPU是交换机、路由器的处理中心。 内存是交换机、路由器存储信息和数据的地方,CISCO交换机、路由器有以下几种内存组件: ROM(Read Only Memory)存储交换机、路由器加电自检(POST:Power-On Self-Test)、启动程序(Bootstrap Program)和部分或全部的IOS。交换机、路由器中的ROM是可擦写的,所以IOS是可以升级的。 RAM(Random Access Memory)与PC机上的随机存储器相似,提供临时信息的存储,同时保存着当前的路由表和配置信息。 NVRAM(Nonvolatile Random Access Memory)存储交换机、路由器的启动配置文件。NVRAM是可擦写的,可将交换机、路由器的配置信息拷贝到NVRAM中。 FLASH闪存,是可擦写的,也可编程,用于存储CISCO IOS的其它版本,用于对交换机、路由器的IOS进行升级。 接口用作将交换机、路由器连接到网络,可以分为局域网接口和广域网接口两种。由于交换机、路由器型号的不同,接口数目和类型也不尽一样。常见的接口主要有以下几种: 高速同步串口,可连接DDN,帧中继(Frame Relay),X.25,PSTN(模拟电话线路)。 同步/异步串口,可用软件将端口设置为同步工作方式。 AUI端口,即粗缆口。一般需要外接转换器(AUI-RJ45),连接10/100Base-T以太网络。 ISDN端口,可以连接ISDN网络(2B+D),可作为局域网接入Internet 之用。 AUX端口,该端口为异步端口,主要用于远程配置,也可用于拔号备份,可与MODEM连接。支持硬件流控制(Hardware Flow Control)。 Console端口,该端口为异步端口,主要连接终端或运行终端仿真程序的计算机,在本地配置交换机、路由器。不支持硬件流控制。 是一种采用总线结构,对生产过程及其机电设备、工艺装备进行检测与控制的计算机系统总称。简称工控机。它由计算机和过程输入输出(I/O)通过两大部分组成。计算机是由主机、输入输出设备和外部磁盘机、磁带机等组成。在计算机外部又增加一部分过程输入/输出通道,用来完成工业生产过程的检测数据送入计算机进行处理;另一方面将计算机要行使对生产过程控制的命令、信息转换成工业控制对象的控制变量的信号,再送往工业控制对象的控制器去。由控制器行使对生产设备运行控制。工控机的主要类别有:IPC(PC总线工业电脑)、PLC(可编程控制系统)、DCS(分散型控制系统)、FCS(现场总线系统)及CNC(数控系统)五种。 1、IPC 即基于PC总线的工业电脑。据2000年IDC统计PC机已占到通用计算机的95%以上,因其价格低、质量高、产量大、软/硬件资源丰富,已被广大的技术人员所熟悉和认可,这正是工业电恼热的基础。其主要的组成部分为工业机箱、无源底板及可插入其上的各种板卡组成,如CPU卡、I/O卡等。并采取全钢机壳、机卡压条过滤网,双正压风扇等设计及EMC(Electro Magnetic Compatibility)技术以解决工业现场的电磁干扰、震动、灰尘、高/低温等问题。 IPC有以下特点: 可靠性:工业PC具有在粉尘、烟雾、高/低温、潮湿、震动、腐蚀和快速诊断和可维护性,其MTTR(Mean Time to Repair)一般为10万小时以上。 实时性,工业PC对工业生产过程进行实时在线检测与控制,对工作状况的变化给予快速响应,及时进行采集和输出调节(看门狗功能这是普通PC所不具有的),遇险自复位,保证系统的正常运行。 扩充性,工业PC由于采用底板+CPU卡结构,因而具有很强的输入输出功能,最多可扩充20个板卡,能与工业现场的各种外设、板卡如与道控制器、视频监控系统、车辆检测仪等相连,以完成各种任务。 兼容性,能同时利用ISA与PCI及PICMG资源,并支持各种操作系统,多种语言汇编,多任务操作系统。 2、可编程序控制器(PLC) PLC英文全称ProgrammableLogicController,中文全称为可编程逻辑控制器,定义是:一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。可编程控制系统(ProgrammableLogicController)是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。 可编程控制器是计算机技术与自动化控制技术相结合而开发的一种适用工业环境的新型通用自动控制装置,是作为传统继电器的替换产品而出现的。随着微电子技术和计算机技术的迅猛发展,可编程控制器更多地具有了计算机的功能,不仅能实现逻辑控制,还具有了数据处理、通信、网络等功能。由于它可通过软件来改变控制过程,而且具有体积小、组装维护方便、编程简单、可靠性高、抗干扰能力强等特点,已广泛应用于工业控制的各个领域,大大推进了机电一体化的进程。 3、分散型控制系统(DCS) 是一种高性能、高质量、低成本、配置灵活的分散控制系统系列产品,可以构成各种独立的控制系统、分散控制系统DCS、监控和数据采集系统(SCADA),能满足各种工业领域对过程控制和信息管理的需求。系统的模块化设计、合理的软硬件功能配置和易于扩展的能力,能广泛用于各种大、中、小型电站的分散型控制、发电厂自动化系统的改造以及钢铁、石化、造纸、水泥等工业生产过程控制。 4、现场总线系统(FCS) 是全数字串行、双向通信系统。系统内测量和控制设备如探头、激励器和控制器可相互连接、监测和控制。在工厂网络的分级中,它既作为过程控制(如PLC,LC等)和应用智能仪表(如变频器、阀门、条码阅读器等)的局部网,又具有在网络上分布控制应用的内嵌功能。由于其广阔的应用前景,众多国外有实力的厂家竞相投入力量,进行产品开发。国际上已知的现场总线类型有四十余种,比较典型的现场总线有:FF,Profibus,LONworks,CAN,HART,CC-LINK等。 5、数控系统(CNC) 现代数控系统是采用微处理器或专用微机的数控系统,由事先存放在存储器里系统程序(软件)来实现控制逻辑,实现部分或全部数控功能,并通过接口与外围设备进行联接,称为计算机数控,简称CNC系统。 数控机床是以数控系统为代表的新技术对传统机械制造产业的渗透形成的机电一体化产品;其技术范围覆盖很多领域:(1)机械制造技术;(2)信息处理、加工、传输技术;(3)自动控制技术;(4)伺服驱动技术;(5)传感器技术;(6)软件技术等。 1、台式机(Desktop) 也叫桌面机,是一种独立相分离的计算机,完完全全跟其它部件无联系,相对于笔记本和上网本体积较大,主机、显示器等设备一般都是相对独立的,一般需要放置在电脑桌或者专门的工作台上。因此命名为台式机。为非常流行的微型计算机,多数人家里和公司用的机器都是台式机。台式机的性能相对较笔记本电脑要强。台式机具有如下特点: 散热性。台式机具有笔记本计算机所无法比拟的优点。台式机的机箱具有空间大、通风条件好的因素而一直被人们广泛使用。 扩展性。台式机的机箱方便用户硬件升级,如光驱、硬盘。如台式机箱的光驱驱动器插槽是4-5个,硬盘驱动器插槽是4-5个。非常方便用户日后的硬件升级。 保护性。台式机全方面保护硬件不受灰尘的侵害。而且防水性就不错;在笔记本中这项发展不是很好。 明确性。台式机机箱的开、关键、重启键、USB、音频接口都在机箱前置面板中,方便用户的使用。 但台式机的便携性差,相比笔记本是非常方便。 2、电脑一体机 电脑一体机,是由一台显示器、一个电脑键盘和一个鼠标组成的电脑。它的芯片、主板与显示器集成在一起,显示器就是一台电脑,因此只要将键盘和鼠标连接到显示器上,机器就能使用。随着无线技术的发展,电脑一体机的键盘、鼠标与显示器可实现无线链接,机器只有一根电源线。这就解决了一直为人诟病的台式机线缆多而杂的问题。有的电脑一体机还具有电视接收、AV功能,也整合专用软件,可用于特定行业专用机。 3、笔记本电脑(Notebook或Laptop) 也称手提电脑或膝上型电脑,是一种小型、可携带的个人电脑,通常重1-3公斤。笔记本电脑除了键盘外,还提供了触控板(TouchPad)或触控点(Pointing Stick),提供了更好的定位和输入功能。 笔记本电脑可以大体上分为6类:商务型、时尚型、多媒体应用、上网型、学习型、特殊用途。商务型笔记本电脑一般可以概括为移动性强、电池续航时间长、商务软件多;时尚型外观主要针对时尚女性;多媒体应用型笔记本电脑则有较强的图形、图像处理能力和多媒体的能力,尤其是播放能力,为享受型产品。而且,多媒体笔记本电脑多拥有较为强劲的独立显卡和声卡(均支持高清),并有较大的屏幕。上网本(Netbook)就是轻便和低配置的笔记本电脑,具备上网、收发邮件以及即时信息(IM)等功能,并可以实现流畅播放流媒体和音乐。上网本比较强调便携性,多用于在出差、旅游甚至公共交通上的移动上网。学习型机身设计为笔记本外形,采用标准电脑操作,全面整合学习机、电子辞典、复读机、点读机、学生电脑等多种机器功能。特殊用途的笔记本电脑是服务于专业人士,可以在酷暑、严寒、低气压、高海拔、强辐射、战争等恶劣环境下使用的机型,有的较笨重,比如奥运会前期在“华硕珠峰大本营IT服务区”使用的华硕笔记本电脑。 4、掌上电脑(PDA) 掌上电脑是一种运行在嵌入式操作系统和内嵌式应用软件之上的、小巧、轻便、易带、实用、价廉的手持式计算设备。它无论在体积、功能和硬件配备方面都比笔记本电脑简单轻便。掌上电脑除了用来管理个人信息(如通讯录,计划等),而且还可以上网浏览页面,收发Email,甚至还可以当作手机来用外,还具有:录音机功能、英汉汉英词典功能、全球时钟对照功能、提醒功能、休闲娱乐功能、传真管理功能等等。掌上电脑的电源通常采用普通的碱性电池或可充电锂电池。掌上电脑的核心技术是嵌入式操作系统,各种产品之间的竞争也主要在此。 在掌上电脑基础上加上手机功能,就成了智能手机(Smartphone)。智能手机除了具备手机的通话功能外,还具备了PDA分功能,特别是个人信息管理以及基于无线数据通信的浏览器和电子邮件功能。智能手机为用户提供了足够的屏幕尺寸和带宽,既方便随身携带,又为软件运行和内容服务提供了广阔的舞台,很多增值业务可以就此,如股票、新闻、天气、交通、商品、应用程序下载、音乐图片下载等等。 5、平板电脑 平板电脑是一款无须翻盖、没有键盘、大小不等、形状各异,却功能完整的电脑。其构成组件与笔记本电脑基本相同,但它是利用触笔在屏幕上书写,而不是使用键盘和鼠标输入,并且打破了笔记本电脑键盘与屏幕垂直的J 型设计模式。它除了拥有笔记本电脑的所有功能外,还支持手写输入或语音输入,移动性和便携性更胜一筹。 平板电脑由比尔盖茨提出,至少应该是X86架构,从微软提出的平板电脑概念产品上看,平板电脑就是一款无须翻盖、没有键盘、小到足以放入女士手袋,但却功能完整的PC。 即嵌入式系统( Embedded Systems) ,是一种以应用为中心、以微处理器为基础,软硬件可裁剪的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。它是计算机市场中增长最快的领域,也是种类繁多,形态多种多样的计算机系统。嵌入式系统几乎包括了生活中的所有电器设备,如掌上pda、计算器、电视机顶盒、手机、数字电视、多媒体播放器、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。 嵌入式系统的核心部件是嵌入式处理器,分成4类,即嵌入式微控制器( Micro Contrller Unit ,MCU,俗称单片机)、嵌入式微处理器( Micro Processor Unit ,MPU )、嵌入式DSP 处理器( Digital Signal Processor,DSP) 和嵌入式片上系统( System on Chip,SOC)。嵌入式微处理器一般具备4个特点: 1、对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; 2、具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; 3、可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; 4、嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为mw 甚至μw 级。
F. 如何让几台电脑并行计算以提高性能
.首先确定需要的硬件组件和资源。您将需要一个头节点,至少有十几个相同的计算节点,以太网交换机,配电装置和机架。确定的电力需求,散热和空间要求。又决定您要为您的专用网络IP地址,命名为节点,您要安装的软件包,你想要什么样的技术提供的并行计算能力(更多关于这个版本)。虽然硬件不能随意下载,所有软件中列出的是免费的,大部分都是开源的。 (2)/建立计算节点。您将需要组装的计算节点,或获得预构建服务器。更多的计算节点,建立更强大的超级计算机!选择一台服务器机箱,空间,冷却和能源效率最大化。或者,你可以用十几个这样用的,过时的服务器 - 其整体将超过其部分的总和还为您节省了相当大的一次性现金。为整个系统一起玩的很好,所有的处理器,网络适配器和主板应该是相同的。当然,不要忘了内存和存储每个节点和至少一个光盘驱动器的头节点。
G. 让你的大数据应用具备更高性能
让你的大数据应用具备更高性能
大数据应用在大型企业中变得越来越常见。企业具备历史数据分析和趋势预测的能力,能够为自身创造可观价值;此外,商业智能分析不仅可以避免出现运输中断、资源短缺,还能减少服务水平协议SLA和预测客户所需的产品和服务。BI能够给企业带来巨额红利。
随着购物节的临近,利用客户交互的明显增加,可以预期到你的企业将会开展更多的BI活动。通过优化大数据应用,提高性能,IT企业应该积极为更大数据量和更多的分析活动做好准备
从哪里开始DBA、支持人员应将他们的努力集中在以下几个领域:灾难恢复,数据仓库性能和数据组织以及大数据的应用中的数据存储。
灾难恢复大多数IT人员认为灾难恢复并不属于性能调优的范畴。在大数据环境下,这一误解又有所加深,因为人们普遍认为建立在大数据应用上的数据分析,相对于计算工资,总帐,订单输入,运输和客户服务之类的应用来说,并不十分重要。
但是,大数据应用在过去的几年里已经日趋成熟,企业所使用的业务分析功能也随之日臻完善。曾经的临时查询现在被作为常规报表来执行;额外的历史数据允许查询对大量数据进行比较和分析,通过进行负载均衡,商业分析软件可以让你的大数据应用得以更加方便快捷的执行查询。这使得今天的大数据应用提供了大量的可操作数据,可以提供更好的客户服务,消耗更低的成本并获得更高的利润。
这意味着,即使大数据应用遭遇一次很小的中断,都可能在你的用户群中产生连锁反应,报表无法按时交付、查询无法正常运行、以及那些基于商业分析结果的决策被延迟等。
DBA应该经常审核DR计划,以保证大数据应用在其控制之下。他们需要关注下列几种情况。
审核恢复过程。一年中最忙的时候就是遭到灾难性故障的时候。中断将会显着的影响企业的营利,特别是在事务频繁的时期。DBA应该协助恢复过程,避免浪费时间和精力。
验证恢复时间。很多DR计划包括一个目标恢复时间,表示可以完全恢复的最晚时间点。对于数据库来说,这可能意味着从备份文件恢复数据,并将日志从备份时间调整到恢复时间点。在高峰时期,数据和事务量较大;因此,恢复时间可能延长。为了降低这种风险,DBA应该考虑实施更频繁的关键数据库备份。由于在数据表恢复过程中,通常需要花时间来重建索引,DBA应该将DB2的备份和恢复能力考虑在内。
数据仓库性能一般来说,大数据的存储和分析或存在于企业数据仓库(EDW)内部,或者与其相关。要整合各地的大数据解决方案,你需要为每一部分的EDW过程设置接口。下面是一个关于EDW子系统的总结,涉及大数据对它们的影响,以及如何提前制定性能计划。
数据获取和采集。包括一个在数据转移到EDW之前,用于暂存数据的方案,以避免硬件故障造成的延误。还应确定这些新资产和流程将如何影响你的灾难恢复计划。开发人员喜欢在旺季开始之前实现新功能或加固操作系统。其中一些增强数据可能需要传递到你的数据仓库,随后为大数据应用可能执行的查询提供服务。在此之前你要确定,这些新应用或者改动后的应用可能需要一个业务分析组件,
数据转换和迁移。快速迁移大量数据可能需要额外的资源,甚至特殊的软件或硬件。你的网络有能力将日益增长的数据从操作系统迁移到数据仓库,并最终部署到大数据应用中么?
数据访问和分析。随着数据持续填满仓库,在仓库和大数据的应用合并后,用户可以运行分析软件。捕获数据访问路径和数据分布统计信息并留作分析。你需要确定是否有足够的系统资源(CPU、磁盘存储、网络容量等)来支持预期的查询工作负载。
数据归档。大量的数据分析,庞大的数据量可能会占用宝贵的存储介质,使一些进程运行缓慢。IT和业务合作伙伴必须决定如何以及何时将旧的大数据存档清除,以及它是否必须保留以供日后使用。
大数据的组织和存储供应商销售的第一大数据应用通常是即插即用型的。几乎没有调优选项。主要的原因是,应用依赖一个专有的,混合的硬件和软件解决方案,该解决方案使用大规模并行存储和I / O,以实现对分析查询的快速应答。
客户对于大数据分析的需求日益成熟,供应商解决方案需要提供多个同步存储和检索数据的方法。其结果是供应商设计并实现了可选数据存储和检索选项。一个例子是指定关键记录如何存储的能力。设想一个大数据应用,实现了一百个独立的磁盘驱动器。原始的应用通常将记录随机分散到这些驱动器。一些分析查询可以在逻辑上分成一百个独立的查询,每个查询访问一个驱动器,所有查询的结果合并成最终的答案,比相同的序列数据库查询快上一百倍。
然而,考虑一个基于键的,需要连接两个表的查询。随机分布在一百个磁盘驱动器的两个表将不再具备性能优势,因为行连接操作与两个表存储在同一个磁盘驱动器上时已经完全不同了。
目前很多大数据应用解决方案包含选项和算法以支持跨驱动器的表查询,存储是按键值排序的,并不是随机分布。通过在每一个磁盘驱动器存储相同范围的键值行,行连接操作将在同一个驱动器上执行。因此按键值指定数据分布的能力提供了巨大性能提升。
考虑到这一点,以下是一些建议,可用于大数据应用的性能调优。
检查数据分布统计信息。使用RunStats程序来收集表键和数据分布信息。特别是主键和外键索引,因为表连接通常会基于这些列。
审查数据访问路径。在本质上分析查询是临时的,数据表最有可能使用相同或相似的访问路径加被访问。捕获和分析这些访问路径寻找常见的连接方法。这一信息,加上数据分布统计信息,将帮助您确定数据表应如何按键值分布在大数据应用中。
存储数据访问路径以进行分析。作为上面的建议的延伸,你应该有一个方法用于捕获和储存分析查询的访问路径。方法返回结果应展示出表和索引是如何被访问,以及使用了哪些索引,执行了哪些排序等等。查询获取更多的数据,数据量增加返过来审查你的历史访问路径并比较。数据量增加引起的变化,观察访问路径的变化都可能表明性能出了问题。
总结通过审核数据恢复流程,提高数据仓库的性能,评估当前大数据应用性能的优化选项,可以让你的大数据应用为即将到来高峰做好准备。大数据应用的数据组织方式对性能有这十分显着的影响;此外,你还应该仔细考虑可能发生的故障,为灾难做好准备,即使大数据应用上一个小的中断都可能对企业利益造成重大影响。
以上是小编为大家分享的关于让你的大数据应用具备更高性能的相关内容,更多信息可以关注环球青藤分享更多干货
H. 数据库调优的方法有哪些
1.引言 数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。 数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应用、数据库管理系统、查询处理、并发控制、操作系统以及硬件有广泛 而深刻的理解。 2.计算机硬件调优 2.1 数据库对象的放置策略 利用数据库分区技术,均匀地把数据分布在系统的磁盘中,平衡I/O 访问,避免I/O 瓶颈: (1)访问分散到不同的磁盘,即使用户数据尽可能跨越多个设备,多个I/O 运转,避免 I/O 竞争,克服访问瓶颈;分别放置随机访问和连续访问数据。 (2)分离系统数据库I/O 和应用数据库I/O,把系统审计表和临时库表放在不忙的磁盘 上。 (3)把事务日志放在单独的磁盘上,减少磁盘I/O 开销,这还有利于在障碍后恢复,提 高了系统的安全性。 (4)把频繁访问的“活性”表放在不同的磁盘上;把频繁用的表、频繁做Join的表分别 放在单独的磁盘上,甚至把频繁访问的表的字段放在不同的磁盘上,把访问分散到不同的磁 盘上,避免I/O 争夺。 2.2 使用磁盘硬件优化数据库 RAID (独立磁盘冗余阵列)是由多个磁盘驱动器(一个阵列)组成的磁盘系统。通过将磁盘阵列当作一个磁盘来对待,基于硬件的RAID允许用户管理多个磁盘。使用基于硬件的 RAID与基于操作系统的RAID相比较,基于硬件的RAID能够提供更佳的性能。如果使用基于操作系统的RAID,那么它将占据其他系统需求的CPU周期;通过使用基于硬件的RAID, 用户在不关闭系统的情况下能够替换发生故障的驱动器。 SQL Server 一般使用RAID等级0、1 和5。 RAID 0 是传统的磁盘镜象,阵列中每一个磁盘都有一个或多个磁盘拷贝,它主要用来 提供最高级的可靠性,使RAID 0成倍增加了写操作却可以并行处理多个读操作,从而提高 了读操作的性能。 RAID 1 是磁盘镜像或磁盘双工,能够为事务日志保证冗余性。 RAID 5带奇偶的磁盘条带化,即将数据信息和校验信息分散到阵列的所有磁盘中,它可以消除一个校验盘的瓶颈和单点失效问题,RAID 5 也会增加写操作,也可以并行处理一个读操作,还 可以成倍地提高读操作的性能。 相比之下,RAID 5 增加的写操作比RAID 0 增加的要少许多。在实际应用中,用户的读操作要求远远多于写操作请求,而磁盘执行写操作的速度很快,以至于用户几乎感觉不到增加的时间,所以增加的写操作负担不会带来什么问题。在性能较好的服务器中一般都会选择使用RAID 5 的磁盘阵列卡来实现,对于性能相对差一些的服务器也可利用纯软件的方式来实现RAID 5。 3.关系系统与应用程序调优 3.1 应用程序优化 从数据库设计者的角度来看,应用程序无非是实现对数据的增加、修改、删除、查询和体现数据的结构和关系。设计者在性能方面的考虑因素,总的出发点是:把数据库当作奢侈 的资源看待,在确保功能的同时,尽可能少地动用数据库资源。包括如下原则: (1)不访问或少访问数据库; (2)简化对数据库的访问; (3)使访问最优; (4)对前期及后续的开发、部署、调整提出要求,以协助实现性能目标。 另外,不要直接执行完整的SQL 语法,尽量通过存储过程来调用SQL Server。客户与服务器连接时,建立连接池,让连接尽量得以重用,以避免时间与资源的损耗。非到不得已, 不要使用游标结构,确实使用时,注意各种游标的特性。
I. 数据库性能优化有哪些措施
1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。
(9)并行存储性能调优扩展阅读
数据库,简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的"仓库",并根据管理的需要进行相应的处理。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。