GPDB 并行加载测试

测试文件信息

10G Dec 12 14:10 A1
11G Dec 12 14:32 A2
10G Dec 12 14:10 B1
11G Dec 12 14:35 B2

GPFDIST

方案一 单台服务器

drop table if exists host_1;
drop EXTERNAL TABLE if exists exttable_ext_1_host;
drop table if exists host_1_err;
create table host_1 (like sourcetable) distributed randomly;
CREATE EXTERNAL TABLE exttable_ext_1_host (like sourcetable) LOCATION (‘gpfdist://10.2.22.81:9999/A*‘) FORMAT ‘text‘ (delimiter as ‘,‘ null as ‘‘ escape ‘OFF‘) ENCODING ‘UTF8‘ LOG ERRORS INTO host_1_err SEGMENT REJECT LIMIT 100 PERCENT;
insert into host_1 select * from exttable_ext_1_host;

方案二 两台服务器

drop table if exists host_2;
drop EXTERNAL TABLE if exists exttable_ext_2_host;
drop table if exists host_2_err;
create table host_2 (like sourcetable) distributed randomly;
CREATE EXTERNAL TABLE exttable_ext_2_host (like sourcetable) LOCATION (‘gpfdist://10.2.22.81:9999/B1‘,‘gpfdist://10.2.22.82:9999/B2‘) FORMAT ‘text‘ (delimiter as ‘,‘ null as ‘‘ escape ‘OFF‘) ENCODING ‘UTF8‘ LOG ERRORS INTO host_2_err SEGMENT REJECT LIMIT 100 PERCENT;
insert into host_2 select * from exttable_ext_2_host;

GPLOAD

方案三

gpload单台

---
VERSION: 1.0.0.1
DATABASE: gpdb
USER: gpadmin
HOST: 10.4.2.4
PORT: 5432

GPLOAD:
  INPUT:
    - SOURCE:
        LOCAL_HOSTNAME:
          - 10.2.22.81
        PORT: 9999
        FILE:
          - /data/ptest/A*
    - FORMAT: text
    - DELIMITER: ‘,‘
    - ESCAPE: ‘OFF‘
    - NULL_AS: ‘‘
    - ENCODING: UTF8
    - ERROR_LIMIT: 10000
    - ERROR_TABLE: host_1_err

  OUTPUT:
    - TABLE: host_1
    - MODE: insert

方案四

gpload两台

测试结果

为了防止缓存干扰测试,经过多次测试结果如下,可以发现方案二明显优于方案一

. 文件信息s文件 | 文件大小 | 入库大小 | 插入记录数量 | 异常记录数量------| --------------------------------------------方案一 | 21GB | 25GB |49826141 |2199方案二 | 21GB | 25GB | 52108083| 1867

. 加载耗时

不清楚为什么第1次读取的时候(测试序列一的方案一/二)和之后的差别这么大可能与gpfs有关系

方案四的B机文件读取失败,而且整个测试过程中方案三/四感觉并不是非常稳定(hang住),鉴于方案三对比方案一并没有太大优势,而且通过观察方案四可以发现A机加载的时间已经达到22.24s,对比方案二可能并不会有优势,因此未完成测试

测试次序 方案一 方案二 方案三 方案四
测试次序一 440403.263 ms 204201.096 ms 36.41 seconds 22.24 seconds+B?
测试次序二 35854.612 ms 26303.240 ms 方案三 方案四
测试次序三 42007.990 ms 25593.730 ms 方案三 方案四
测试次序四 43795.502 ms 25706.479 ms 方案三 方案四
测试次序五 36576.681 ms 26405.977 ms 方案三 方案四

-EOF-

时间: 2024-08-11 19:55:38

GPDB 并行加载测试的相关文章

js的并行加载以及顺序执行

重新温习了下这段内容,发现各个浏览器的兼容性真的是搞大了头,处理起来很是麻烦. 现在现总结下并行加载多个js的方法: 1,对于动态createElement('script')的方式,对所有浏览器都是异步并行加载的.这里所说的并行不仅仅指的是 js并行加载,也包括js和其他资源比如图片,iframe的加载.但是此种方式在Firefox的2.0 3.0 3.1版本和opera 9.63 下是可以顺序执行的.但是由于Kyle的提议,现代浏览器都可以通过对动态创建的script元素设置属性async=

OpenJDK类加载实现浅析#3:并行加载

今天来看下OpenJDK类加载中关于并行加载的一些代码.还是一样要分别看看类加载库跟虚拟机,因为二者在这方面仍然是需要配合完成的. 类加载库所做的工作 在JDK7之前,ClassLoader#loadClass方法是synchronized的, protected synchronized Class<?> loadClass(String name, boolean resolve) 也就是说,类加载的时候,直接是要锁住整个classloader的. 到了JDK7,这个地方终于做出了优化,直

js顺序加载与并行加载

前端优化过程中常提到js的加载方式,下面说下几种常用的加载方式: 1:head标签内插入<script>标签 <script type="text/javaScript" src="test.js"></script> 这是最常见的方法,但是这个方法有个最大的问题,就是当浏览器解析到<script>标签时,浏览器会停止解析其后的内容,而优先下载脚本文件,并执行其中的代码,是个阻塞的过程,这意味着,其后的test.css

head.js让网站并行加载但顺序执行JS

http://headjs.com/ 并行加载JS,但是执行的时候却按顺序执行,提高网站速度 <script src="js/head.min.js"></script> <script type="text/javascript"> head.js("js/jquery-1.6.1.min.js","js/jquery.validate.min.js","js/my_valida

js的并行加载与顺序执行

javaScript文件(下面简称脚本文件)需要被HTML文件引用才能在浏览器中运行.在HTML文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,这些方式的具体实现和这些方式可能会带来的性能问题. 当浏览器遇到(内嵌)<script>标签时,当前浏览器无从获知javaScript是否会修改页面内容.因此,这时浏览器会停止处理页面,先执行javaScript代码,然后再继续解析和渲染页面.同样的情况也发生在使用 src 属性加在javaScript的过程中(即外链 javaScript)

async/await实现图片的串行、并行加载

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

LABjs学习(一)之无阻塞动态并行加载脚本文件以及管理执行顺序

什么是LABjs LABjs是一个动态的脚本加载器,LABjs的定义特性是能够在浏览器允许的范围内以最快的速度并行加载所有JavaScript文件,但是如果文件之间存在依赖关系,则可以选择确保正确的执行顺序. 总计来说就是:动态并行加载脚本文件以及管理加载脚本文件的执行顺序 使用方法 $LAB对象替代了<script>标签,然后.script()方法表示加载Javascript文件,不带参数的.wait()方法表示立即运行刚才加载的Javascript文件,带参数的.wait()方法也是立即运

并行加载与顺序执行

Javascript文件(下面简称脚本文件)需要被HTML文件引用才能在浏览器中运行.在HTML文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,引用的具体实现方式和这些方式可能会带来的性能问题. 首先,引用脚本必须用到<script>标签,所以需要了解<script>标签的特性,引述书中作者原话: 当浏览器遇到(即内嵌)<script>标签时,当前浏览器无从获知Javascript是否会修改页面内容.因此,这时浏览器会停止处理页面,先执行Javascript代

JS 动态加载脚本 执行回调[transfer]

JS 动态加载脚本 执行回调 关于在javascript里面加载其它的js文件的问题可能很多人都遇到过,但很多朋友可能并不知道怎么判断我们要加载的js文件是否加载完成,如果没有加载完成我们就调用文件里面的函数是不会成功的.本文讲解怎么在js中加载其它js文件并在加载完成后执行回调函数. 我们可以动态的创建 <script> 元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢,因为我们有些函数需要在脚本加载完成生效后才能开始执行. 经过对网络上资源的搜索,我发现