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
740
ページキャッシュとバッファキャッシュ マニアクス
以下動画のテキストです。
https://youtu.be/N49m7YAKjug
Satoru Takeuchi
PRO
December 29, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
ソースを読むプロセスの例
sat
PRO
15
9.4k
メモリマップトファイル
sat
PRO
1
110
「Linux」という言葉が指すもの
sat
PRO
4
210
APIとABIの違い
sat
PRO
5
180
ファイルシステムへのアクセス方法
sat
PRO
0
72
ファイルシステム
sat
PRO
1
68
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.2k
ポーリングと割り込み
sat
PRO
1
120
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
150
Other Decks in Technology
See All in Technology
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
370
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.5k
プレーリーカードを活用しよう❗❗デジタル名刺交換からはじまるイベント会場交流のススメ
tsukaman
0
190
私のMCPの使い方
tsubakimoto_s
0
110
LLMプロダクトの信頼性を上げるには?LLM Observabilityによる、対話型音声AIアプリケーションの安定運用
ivry_presentationmaterials
0
630
Building a cloud native business on open source
lizrice
0
100
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
280
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
8
1.1k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
Digitization部 紹介資料
sansan33
PRO
1
5.6k
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
140
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
930
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
11k
For a Future-Friendly Web
brad_frost
180
10k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
880
Designing for Performance
lara
610
69k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
4 Signs Your Business is Dying
shpigford
185
22k
RailsConf 2023
tenderlove
30
1.3k
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