More Related Content
PDF
Introduction of Oracle Database Architecture PDF
PPTX
iostat await svctm の 見かた、考え方 PPTX
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料) PDF
Managing users & tables using Oracle Enterprise Manage PDF
Docker 9 tips~意外と知られていない日常で役立つ便利技 PDF
PDF
PostgreSQL Unconference #29 Unicode IVS What's hot
PDF
PDF
Performance Analysis: The USE Method PDF
PDF
How the Postgres Query Optimizer Works PPTX
明日からはじめられる Docker + さくらvpsを使った開発環境構築 PPT
PPTX
PPTX
Oracleからamazon auroraへの移行にむけて PPTX
Thick client pentesting_the-hackers_meetup_version1.0pptx PPT
Cross Site Request Forgery Vulnerabilities PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~ PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料) PDF
PostgreSQLの運用・監視にまつわるエトセトラ PPT
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 PDF
AWSでDockerを扱うためのベストプラクティス PDF
AWS Redshift Analyzeの必要性とvacuumの落とし穴 PPTX
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202... PDF
なかったらINSERTしたいし、あるならロック取りたいやん? Viewers also liked
PDF
PDF
PDF
20170518_今さら聞けないHANAのハナシの基本のき by SAPジャパン株式会社 新久保浩二 PDF
[20171031 db tech salon] クラウド移行をベトナムで!? by 株式会社インサイトテクノロジー 森 茂紀 PDF
PDF
More from Shinji Miyazato
PDF
PDF
PDF
PDF
PDF
PDF
PDF
AWS re:Invent 2018 行ってきました報告 / JAWS-UG Okinawa 20190119 PDF
PDF
[TechPlayConf]Rekognition導入事例 PPTX
Cache勉強会
- 1.
- 2.
- 3.
キャッシュ(Cache)
• キャッシュ (cache)は、CPUのバスやネットワークなど様々な情報伝達経路において、ある領
域から他の領域へ情報を転送する際、その転送遅延を極力隠蔽化させ転送効率を向上させるた
めに考案された記憶階層の実現手段である。
• 転送元と転送先の中間に位置し、データ内容の一部とその参照を保持する。データ転送元への
転送要求があり、それへの参照が既にキャッシュに格納されていた場合は、元データからの転
送は行わずキャッシュが転送を代行する(この状態をキャッシュヒット、キャッシュに所望の
データが存在せず元データから転送する状態をキャッシュミスという)。
これらによりデータ転送の冗長性やオーバヘッドを低減させることで転送効率を向上させる。
Wikipediaより引用
引用元) http://ja.wikipedia.org/wiki/キャッシュ_(コンピュータシステム)
- 4.
• ここでおさらい!
デスク上での作業で例えると。
CPU・・・ 「仕事・作業をしてる人」
–良いCPUとは、仕事・作業をしてる人の能力が高いということ。
メモリ・・・「デスク」
– 良いメモリとは、デスクが広くて作業がはかどるということ。
HDD・・・「デスクの引き出し」
– 良いハードディスクとは、引き出しが大きくて、作った物がたくさん入るということ
。
引用元) http://enjoy.sso.biglobe.ne.jp/archives/zukai_pc/
つまり、「能力が高い人が、広いデス
クで作業すれば仕事がとてもはかどり
、その結果として良いものをたくさん
作ることができて、さらに引き出しが
大きければ、どんどん在庫を保管して
おくことができる」ということ。
CPU/メモリ/HDDの違い
- 5.
- 6.
いろいろなキャッシュ
• HWが提供するキャッシュ
– CPU~メモリ間
➢L1キャッシュ、L2キャッシュ、L3キャッシュ
• OSが提供するキャッシュ
– HDD~メモリ間
➢ ページキャッシュ(ディスクキャッシュ)
➢ 全てのプログラムは、メモリ上で実行される(これも一種のキャッシュ)
• SWレイヤで提供するキャッシュ
– Webブラウザ
➢ ブラウザキャッシュ
– KeyValueストア系キャッシュSW
➢ Memcached
➢ VarnishCache
– データベース(以下はOracleの名称だが、他DB製品でも同様な機能を持つ)
➢ ライブラリ・キャッシュ
➢ ディクショナリ・キャッシュ
➢ バッファ・キャッシュ
- 7.
- 8.
- 9.
HDDのキャッシュ
• HDDは、メインメモリと比べてもI/O(Read/Write)性能が格段に遅い!
• HDDのI/O待ちを減らすために、Linux(に限らず他の OS もそうですが) にはディスクの
内容を一度読んだらそれをカーネルがキャッシュして、二度目以降はメモリから読む
機構 = ページキャッシュがある。
• 実演
# dd if=/dev/urandom of=/tmp/test bs=1M count=100
⇒100MBのファイルを作成
# sync;echo 3 > /proc/sys/vm/drop_caches
⇒ページキャッシュをクリア
# time cat /tmp/test > /dev/null
⇒ページキャッシュをクリアする前後で100MB読み出し時間比較!
HDD/メモリの性能によるが、データ転送速度100倍程度、
探索処理は10万倍~100万倍程度の差がある
- 10.
- 11.
Oracleのキャッシュ
• ライブラリ・キャッシュ
– 共有SQL領域(SQL解析ツリー、実行計画)
•ディクショナリ・キャッシュ
– オブジェクト(テーブルなど)の属性情報、構成情報を保持
• バッファ・キャッシュ
– データファイルの中身
• SQL処理フロー
① SQLの解析(PARSE)
◆ 表や列の定義チェック、アクセス権限のチェックを行い
最適な実行計画が選択される
◆ 解析結果を共有プールに保持する。
再度同じSQLが発行された場合に不要な解析を繰返す必要がなくなる。
② SQLの実行(EXECUTE)
◆ SQL処理に必要なターゲットのデータを、データベース・バッファ・キャッシュ上で探す
。
◆ 見つからなかった場合は、データ・ファイルから対象ブロックを読込む⇒ディスクIO発
生
◆ 読み込んだデータをバッファ・キャッシュに保持する。
次回対象データへのアクセスが発生した場合は、バッファ・キャッシュ
③ 値の取出し(FETCH)
※Selectのみ
- 12.
- 13.
- 14.
- 15.