[gdal-dev] GDAL 3 + PROJ 6 performance issue in CENTOS
Vincent Sarago
vincent.sarago at gmail.com
Thu Nov 28 12:26:16 PST 2019
Dear community, I hope some of you might be of help here.
For weeks I’ve been trying to build CENTOS docker image (for AWS Lambda) for GDAL 3 + PROJ 6 but I stumbled into a strange behavior making my processes a couple time slower than with gdal 2. I’m using those images for dynamic tiling (warping + cropping) so my guess it there is something involving PROJ 6 here (everything works fine with gdal2.4 + proj 5. The weird things is I cannot reproduce the behavior outside my centos container (works fine with Alpine).
The full discovery can be seen in https://github.com/RemotePixel/amazonlinux/issues/10 <https://github.com/RemotePixel/amazonlinux/issues/10> and https://github.com/RemotePixel/amazonlinux/issues/16 <https://github.com/RemotePixel/amazonlinux/issues/16>.
The dockerfile can be found here https://github.com/RemotePixel/amazonlinux/blob/master/base/gdal3.0/Dockerfile <https://github.com/RemotePixel/amazonlinux/blob/master/base/gdal3.0/Dockerfile>
The logs (PROJ or GDAL) don’t tell anything, they are almost similar. The only notable difference is :
```
# CENTOS
GDAL: GDALDriver::Create(GTiff,out.tif,256,256,1,UInt16,(nil))
# ALPINE
GDAL: GDALDriver::Create(GTiff,out.tif,256,256,1,UInt16,0)
```
Here is an example showing the logs of a gdalwarp command (keeping only line taking more then 100ms).
CPL_TIMESTAMP=ONE CPL_DEBUG=ON GDAL_DISABLE_READDIR_ON_OPEN=EMPTY_DIR gdalwarp -q -te -11036283.891926888 10331840.239250703 -10958012.374962866 10410111.756214723-t_srs EPSG:3857 -ts 256 256 -r bilinear -overwrite /vsicurl/https://s3.amazonaws.com/opendata.remotepixel.ca/bench_tiler/LC08_L1TP_040013_20191014_20191029_01_T1_B4.tif out.tif
Note: time delta (column 2) is calculated between line and line+1 (meaning that delta assigned for `GDAL : computing areas …` correspond to time spent somewhere between the end of GDALComputeAreaOfInterest and `GDALWarpCreateOutput` https://github.com/OSGeo/gdal/blob/release/3.0/gdal/apps/gdalwarp_lib.cpp#L945-L1040 <https://github.com/OSGeo/gdal/blob/release/3.0/gdal/apps/gdalwarp_lib.cpp#L945-L1040>
GDAL 3.0
17:26:43.314265 264ms HTTP: libcurl/7.61.1 OpenSSL/1.0.2k zlib/1.2.8 libidn2/0.16 libpsl/0.6.2 (+libicu/50.1.2) libssh2/1.4.2 nghttp2/1.21.1
17:26:43.662722 671ms GDAL: Computing area of interest: -103.586, 65.7283, -97.4556, 68.0874
17:26:44.460977 625ms GTiff: Opened 134x135 overview.
17:26:45.088925 588ms GDAL: Computing area of interest: -103.586, 65.7283, -97.4556, 68.0874
17:26:45.676688 189ms VSICURL: Downloading 2145148-2175608 (https://s3.amazonaws.com/opendata.remotepixel.ca/bench_tiler/LC08_L1TP_040013_20191014_20191029_01_T1_B4.tif)...
17:26:45.870161 124ms GDAL: GDALWarpKernel()::GWKRealCase() Src=1544,201,252x252 Dst=0,0,256x256
GDAL 3.0 Alpine
17:42:55.857475 284ms HTTP: libcurl/7.65.1 OpenSSL/1.1.1c zlib/1.2.11 nghttp2/1.38.0
17:42:56.273597 43ms GDAL: Computing area of interest: -103.586, 65.7283, -97.4556, 68.0874
17:42:56.421772 15ms GTiff: Opened 134x135 overview.
17:42:56.440615 16ms GDAL: Computing area of interest: -103.586, 65.7283, -97.4556, 68.0874
17:42:56.456941 210ms VSICURL: Downloading 2145148-2175608 (https://s3.amazonaws.com/opendata.remotepixel.ca/bench_tiler/LC08_L1TP_040013_20191014_20191029_01_T1_B4.tif)...
17:42:56.725692 44ms GDAL: GDALWarpKernel()::GWKRealCase() Src=1544,201,252x252 Dst=0,0,256x256
Full logs: https://gist.github.com/vincentsarago/2c55d5154d352f10e85d09fe9008e365
The main time difference are just after `GDALComputeAreaOfInterest` (https://github.com/OSGeo/gdal/blob/release/3.0/gdal/apps/gdalwarp_lib.cpp#L930-L939 and takes about 15 times more time in amazonlinux in comp)
arison to alpine
I’m looking for advice for deeper debuting or for knowledge about compilation/dependencies of GDA/PROJ for centos.
Thanks,
Vincent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20191128/6d3b993f/attachment.html>
More information about the gdal-dev
mailing list