Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ページキャッシュの概念
Search
Satoru Takeuchi
PRO
November 01, 2020
Technology
0
270
ページキャッシュの概念
以下動画のテキストです
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
88
waruiBPF
sat
PRO
0
80
eBPFとwaruiBPF
sat
PRO
4
2.5k
Pythonのコードの気になる行でスタックトレースを出す
sat
PRO
0
86
ソースコードを読むときの思考プロセスの例 ~markdownのレンダリング方法を知りたかった2 markdownパッケージ~
sat
PRO
0
170
様々なファイルシステム
sat
PRO
0
310
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
400
ソースを読むプロセスの例
sat
PRO
22
17k
メモリマップトファイル
sat
PRO
1
160
Other Decks in Technology
See All in Technology
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
610
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
600
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
630
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
660
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
460
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
250
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
750
計算機科学をRubyと歩む 〜DFA型正規表現エンジンをつくる~
ydah
3
210
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2.6k
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
2
450
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
130
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
770
Featured
See All Featured
Practical Orchestrator
shlominoach
190
11k
Designing for Performance
lara
610
69k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Designing for humans not robots
tammielis
254
26k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Writing Fast Ruby
sferik
630
62k
How GitHub (no longer) Works
holman
316
140k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Six Lessons from altMBA
skipperchong
29
4.1k
Git: the NoSQL Database
bkeepers
PRO
432
66k
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