제 작은 취미 프로젝트[1]였던 Paul E. McKenney 의 책 한국어 번역이 약 8년 만에 소박한 이정표[2]를 완성했습니다. 매우 재미있고 유익한 여정이었습니다.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/perfbook.git/commit/?id=edbfcdee0460 [2] https://lore.kernel.org/perfbook/20240211175355.4986-1-sj38.park@gmail.com/
Below is a list of news around DAMON project.
This list is not exhaustive but just a DAMON maintainer’s collection of news. If you find a news that should be added to this list, please let us know at sj@kernel.org and/or damon@lists.linux.dev.
2024 2024-10-08: Videos for DAMON recipes at Open Source Summit EU'2024 and DAMON long-term plans at Kernel Memory Management Microconference'2024 are uploaded to YouTube.
2024-10-01: 2024-Q3 DAMON news letter including news for new features, more users, repos reorganizations, and conference talks is posted.
This document helps you estimating the amount of benefit that you could get from DAMON-based system optimizations, and describes how you could achieve it.
Check The Signs No optimization can provide same extent of benefit to every case. Therefore you should first guess how much improvements you could get using DAMON. If some of below conditions match your situation, you could consider using DAMON.
Low IPC and High Cache Miss Ratios.
2019-09-27 이후로 perfbook 번역을 멈췄었군요. 이제 perfbook 2nd 에디션도 나왔으니[0], 바닥부터 번역을 다시 시작해 봅니다[1]. 물론, 예전 번역본은 여전히 있습니다[2].
[0] https://mirrors.edge.kernel.org/.../perfbook/perfbook.html
[1] https://github.com/sjp38/perfbook-ko_KR/commit/1c44ef30179b
[2] https://github.com/sjp38/perfbook-ko_KR-pdf
다양한 형태로 생각을 기록하고 가끔은 공유도 해왔습니다. 그 생각들을 오래도록 안전히 보관하고 싶었지만 몇차례 시행착오를 거치며 그게 쉽지 않음을 깨달았습니다.
시작은 일기장과 노트였습니다. 분실하기도 쉽고 구석에 쳐박아 두면 다시 볼일도 거의 없더군요.
클라우드 문서 서비스가 매력적이어 보였습니다. 하지만 영원한 건 없고 결국 그때 그때 흥하는, 또는 사용 가능한 서비스를 옮겨다녀야 하더군요. 그러다보니 서비스마다의 호환성이 문제가 됩니다.
https://yargerdotblog.files.wordpress.com/2019/02/cloudmeme.jpg
Hugo 와 같은 README 등 표준적 포맷의 plain text 기반 static site generator 를 사용하고 Git 으로 원격 repo 도 관리하는 게 괜찮은 방법 같아 보였습니다.
Read-copy update (RCU) can provide ideal scalability for read-mostly workloads, but some believe that it provides only poor performance for updates. This belief is due to the lack of RCU-centric update synchronization mechanisms. RCU instead works with a range of update-side mechanisms, such as locking. In fact, many developers embrace simplicity by using global locking. Logging, hardware transactional memory, or fine-grained locking can provide better scalability, but each of these approaches has limitations, such as imposing overhead on readers or poor scalability on non-uniform memory access (NUMA) systems, mainly due to their lack of NUMA-aware design principles.
With increasingly data-intensive workloads and limited DRAM capacity, optimal memory management based on dynamic access patterns is becoming increasingly important. Such mechanisms are only possible if accurate and efficient dynamic access pattern monitoring is available.
DAMON is a Data Access MONitoring framework subsystem for the Linux kernel developed for such memory management. It is designed with some key mechanism (refer to Design for the detail) that make it
accurate (the monitoring output is useful enough for DRAM level memory management; It might not be appropriate for CPU Cache levels, though), light-weight (the monitoring overhead is low enough to be applied online), and scalable (the upper-bound of the overhead is in constant range regardless of the size of target workloads).
Memory pressure is inevitable as the size of working sets is rapidly growing while the capacity of dynamic random access memory (DRAM) is not. Meanwhile, storage devices have evolved so that their speed is comparable to the speed of DRAM while their capacity scales are comparable to that of hard disk drives (HDD). Thus, hierarchial memory systems configuring DRAM as the main memory and high-end storages as swap devices will be common.
idle_page_tracking[1] is a simple, stupid toolbox for idle pages tracking. It can be used to get real working set size of a process.
Tools This section describes two tools in the box though more tools exists. You can get more description about each tool from the README in the repository[1].
userprog userprog is a sample synthetic workload for test of other tools. It interactively allocates and access specified pages in the allocated pages.
쏟아지는 LKML[2] 의 메일들을 트위터 라이브스트림처럼 터미널에 보여주는 간단한 프로그램[1] 을 go 언어로 만들어 봤습니다. 아직 보완할 점 투성이지만 이제 최초의 목적대로는 동작하는군요.
References [1] https://github.com/sjp38/lkml
[2] https://en.wikipedia.org/wiki/Linux_kernel_mailing_list