-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
wusub.shin@softcamp.co.kr
committed
Apr 18, 2024
1 parent
dcf63cf
commit 239a573
Showing
4 changed files
with
278 additions
and
50 deletions.
There are no files selected for viewing
Binary file added
BIN
+80.6 KB
...icsearch/images/lets-look-at-the-caches-used-in-elasticsearch-1713419867671.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
{ | ||
"Changing-Default-Log-Storage-Paths-and-Setting-Log-Retention-Periods-for-Linux-Services": "linux service별 기본 log 저장 경로 변경 및 로그 적재 기간 설정", | ||
"Using-tcpdump-to-Check-Packet-Transmission-via-a-Specific-Port-on-CentOS-7": "Centos7 에서 tcpdump를 이용하여 특정 포트를 통한 패킷 발신 여부 확인하기", | ||
"Device-Names-in-Linux": "리눅스에서의 장치 이름" | ||
"Device-Names-in-Linux": "리눅스에서의 장치 이름", | ||
"linux-page-cache": "리눅스 페이지 캐시" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
import { Callout } from "nextra/components"; | ||
|
||
# 페이지 캐시 (Page Cache) | ||
|
||
리눅스 토발즈가 1995년에 리눅스 운영체제의 파일 시스템 관리를 개선하기 위해 가상 파일 시스템(VFS)과 실제 파일 시스템(FS) 사이에 캐시 계층을 도입하면서 이를 `페이지 캐시` 라고 부르게되었다 | ||
|
||
간단하게 `리눅스의 파일 시스템 캐시 방식` 이라고 보면 된다 | ||
|
||
파일 시스템 캐시의 정의는 | ||
|
||
**파일 I/O 가 발생하면 캐시 레이어에 파일 핸들별로 파일 데이터를 캐싱해놓고 동일한 파일에 대한 I/O 발생 시 디스크가 아닌 메모리상의 캐시 데이터를 읽고쓰도록하여 파일 I/O 속도를 빠르게 하기 위한 목적이다.** | ||
|
||
<Callout type="info" emoji="❕"> | ||
쓰기의 경우 캐시 메모리상의 데이터를 변경하고 해당 캐시의 데이터가 | ||
변경되었음을 알리는 **dirty(변경됨) 플래그를 ON**한다 그러면 운영체제의 | ||
`쓰기용 워커 스레드(flusher thread)` 가 주기적으로 **dirty 플래그가 ON** | ||
되어있는 캐시들을 찾아서 디스크에 쓰게 된다 | ||
|
||
이렇게 뒤늦게 디스크에 쓰이는 것을 [쓰기 지연(writeback)](https://scslab-intern.gitbooks.io/linux-kernel-hacking/content/chapter16.html) 이라고 한다 | ||
|
||
</Callout> | ||
|
||
흔히 알고있는 가상 메모리를 페이지 단위로 관리하는 **페이징 매커니즘과 다른 용어다** | ||
|
||
<Callout type="warning" emoji="❔"> | ||
"아니 그럼 그냥 파일 시스템 캐시라고 하지 왜 페이지 캐시라고 부르는거야?" | ||
|
||
필자는 처음에 위와 같은 의문이 들었다. | ||
|
||
찾아보니 그냥 `페이지 단위` 로 캐싱하는 방식이라 `페이지 캐시` 라고 부르게된 것 같다. | ||
|
||
</Callout> |