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
December 29, 2020
Technology
0
690
ページキャッシュとバッファキャッシュ マニアクス
以下動画のテキストです。
https://youtu.be/N49m7YAKjug
Satoru Takeuchi
PRO
December 29, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
110
会社員しながら本を書いてきた知見の共有
sat
PRO
3
780
デバイスにアクセスするデバイスファイル
sat
PRO
1
35
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
30
デバイスドライバ
sat
PRO
0
47
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
120
共有メモリ
sat
PRO
3
69
マルチスレッドプログラム
sat
PRO
3
57
Linuxのブートプロセス initramfs編
sat
PRO
2
83
Other Decks in Technology
See All in Technology
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
0
140
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
2
790
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
110
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
1
460
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
1
180
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
160
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
170
モバイル界のMCPを考える
naoto33
0
350
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
370
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
680
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
100
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
510
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.5k
Balancing Empowerment & Direction
lara
1
390
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Side Projects
sachag
455
42k
Done Done
chrislema
184
16k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
500
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Automating Front-end Workflow
addyosmani
1370
200k
How GitHub (no longer) Works
holman
314
140k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
Transcript
ページキャッシュと バッファキャッシュ マニアクス Dec 29th, 2020 Satoru Takeuchi Twitter: satoru_takeuchi,
EnSatoru 1
ページキャッシュとバッファキャッシュの疑問 • 同じようなしくみが二つあるけど大丈夫なの? ◦ 重複でキャッシュされたりしない? ◦ 重複されるとしたら同期とれてるの? • 本動画ではそのような疑問に答えます 2
ファイルの中身とブロックデバイス • Q: 以下の場合にページキャッシュとバッファキャッシュどちらに入る? 1. あるブロックデバイス上のファイルシステムからファイル Aを読み出す 2. 同じブロックデバイスからファイル Aに対応するデータを読み出す
3 ブロックデバイス メモリ ファイルA 1. ファイルシステムから読み出す 例) cat A 2. ブロックデバイスから読み出す 例) dd if=/dev/sda of=/dev/null
ファイルの中身とブロックデバイス • A: ページキャッシュにもバッファキャッシュにもキャッシュされる ◦ 両者の同期はとられない ◦ いずれかがdirtyになった瞬間にキャッシュ不整合が起きる 4 ブロックデバイス
メモリ ファイルA 1. ファイルシステムから読み出す 例) cat A 2. ブロックデバイスから読み出す 例) dd if=/dev/sda of=/dev/null ファイルA ファイルA (バッファキャッシュ) (ページキャッシュ)
ファイルのメタデータとブロックデバイス • Q: 以下の場合に2つのバッファキャッシュが作られる? 1. あるブロックデバイス上のファイルシステムからファイル Aのメタデータを読み出す 2. 同じブロックデバイスからメタデータ Aに対応するデータを読み出す
5 ブロックデバイス メモリ ファイルAの メタデータ 1. ファイルシステムから読み出す 例) stat A 2. ブロックデバイスから読み出す 例) dd if=/dev/sda of=/dev/null
ファイルのメタデータとブロックデバイス • A: ブロックデバイスのバッファキャッシュは1つだけ存在 ◦ ファイルシステムが使うバッファキャッシュは対応するブロックデバイスのものと同じ 6 ブロックデバイス メモリ ファイルAの
メタデータ 1. ファイルシステムから読み出す 例) stat A 2. ブロックデバイスから読み出す 例) dd if=/dev/sda of=/dev/null ファイルAの メタデータ (バッファキャッシュ)
ディスクとパーティション • Q: ディスクとパーティションはバッファキャッシュを共有する? 1. ディスク上のなんらかのデータを読み出す 2. 上記と同じデータをパーティションから読み出す 7 sda
メモリ 1. ディスクから読み出す 例) dd if=/dev/sda 2. パーティションから読み出す 例) dd if=/dev/sda1 データ データ
ディスクとパーティション • A: 共有しない。それぞれ独立したバッファキャッシュを持つ ◦ 同期もとっていない ◦ いずれかがdirtyになった瞬間にキャッシュ不整合が起きる 8 sda
メモリ 1. ディスクから読み出す 例) dd if=/dev/sda 2. パーティションから読み出す 例) dd if=/dev/sda1 データ データ データ データ (バッファキャッシュ) (バッファキャッシュ)
まとめ • 危険な操作 ◦ 使用中のファイルシステムに対応するブロックデバイスを開く ◦ ブロックデバイスとその上のパーティションを同時に開く • ブロックデバイスファイル操作コマンドの作成には細心の注意を払おう 9