You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hawq.apache.org by Dmitry Buzolin <Dm...@theice.com> on 2017/01/13 01:42:01 UTC
Very poor Hawq HDFS perfromance
Hi All,
I see very strange picture when running hawq TPC-DS benchmark.
The data generation phase for 500BG data set showed 1.9GB/sec through put o=
n our 9 node Hadoop cluster.
The table analyze phase showed 3.2GB/sec throughput. However the test itsel=
f shows very poor HDFS performance:
* test run as: ./rollout.sh 100 false tpcds true 5 true true true true =
true true true true true 1
* ~90MB/sec for read and writes clusterwide. I've seen 1.9GB/sec during=
dataload and table analyze phase.
* 72 postgres processes on each datanode and they consume 80% - 90% of =
CPU each and 0% MEM, doing very little I/O.
* 35036 files on HDFS with 2MB size per each file. Is this normal? Our =
block size is 128MB
* Top example on one of the nodes shows 0% memory allocated for Postgre=
s but processes are heavily busy:
Cpu(s): 0.0%us, 77.4%sy, 0.9%ni, 21.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0=
%st
Mem: 264403536k total, 172780840k used, 91622696k free, 2986328k buffers
Swap: 4194300k total, 0k used, 4194300k free, 155959360k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
486160 gpadmin 39 19 872m 28m 10m D 88.7 0.0 4:32.52 postgres
486926 gpadmin 39 19 872m 28m 10m R 87.4 0.0 4:34.75 postgres
486405 gpadmin 39 19 872m 28m 10m R 86.4 0.0 4:23.99 postgres
487162 gpadmin 39 19 872m 28m 10m R 80.4 0.0 4:30.14 postgres
486761 gpadmin 39 19 872m 28m 10m R 78.8 0.0 4:28.41 postgres
486256 gpadmin 39 19 872m 28m 10m D 76.5 0.0 4:30.63 postgres
Please suggest explanations why this happens.
________________________________
This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
RE: Very poor Hawq HDFS perfromance
Posted by Dmitry Buzolin <Dm...@theice.com>.
Hi Zhanwei,
Thanks for the points. Indeed I see half of the files under /hawq_default are 0 length and many many files are 2-4-8MB:
-rw------- 3 gpadmin gpadmin 0 2017-01-11 17:40 /hawq_default/16385/16508/166351/89
-rw------- 3 gpadmin gpadmin 0 2017-01-11 17:40 /hawq_default/16385/16508/166351/9
-rw------- 3 gpadmin gpadmin 0 2017-01-11 17:40 /hawq_default/16385/16508/166351/90
So, maybe what happens is HAWQ just read those small files most of the time of the time and it is where CPU spins. This is also in sync with almost no I/O in HDFS. Is there way to control this behavior in HAWQ? 500GB dataset is not a small one for 10 node cluster, there has to be a way to make this distribution more effective (i.e. without lot of 0 length and small files). Or should I start looking at how TPC-DS test generates tables? I am using default HAWQ configuration and TPC-DS test from here: https://github.com/pivotalguru/TPC-DS
Thanks,
Dmitry.
From: Zhanwei Wang [mailto:wangzw@apache.org]
Sent: Thursday, January 12, 2017 9:10 PM
To: user@hawq.incubator.apache.org
Subject: Re: Very poor Hawq HDFS perfromance
WARNING - External email; exercise caution
Hi Dmitry
1) According to the information you provided, your query performance is limited by the CPU. So you will see the low HDFS access performance.
2) If you use partition table, it will increase the number of files.
3) All HAWQ table is distributed over all segments, so for small table, it will cause small files on HDFS.
Best Regards
Zhanwei Wang
wangzw@apache.org<ma...@apache.org>
在 2017年1月13日,上午9:42,Dmitry Buzolin <Dm...@theice.com>> 写道:
Hi All,
I see very strange picture when running hawq TPC-DS benchmark.
The data generation phase for 500BG data set showed 1.9GB/sec through put o=
n our 9 node Hadoop cluster.
The table analyze phase showed 3.2GB/sec throughput. However the test itsel=
f shows very poor HDFS performance:
* test run as: ./rollout.sh 100 false tpcds true 5 true true true true =
true true true true true 1
* ~90MB/sec for read and writes clusterwide. I've seen 1.9GB/sec during=
dataload and table analyze phase.
* 72 postgres processes on each datanode and they consume 80% - 90% of =
CPU each and 0% MEM, doing very little I/O.
* 35036 files on HDFS with 2MB size per each file. Is this normal? Our =
block size is 128MB
* Top example on one of the nodes shows 0% memory allocated for Postgre=
s but processes are heavily busy:
Cpu(s): 0.0%us, 77.4%sy, 0.9%ni, 21.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0=
%st
Mem: 264403536k total, 172780840k used, 91622696k free, 2986328k buffers
Swap: 4194300k total, 0k used, 4194300k free, 155959360k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
486160 gpadmin 39 19 872m 28m 10m D 88.7 0.0 4:32.52 postgres
486926 gpadmin 39 19 872m 28m 10m R 87.4 0.0 4:34.75 postgres
486405 gpadmin 39 19 872m 28m 10m R 86.4 0.0 4:23.99 postgres
487162 gpadmin 39 19 872m 28m 10m R 80.4 0.0 4:30.14 postgres
486761 gpadmin 39 19 872m 28m 10m R 78.8 0.0 4:28.41 postgres
486256 gpadmin 39 19 872m 28m 10m D 76.5 0.0 4:30.63 postgres
Please suggest explanations why this happens.
________________________________
This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
________________________________
This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
Re: Very poor Hawq HDFS perfromance
Posted by Zhanwei Wang <wa...@apache.org>.
Hi Dmitry
1) According to the information you provided, your query performance is limited by the CPU. So you will see the low HDFS access performance.
2) If you use partition table, it will increase the number of files.
3) All HAWQ table is distributed over all segments, so for small table, it will cause small files on HDFS.
Best Regards
Zhanwei Wang
wangzw@apache.org
> 在 2017年1月13日,上午9:42,Dmitry Buzolin <Dm...@theice.com> 写道:
>
> Hi All,
>
> I see very strange picture when running hawq TPC-DS benchmark.
> The data generation phase for 500BG data set showed 1.9GB/sec through put o=
> n our 9 node Hadoop cluster.
> The table analyze phase showed 3.2GB/sec throughput. However the test itsel=
> f shows very poor HDFS performance:
>
> * test run as: ./rollout.sh 100 false tpcds true 5 true true true true =
> true true true true true 1
> * ~90MB/sec for read and writes clusterwide. I've seen 1.9GB/sec during=
> dataload and table analyze phase.
> * 72 postgres processes on each datanode and they consume 80% - 90% of =
> CPU each and 0% MEM, doing very little I/O.
> * 35036 files on HDFS with 2MB size per each file. Is this normal? Our =
> block size is 128MB
> * Top example on one of the nodes shows 0% memory allocated for Postgre=
> s but processes are heavily busy:
> Cpu(s): 0.0%us, 77.4%sy, 0.9%ni, 21.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0=
> %st
> Mem: 264403536k total, 172780840k used, 91622696k free, 2986328k buffers
> Swap: 4194300k total, 0k used, 4194300k free, 155959360k cached
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> 486160 gpadmin 39 19 872m 28m 10m D 88.7 0.0 4:32.52 postgres
> 486926 gpadmin 39 19 872m 28m 10m R 87.4 0.0 4:34.75 postgres
> 486405 gpadmin 39 19 872m 28m 10m R 86.4 0.0 4:23.99 postgres
> 487162 gpadmin 39 19 872m 28m 10m R 80.4 0.0 4:30.14 postgres
> 486761 gpadmin 39 19 872m 28m 10m R 78.8 0.0 4:28.41 postgres
> 486256 gpadmin 39 19 872m 28m 10m D 76.5 0.0 4:30.63 postgres
>
> Please suggest explanations why this happens.
>
>
>
> This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of Intercontinental Exchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.