企业业务的现有架构是否适合云计算架构
答案:1 悬赏:10 手机版
解决时间 2021-03-13 09:44
- 提问者网友:我们很暧昧
- 2021-03-13 04:47
企业业务的现有架构是否适合云计算架构
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-03-13 05:55
为应用选择合适的架构与技术
对于应用而言,笔者认为可以根据数据的使用方式分为三种:以计算为中心的应用、以数据为中心的应用和需要兼顾数据与计算的应用。
针对上面所提到的不同种类的应用,我们需要选择合适的架构以及技术来实现应用。
1. 以计算为中心的应用
我们通常见到的大部分应用,计算所需的数据量往往都不是很大,而影响执行效率的通常是计算量。这样的应用包括:统计计算(比如大量用户话费计算)、模拟计算(随机算法)、图像处理以及信息管理系统等。此类应用由于单个计算所需的数据量较小,数据传输的代价小,故我们可以将数据集中存放,并根据计算的需要实时发送数据,由多台计算机同时计算以提高计算速度。
2. 以数据为中心的应用
而对于Google,Baidu这样的互联网搜索公司来说,每天都需要从互联网采集海量的数据,并对其进行分析。其应用所需的输入数据往往较大,故它们的数据一般存放于像HDFS这样的分布式文件系统上或类似的集群数据服务器上,这些数据往往以大文件的形式存放,并且不容易被拆分。但这些数据可以供多个应用同时读取。在这样地情况下,我们一般不会移动数据,而会将任务发送到数据所在的服务器上执行。
对于开发人员来说,需要先确定所开发应用的类型并结合所能获取的计算资源,综合分析,才能选择合理的架构与技术。下面我们以常见的百兆网卡,7200转硬盘处理10G数据为例,对比一下将数据分配到多台计算机上计算所花的时间,与利用多核CPU采用多线程技术在本地计算所花费的时间(业务可使用并行计算)。详细信息如表5-1。
表5-1 常见计算机硬件配置
项目 参数
数据块 10 GB
100Mbps以太网卡 实际传输速率12.8MB/s
7200转硬盘 平均实际读取速度 50MB/s
算法计算所需时间 60分钟
CPU 4核
实际计算时间 =单核处理时间/CPU核数+ 数据传输时间 + 数据读取时间
利用多核处理器本地计算所需时间为:(需要重新看一下 本地IO的计算速度 )
实际计算时间 = 单核处理时间/CPU核数+数据读取时间
= (60 Minutes/4)*60 + 10*1024/50
= 900 Sec + 204.8 Sec
= 1104.8 sec
= 18 分钟
将数据分配到4台4核计算机上,同时计算
实际计算时间 = 单核处理时间/CPU核数+数据传输时间+数据读取时间
= (60 Minutes/4*4)*60 + (10*1024/12.8) *4 + 10*1024/50
= 225 Sec + 3200 Sec + 204.8 Sec
= 60 分钟
从上面的分析我们可以看出,由于数据传输量较大,将数据分发到多台计算机上执行虽然降低了算法本身计算的时间,但数据传输时间显著增大,计算时间不但没有降低,反而变长。
影响数据传输的主要因素有数据复制的数量以及数据本身的大小。假如输入数据在10MB以内,此时再次计算,则结果为:
利用多核处理器本地计算所需时间为:
实际计算时间 = 单核处理时间/CPU核数+数据读取时间
= (60 Minutes/4)*60 + 10/50
= 900 Sec
= 15 分钟
将数据分配到4台4核计算机上,同时计算
实际计算时间 = 单核处理时间/CPU核数+数据传输时间+数据读取时间
= (60 Minutes/4*4)*60 + (10/12.8) *4 + 10/50
= 230 Sec
= 约4 分钟
这个时候采用多台计算机并行计算就可以极大地提升计算速度。类似的应用还有需要进行数据挖掘的应用(比如历史交易分析),人口统计信息,日志分析等。
3. 需要兼顾数据与计算的应用
在实际应用中还存在需要兼顾大数据量与计算量的应用。针对这样的应用,我们可以采用分而治之的方式,将该应用的不同功能模块根据实际情况采取不同的技术,从而提高计算效率。
对于应用而言,笔者认为可以根据数据的使用方式分为三种:以计算为中心的应用、以数据为中心的应用和需要兼顾数据与计算的应用。
针对上面所提到的不同种类的应用,我们需要选择合适的架构以及技术来实现应用。
1. 以计算为中心的应用
我们通常见到的大部分应用,计算所需的数据量往往都不是很大,而影响执行效率的通常是计算量。这样的应用包括:统计计算(比如大量用户话费计算)、模拟计算(随机算法)、图像处理以及信息管理系统等。此类应用由于单个计算所需的数据量较小,数据传输的代价小,故我们可以将数据集中存放,并根据计算的需要实时发送数据,由多台计算机同时计算以提高计算速度。
2. 以数据为中心的应用
而对于Google,Baidu这样的互联网搜索公司来说,每天都需要从互联网采集海量的数据,并对其进行分析。其应用所需的输入数据往往较大,故它们的数据一般存放于像HDFS这样的分布式文件系统上或类似的集群数据服务器上,这些数据往往以大文件的形式存放,并且不容易被拆分。但这些数据可以供多个应用同时读取。在这样地情况下,我们一般不会移动数据,而会将任务发送到数据所在的服务器上执行。
对于开发人员来说,需要先确定所开发应用的类型并结合所能获取的计算资源,综合分析,才能选择合理的架构与技术。下面我们以常见的百兆网卡,7200转硬盘处理10G数据为例,对比一下将数据分配到多台计算机上计算所花的时间,与利用多核CPU采用多线程技术在本地计算所花费的时间(业务可使用并行计算)。详细信息如表5-1。
表5-1 常见计算机硬件配置
项目 参数
数据块 10 GB
100Mbps以太网卡 实际传输速率12.8MB/s
7200转硬盘 平均实际读取速度 50MB/s
算法计算所需时间 60分钟
CPU 4核
实际计算时间 =单核处理时间/CPU核数+ 数据传输时间 + 数据读取时间
利用多核处理器本地计算所需时间为:(需要重新看一下 本地IO的计算速度 )
实际计算时间 = 单核处理时间/CPU核数+数据读取时间
= (60 Minutes/4)*60 + 10*1024/50
= 900 Sec + 204.8 Sec
= 1104.8 sec
= 18 分钟
将数据分配到4台4核计算机上,同时计算
实际计算时间 = 单核处理时间/CPU核数+数据传输时间+数据读取时间
= (60 Minutes/4*4)*60 + (10*1024/12.8) *4 + 10*1024/50
= 225 Sec + 3200 Sec + 204.8 Sec
= 60 分钟
从上面的分析我们可以看出,由于数据传输量较大,将数据分发到多台计算机上执行虽然降低了算法本身计算的时间,但数据传输时间显著增大,计算时间不但没有降低,反而变长。
影响数据传输的主要因素有数据复制的数量以及数据本身的大小。假如输入数据在10MB以内,此时再次计算,则结果为:
利用多核处理器本地计算所需时间为:
实际计算时间 = 单核处理时间/CPU核数+数据读取时间
= (60 Minutes/4)*60 + 10/50
= 900 Sec
= 15 分钟
将数据分配到4台4核计算机上,同时计算
实际计算时间 = 单核处理时间/CPU核数+数据传输时间+数据读取时间
= (60 Minutes/4*4)*60 + (10/12.8) *4 + 10/50
= 230 Sec
= 约4 分钟
这个时候采用多台计算机并行计算就可以极大地提升计算速度。类似的应用还有需要进行数据挖掘的应用(比如历史交易分析),人口统计信息,日志分析等。
3. 需要兼顾数据与计算的应用
在实际应用中还存在需要兼顾大数据量与计算量的应用。针对这样的应用,我们可以采用分而治之的方式,将该应用的不同功能模块根据实际情况采取不同的技术,从而提高计算效率。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯