OSM データ専用のサーバーに Nominatim を次の構成でインストールしました: CentOS 7 オペレーティング システム、2x Intel XEON CPU L5420 @ 2.50GHz (合計 8 CPU コア)、16 GB の RAM、および 2x2TB SATA ハード ドライブ。
Nominatim インストール wiki ( http://wiki.openstreetmap.org/wiki/Nominatim/Installation#PostgreSQL_Tuning )の推奨事項に基づいて postgresql を構成しました。これらの構成には 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`
最初に、utils の setup.php ファイルを使用して、キャッシュ サイズを 6000 に設定して、小さな国の抽出物 (ルクセンブルグ) をインポートしようとしましたが、1 時間以内に正常にインポートされました。
次に、ルクセンブルグのデータを削除し、別のテスト目的で、キャッシュ サイズ 8000 を使用して、英国の国抽出物をインポートしました。これも、約 2 ~ 3 時間で正常にインポートされました。
今日、planet.pbf ファイル全体をインポートしようと決めたので、postgresql データベースを削除し、公式ミラー サイトの 1 つから惑星の 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 キーワードを含めましたが、何も変わりませんでした。
今、私はアイデアがありません。この速度低下は正常ですか?マシンを推奨メモリにアップグレードする必要がありますか? Planet pbf には 16GB の RAM で十分だと思いましたが、このマシンでは 32 GB よりも時間がかかる可能性があることはわかっていましたが、これはかなりのようです。地球全体のインポートに 12 ~ 15 日もかからない場合は、それで問題ありませんが、現在の状況では、これらの設定ではインポートに約 2 か月かかります。エラーを考えると、これは多すぎます。どこでも発生する可能性があり、インポートプロセス全体をもう一度開始する必要があります。
この問題を引き起こす可能性のあるアイデア、またはインポートプロセスを高速化するために他にどのような微調整を試みることができますか?
ありがとう