私はデータベースとPostgresの初心者です。私は、 "CreateSharedMemoryAndSemaphores"メソッドでPostgresによって割り当てられているメモリを分析しています。メソッド "CreateSharedMemoryAndSemaphores"によって割り当てられるメモリを知ることは可能ですか?
変数「サイズ」は100000のデフォルト値で開始し、「SpinlockSemaSize」、「LockShmemSize」などのように、共有メモリの束を追加して同様
は、個々のメソッドがどのように追加しているかを知る方法はあります変数のメモリの多くは?
size = 100000;
size = add_size(size, SpinlockSemaSize());
size = add_size(size, hash_estimate_size(SHMEM_INDEX_SIZE,
sizeof(ShmemIndexEnt)));
size = add_size(size, BufferShmemSize());
size = add_size(size, LockShmemSize());
size = add_size(size, PredicateLockShmemSize());
size = add_size(size, ProcGlobalShmemSize());
size = add_size(size, XLOGShmemSize());
size = add_size(size, CLOGShmemSize());
size = add_size(size, CommitTsShmemSize());
size = add_size(size, SUBTRANSShmemSize());
size = add_size(size, TwoPhaseShmemSize());
size = add_size(size, BackgroundWorkerShmemSize());
size = add_size(size, MultiXactShmemSize());
size = add_size(size, LWLockShmemSize());
size = add_size(size, ProcArrayShmemSize());
size = add_size(size, BackendStatusShmemSize());
size = add_size(size, SInvalShmemSize());
size = add_size(size, PMSignalShmemSize());
size = add_size(size, ProcSignalShmemSize());
size = add_size(size, CheckpointerShmemSize());
size = add_size(size, AutoVacuumShmemSize());
何らかのユーティリティや他のプロセスを使用してpostgresエンジンを起動せずに、共有メモリ計算の値(ipci.cファイルのCreateSharedMemoryAndSemaphores()メソッドで計算された値)を見つけることはできますか? – leoaaryan
マシン上の共有メモリセグメントの大きさを確認してください。これはオペレーティングシステムに依存します。 Linuxでは 'ipcs -m'を使います。 –
これは、postgres dbエンジンを起動した後でしか見つかりません。 postgres dbエンジンを起動しなくても見つけられるようにしたいと思います。 – leoaaryan