7

私はHeroku postgresデータベースをKappa計画(800MB RAM、postgres 9.1)からRonin計画(1.7GB RAM、postgres 9.2)にアップグレードしましたが、パフォーマンスは低下しています。低Postgresキャッシュヒット率 - データサイズなど何か?

ガイドhereに続いて、キャッシュヒット率がKappaデータベースのそれよりも低くなっています(今は〜57%、以前は〜69%)。以前の99%のキャッシュヒット率を見てきたように、私たちのアプリデザインは大丈夫です。

データセットがメモリに収まるようにすることをお勧めします。これは問題ではありません。データサイズは1.27GB(少なくとも大部分は適合する必要があります)です。

データサイズのためにキャッシュのヒット率が低いのですか、それとも何か他のものがありますか?それとも、単にデータベースキャッシュが完全にウォームアップしていない場合ですか? (それはほぼ2日です)

+1

* effective_cache_size *の古い値と現在の値は何ですか?そして* work_mem *? – Beryllium

+3

また、最新の統計情報はありますか? (インポート/変換後に 'VACUUM ANALYZE'を実行しましたか?) – wildplasser

+0

@Beryllium effective_cache_size 900000kB/1170000kB、work_mem 50MB/10MB – Daniel

答えて

3

メモリが豊富で、db上で他の多くを実行していない場合、変更される可能性のあるものはshared_buffersです。共有バッファは、頻繁に使用されるデータをキャッシュして、すべてのデータベースがメモリに収まらない場合に最大化するようにします。

残念ながら、このキャッシュはOSキャッシュと同様に機能しません。あなたのデータを簡単にメモリに収まる場合は、effective_cache_sizeが十分に高いことを確認し、その後、これは特効薬ではないことをshared_buffers

注意を削減を試してみてください。 shared_buffersの適切なサイズは、どれだけのデータがあるか、スペースがどれくらいかかっているか、クエリの種類、並べ替えなどに向かうメモリの量によって異なります。これにより、あなたの現在のセットアップとデータベースのスイートスポットを見つけることができます。

関連する問題