Search

OakieTags

Who's online

There are currently 1 user and 28 guests online.

Online users

Recent comments

Affiliations

In-Memory Parallel Query環境でメモリがだんだん足りなくなると

前回In-Memory PQはdirect path readではなくてsequential readとscattered readでbuffer_cacheに読み込むと書いた。
今回のシナリオは、

  • 対象が全てIn-memoryに有り、最高のスループットを出していた
  • しかし、月日の経過とともにデータ量が増え始め、ディスクI/Oで「継ぎ足しながら」In-Memory PQが動くようになった
同時4セッションで」のhammerora TPC-Hを動かした状況で

ASH Viewerでみると、scatterd readとsequential readの待ちが多く発生している。
read by other sessionのコンテンションが際立っている(前回の新久保君のコメント通り)。
もう少しデータを増やしてみると:

memory_targetで指定した領域が足りなくなり、3セッションがdirect path readでbuffer_cacheを使わないParallel Queryを行うように変わった。

こんな状況になってたら(#572406;">cache buffers chainsラッチミス より):

■データ量に「見合わない」実メモリしか積んでいないと「あきらめる」
■In-Memory Parallel Queryを使わない。pararell_degree_policy=MANUALに戻す。
■或いは、Partition化してbuffer_cacheに収まるサイズに縮小する

前回は、強引に「cache buffers chainsラッチミスが慢性的に発生しているときは」と書いてしまったけど、In-Memory Parallel Queryが使えない状況をLatch Timeoutのような「いち」現象から言い当てるのは難しいです。
なぜならば、AUTO指定でParallel Queryが動いたとたん、待機要素のパーセンテージはdirect path readに独占されるからです。(テストで使用しているSSD x 4のRAID0は、何度も書いていますが、520MB/sでデータ転送をしているのにも拘らずです。)