8 コア、16 GB のメモリ、および 3 TB の HD を備えた Ubuntu 14.04 を実行する専用の DB サーバーがあります。Postgres はバージョン 9.4 です。
大量のデータをクロールする 1 つのバッチ ジョブを実行しています (ジオポイントを線に結合します)。データは、それぞれ約 2 GB のパーティションに格納されます。データは 2 つのディメンションに沿って分割されます。両方のディメンションのインデックスと、マスター テーブルと子テーブルの 2 つのディメンションの結合インデックスがあります。
ジョブの実行中は、メモリ パフォーマンスを監視しhtop
ます。ただしhtop
、500MB を超えるメモリが使用されていないことを示しています /(使用可能なメモリの 3%)。
postgres wiki のパフォーマンスのヒントに従いました。そして、 pgtuneから適切な構成を取得しようとしました。どちらも運が悪い。メモリ使用量に大きな変化は見られません。
マシンがこのバッチ ジョブをできるだけ適切にサポートしていれば問題ありません。スクリプトの分析によると、フェッチは遅いです。書き込みは問題ないようです。
postgres がより多くのメモリを使用するように「強制」できますか? 魔法の設定はどこですか?postgres は OS キャッシングに大きく依存していることを読みました。これも見てみようhtop
かな!? OS がより多くのメモリを使用するように「強制」するにはどうすればよいですか?