2

8 GBのRAMを使用しているため、Windows7マシンのpostgresql.confファイルでshared_bufferを1GBから2GBに増やしようとしていますが、変更を加えてpostgresサービスを開始しようとすると、起動せず、ビューアにさえ、それは私に次のエラーを与えます。

 2013-03-18 16:07:41 ISTFATAL:  could not create shared memory segment: 8
 2013-03-18 16:07:41 ISTDETAIL:  Failed system call was MapViewOfFileEx.

私を助けてください

4

1 に答える 1

4

8.4 を使用している場合、ほぼ確実に 32 ビットの PostgreSQL を実行しているため、共有メモリのサイズは、プロセスの使用可能なアドレス空間の合計 2GB によって制限されます。32 ビット Windows (Wow64 を介して 64 ビット Windows で実行される 32 ビット プロセスを含む) は、2GB/2GB のユーザー/カーネル分割を使用します。

このエラー メッセージは、システムがマップできるよりも多くの共有メモリを Pg が割り当てようとしているため、システム コールが失敗していることを意味します。これを実際に修正することはできませんが、修正する必要はありません。

1GB の shared_buffers でさえ、Windows 上の 32 ビット Pg にはおそらく多すぎるため、ベンチマークはそれを裏付ける傾向があります。OS が使用できるディスク キャッシュの量を計画担当者に伝えるために、shared_buffersかなり低く抑えて増やした方がほぼ確実に優れています。バージョン ポリシーに従って、effective_cache_size一般的なパフォーマンスの向上とメンテナンス期間の延長のために、おそらく PostgreSQL 9.2 へのアップグレードを計画する必要があります。

増やしたい理由の詳細を添えて、別の質問を dba.stackexchange.com に投稿することを検討してください。どのような問題を解決しようとしていますか? クエリが遅い場合は、postgresql タグ情報postgresql-performance タグ情報を読んでください。新しい質問を投稿する場合は、ここにリンクを追加して、人々がフォローできるようにしてください。

于 2013-03-18T10:49:10.457 に答える