web-dev-qa-db-ja.com

PostgreSQLのファイルシステム調整

Ubuntu 14.04ワークステーションにPostgreSQL 9.xバージョンをインストールしたいのですが、それを設定する方法についての推奨事項を探しています

  • 優れた読み取り/書き込み(50/50バランス)パフォーマンスを得る

  • 従来のシステム全体の使用に対してまともなパフォーマンスを維持します。

私の考えは、SSDドライブに2つのメインパーティションを用意することです。

  • [A]ルートシステム用のext4( "/")、OS推奨/デフォルト設定。

  • [B]大きなブロックサイズ(例:1MB)と大きな先読みサイズ(どのくらい?)と適切なフラグ(どれ?)を持つpostgresデータベースファイル( "/ var/lib/pgsql")のext4。

Postgres dbファイルを一般的なシステムから分離することが良いアイデアかどうかは、私にはわかりません。そのような場合、[B]ブロックサイズ、先読みサイズ、ファイルシステムフラグに関するアドバイスはありますか?

さらに役立つヒントはありますか?

SSDを使用しているので、先読みを無効にした方がよいでしょう。フラッシュベースのドライブでは、シーク時間は問題になりません。それはスピニング時代のことです。ファイルシステムを適切に調整することがより重要です。

Postgresqlは8kページを使用しているため、一般的に最高のパフォーマンスはブロックサイズの一致で得られます。

XFSでnobarrierを使用し、適切なagcountとログでファイルシステムを作成します。 ( https://serverfault.com/questions/222305/trying-to-determine-the-correct-number-of-xfs-allocation-groups-for-postgresql-s )。

特にデータがキャッシュに収まらず、ディスクから読み取る必要がある場合は、ZFSのような圧縮ファイルシステムを使用することでメリットを得ることもできます。通常、データベースの場合は2〜4倍になり、ディスクから読み取られるブロックが2〜4倍少なくなりますが、これはユースケースによって大きく異なります。 ZFSを使用する場合は、recordize = 8k、compression = lz4、primarycache = allを使用し、特定のディスクにシフトを設定する必要があるかどうかを確認します(cat /sys/block/[device]/queue/physical_block_sizeを実行して512バイトまたは4kブロックを使用している場合)。 http://zfsonlinux.org/faq.html#PerformanceConsideration

3
Károly Nagy

単純にする。 ext4のチューニングによってベンチマークに大きな違いがあったとは聞いたことがありません。

安全なことができます。4KBのブロックサイズを使用し、noatimeでマウントしますが、パフォーマンスの向上は期待できません。

notデータベースをルートファイルシステムに配置する必要があります。データベース用に特別なファイルシステムを作成し、ファイルシステムがいっぱいになってもオペレーティングシステムが影響を受けないようにします。

0
Laurenz Albe

一般に、postgres機能の点では問題にはなりません。目的のためにpostgresサービスを停止する必要があることを知っていると思います。すべてのデータディレクトリを新しい場所にコピーし、postgresql.confのdata_dirを変更します。自分でやったことはありません。私があなたなら、最初に、いくつかの負荷テストを伴うテストENVでそれを行います。それが役に立てば幸い

見てください: https://serverfault.com/questions/310350/postgresql-alternate-database-location

0
Vlad Kirov