ablog

不器用で落着きのない技術者のメモ

Oracle Database on AIX の共有メモリの使い方

intermediatesql.com が良記事なのでサマリをメモ。

  • PRA_PAGE_SGA=true にすると起動時にSGAサイズ分の物理もメモリを使う。そうでない場合は、デマンド・ページングにより仮想メモリは割当てられるが、物理メモリが割当てられるのは実際に使われるとき。*1
  • LOCK_SGA=ture にすると、ページアウトされない。*2
  • 10.1 以降は "vmo -p -o v_pinshm = 1" を設定する必要ない。
    • 9.2 までのメモリロック
shmget(IPC_PRIVATE, shm_size, IPC_CREAT|SHM_PIN)
    • 10.1 からのメモリロック
shmctl(shm_id, SHM_LOCK, ...)
  • AIX のページサイズは 4K, 64K, 16M, 16G の4つ。
  • 16M、16Gのラージページはページアウトできない。
  • ラージページを使う場合は LOCK_SGA=true にする必要がある。

*1:AIXに限らない

*2:AIXに限らない