【问题标题】:osm2pgsql - importing of an openstreetmaps planet file takes very longosm2pgsql - 导入 o​​penstreetmaps 行星文件需要很长时间
【发布时间】:2016-03-08 10:35:15
【问题描述】:

我已将 Nominatim 安装到专门用于 OSM 数据的服务器上,具有以下配置:CentOS 7 操作系统、2x Intel XEON CPU L5420 @ 2.50GHz(共 8 个 CPU 内核)、16 GB 内存和 2x2TB SATA 硬盘开车。

我已经根据 Nominatim 安装 wiki (http://wiki.openstreetmap.org/wiki/Nominatim/Installation#PostgreSQL_Tuning) 上的建议配置了 postgresql,考虑到我的机器只有 16 GB,而不是为这些配置推荐的 32 GB。我用过以下东西:

shared_buffers = 1GB             # recommended for a 32GB machine was 2 GB
maintenance_work_mem = 4GB       # recommended for a 32GB macinhe was 8 GB
work_mem = 20MB                  # recommended for a 32GB machine was 50 MB
effective_cache_size = 10GB      # recommended for a 32GB machine was 24 GB
synchronous_commit = off
checkpoint_segments = 100
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
fsync = off
full_page_writes = off`

首先,我尝试导入一个小国家提取物(卢森堡),设置缓存大小为 6000,使用 utils 中的 setup.php 文件,不到 1 小时就成功导入。

其次,我把卢森堡的数据删掉了,再导入大不列颠的国家提取,用8000的缓存,2-3小时左右也成功导入了。

今天,我决定尝试导入整个 planet.pbf 文件,因此我删除了 postgresql 数据库,从官方镜像站点之一下载了该星球的 pbf,然后使用缓存大小为 10000。之前,我已经阅读了一些基准,以模糊了解此操作需要多少时间和空间。

当导入开始时,我感到非常惊讶。节点的导入速度高达 1095.6k/s,在我分析过的基准(32GB ram 机器)中,它只有 311.7k/s。

但是当节点的导入完成,并且路径的导入开始时,速度明显下降。正在以 0.16k/s 的速度导入路径(虽然是缓慢上升,但从 0.05k/s 开始,4 小时后上升到上述值)。

我已停止导入,并尝试调整设置。我首先分配了更高的缓存大小(12000),但没有成功,节点以非常高的速度导入,但方式保持在 0.10-0.13k/s。然后我尝试分配一个新的交换文件(原来是 8GB,我已经分配了另外 32GB 作为交换文件),但这也没有改变任何东西。最后,我编辑了 setup.php,将 --number-processes 从 1 更改为 6,并在 osm2psql 从那里启动时包含了 --slim 关键字,但没有任何改变。

现在我没有想法。这个速度下降正常吗?我应该将我的机器升级到推荐的内存吗?我认为 16GB 的内存足以满足行星 pbf 的需求,我知道这台机器可能需要更多时间,然后是 32GB,但这似乎非常多。如果整个星球的导入时间不超过 12-15 天,我可以接受,但现在看来,使用这些设置,导入需要大约 2 个月,考虑到错误,这实在是太多了可能发生在任何地方,我必须重新开始整个导入过程。

有什么可能导致此问题的想法,或者我可以尝试哪些其他调整来加快导入过程?

谢谢

【问题讨论】:

    标签: postgresql nominatim osm2pgsql


    【解决方案1】:

    我在使用 SATA 驱动器时遇到了类似的性能问题,当我将 SATA 驱动器替换为 SSD 驱动器时,导入速度从 0.02k/s 提高到 8.29k/s。现在我的关系导入速度非常慢,速度为 0.01/s,所以我相信内存也是完整行星导入的重要因素,但我没有再次测试它。

    【讨论】:

    • 从那时起,我们升级了内存,并且以更快的速度导入方式和关系(方式约 23k/s,关系约 128/s)。我们现在处于最后一个排名阶段,但仍然需要大约 6 天才能完成。但我可以忍受;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    相关资源
    最近更新 更多