Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ページキャッシュの概念
Search
Satoru Takeuchi
PRO
November 01, 2020
Technology
0
280
ページキャッシュの概念
以下動画のテキストです
https://youtu.be/x15iXjCeJaY
Satoru Takeuchi
PRO
November 01, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
eBPF
sat
PRO
1
110
waruiBPF
sat
PRO
0
100
eBPFとwaruiBPF
sat
PRO
5
3.4k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
92
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
190
様々なファイルシステム
sat
PRO
0
330
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
420
ソースを読むプロセスの例
sat
PRO
22
18k
メモリマップトファイル
sat
PRO
1
180
Other Decks in Technology
See All in Technology
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
750
I tried making a solo advent calendar!
zzzzico
0
140
AI with TiDD
shiraji
1
340
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Digitization部 紹介資料
sansan33
PRO
1
6.4k
Oracle Cloud Infrastructure:2025年12月度サービス・アップデート
oracle4engineer
PRO
0
210
コールドスタンバイ構成でCDは可能か
hiramax
0
130
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
2.3k
わが10年の叡智をぶつけたカオスなクラウドインフラが、なくなるということ。
sogaoh
PRO
1
370
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
380
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
RailsConf 2023
tenderlove
30
1.3k
Making Projects Easy
brettharned
120
6.5k
For a Future-Friendly Web
brad_frost
180
10k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
We Are The Robots
honzajavorek
0
130
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
YesSQL, Process and Tooling at Scale
rocio
174
15k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
37
Navigating Team Friction
lara
191
16k
New Earth Scene 8
popppiees
0
1.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
370
Transcript
ページキャッシュの概念 Oct 31th, 2020 Satoru Takeuchi Twitter: satoru_takeuchi, EnSatoru 1
ページキャッシュ概要 • 課題 ◦ ストレージデバイスへのアクセスはメモリアクセスに比べて非常に遅い ▪ NVMe SSDへのランダムアクセス : 100倍以上遅い
▪ HDDへのランダムアクセス : 一万倍以上遅い ◦ システム全体の性能はストレージアクセスがボトルネックになる • 解決方法 ◦ ページキャッシュ: ストレージ上のデータを一時的にメモリ上に置いておく機能 ◦ ストレージデバイスへの見かけ上のアクセス速度をメモリアクセス速度と同等にする 2
ストレージからの読み出し • 次のような二段階の読み出しをする 1. 一旦ページキャッシュという領域に読み出す 2. プロセスのメモリに読み出す • 以下ファイルAの先頭から4KiB読み出す例 3
メモリ プロセスのメモリ XXXX ページキャッシュ ファイルAの0~4KiB: XXXX ストレージ ファイルA 読み出し 0~4KiB: XXXX 読み出し
二回目以降の読み出し • 既存のページキャッシュ上のデータを読み出す ◦ ストレージへのアクセスは発生しない ◦ 見かけ上の読み出し速度はメモリアクセス速度と同等 4 メモリ プロセスのメモリ
XXXX ページキャッシュ ファイルAの0~4KiB: XXXX ストレージ ファイルA 0~4KiB: XXXX 読み出し
ストレージへの書き込み • ストレージではなくメモリ上のページキャッシュという領域に書く ◦ 書いた後はすぐに復帰 ◦ 見かけ上の書き込み速度はメモリアクセス速度と同等になる • 以下、プロセスのデータをファイルAの先頭から4KiB書き込む例 5
メモリ プロセスのメモリ YYYY ページキャッシュ ファイルAの0~4KiB: YYYY ストレージ ファイルA 書き込み 0~4KiB: XXXX
その後の読み出し • ストレージではなくページキャッシュから読み出す ◦ 見かけ上の読み出し速度はメモリアクセス速度と同等に 6 メモリ プロセスのメモリ YYYY ページキャッシュ
ファイルAの0~4KiB: YYYY ストレージ ファイルA 読み出し ファイルA 0~4KiB: XXXX
ストレージへの反映 • メモリ上のデータはマシンの電源が消えると無くなってしまう • 以下のような契機で書き出し(ライトバック)をする ◦ ページキャッシュの大きさがカーネルが設定する閾値を超えた ◦ 一定時間の経過 7
メモリ プロセスのメモリ ページキャッシュ ファイルAの0~4KiB: XXXX ストレージ ファイルA 書き込み 0~4KiB: XXXX
ページキャッシュが有用なケース • 所定の期間内にアクセスするデータがキャッシュメモリ上におさまる ◦ 見かけ上のストレージアクセス速度はメモリへアクセス速度にできる ◦ システムの搭載メモリ量が増えるとキャッシュメモリに使える領域も増える • おさまらなくなればライトバック処理が頻繁に動くので性能が劣化 •
システム運用におけるヒント ◦ 読み書きするデータ量の増加に伴って性能が急激に劣化した。なぜだろう? ▪ データがページキャッシュに乗り切らなくなったせいかもしれない ◦ システムの性能を劇的に挙げる方法はないだろうか? ▪ データがページキャッシュに乗り切るようメモリ増強すると可能かもしれない
まとめ • メモリアクセス速度に比べてストレージへのアクセス速度は遅い • その速度差を吸収するのがページキャッシュ • データ量をページキャッシュに収められると最大の効果を発揮 • CPUの演算速度とメモリアクセス速度差については以下動画を参照 ◦
その7 キャッシュメモリ ◦ その13 キャッシュメモリの効果 • Latency Numbers Every Programmer Should Know ◦ https://colin-scott.github.io/personal_website/research/interactive_latency.html