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
730
ページキャッシュとバッファキャッシュ マニアクス
以下動画のテキストです。
https://youtu.be/N49m7YAKjug
Satoru Takeuchi
PRO
December 29, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
「Linux」という言葉が指すもの
sat
PRO
4
140
APIとABIの違い
sat
PRO
5
62
ファイルシステムへのアクセス方法
sat
PRO
0
26
ファイルシステム
sat
PRO
1
34
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.1k
ポーリングと割り込み
sat
PRO
1
81
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
140
会社員しながら本を書いてきた知見の共有
sat
PRO
3
880
デバイスにアクセスするデバイスファイル
sat
PRO
1
63
Other Decks in Technology
See All in Technology
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
270
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
10
75k
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
Rustから学ぶ 非同期処理の仕組み
skanehira
1
150
S3アクセス制御の設計ポイント
tommy0124
3
210
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
110
今日から始めるAWSセキュリティ対策 3ステップでわかる実践ガイド
yoshidatakeshi1994
0
120
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
260
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
A designer walks into a library…
pauljervisheath
207
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Designing for humans not robots
tammielis
253
25k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Docker and Python
trallard
46
3.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
A Tale of Four Properties
chriscoyier
160
23k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
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