924 research outputs found
Elevating commodity storage with the SALSA host translation layer
To satisfy increasing storage demands in both capacity and performance,
industry has turned to multiple storage technologies, including Flash SSDs and
SMR disks. These devices employ a translation layer that conceals the
idiosyncrasies of their mediums and enables random access. Device translation
layers are, however, inherently constrained: resources on the drive are scarce,
they cannot be adapted to application requirements, and lack visibility across
multiple devices. As a result, performance and durability of many storage
devices is severely degraded.
In this paper, we present SALSA: a translation layer that executes on the
host and allows unmodified applications to better utilize commodity storage.
SALSA supports a wide range of single- and multi-device optimizations and,
because is implemented in software, can adapt to specific workloads. We
describe SALSA's design, and demonstrate its significant benefits using
microbenchmarks and case studies based on three applications: MySQL, the Swift
object store, and a video server.Comment: Presented at 2018 IEEE 26th International Symposium on Modeling,
Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS
Synergistically Coupling Of Solid State Drives And Hard Disks For Qos-Aware Virtual Memory
With significant advantages in capacity, power consumption, and price, solid state disk (SSD) has good potential to be employed as an extension of dynamic random-access memory, such that applications with large working sets could run efficiently on a modestly configured system. While initial results reported in recent works show promising prospects for this use of SSD by incorporating it into the management of virtual memory, frequent writes from write-intensive programs could quickly wear out SSD, making the idea less practical.
This thesis makes four contributions towards solving this issue. First, we propose a scheme, HybridSwap, that integrates a hard disk with an SSD for virtual memory man-agement, synergistically achieving the advantages of both. In addition, HybridSwap can constrain performance loss caused by swapping according to user-specified QoS requirements.
Second, We develop an efficient algorithm to record memory access history and to identify page access sequences and evaluate their locality. Using a history of page access patterns HybridSwap dynamically creates an out-of-memory virtual memory page layout on the swap space spanning the SSD and hard disk such that random reads are served by SSD and sequential reads are asynchronously served by the hard disk with high efficiency.
Third, we build a QoS-assurance mechanism into HybridSwap to demonstrate the flexibility of the system in bounding the performance penalty due to swapping. It allows users to specify a bound on the program stall time due to page faults as a percentage of the program\u27s total run time.
Forth, we have implemented HybridSwap in a recent Linux kernel, version 2.6.35.7. Our evaluation with representative benchmarks, such as Memcached for key-value store, and scientific programs from the ALGLIB cross-platform numerical analysis and data processing library, shows that the number of writes to SSD can be reduced by 40% with the system\u27s performance comparable to that with pure SSD swapping, and can satisfy a swapping-related QoS requirement as long as the I/O resource is sufficient
RackBlox: A Software-Defined Rack-Scale Storage System with Network-Storage Co-Design
Software-defined networking (SDN) and software-defined flash (SDF) have been
serving as the backbone of modern data centers. They are managed separately to
handle I/O requests. At first glance, this is a reasonable design by following
the rack-scale hierarchical design principles. However, it suffers from
suboptimal end-to-end performance, due to the lack of coordination between SDN
and SDF.
In this paper, we co-design the SDN and SDF stack by redefining the functions
of their control plane and data plane, and splitting up them within a new
architecture named RackBlox. RackBlox decouples the storage management
functions of flash-based solid-state drives (SSDs), and allow the SDN to track
and manage the states of SSDs in a rack. Therefore, we can enable the state
sharing between SDN and SDF, and facilitate global storage resource management.
RackBlox has three major components: (1) coordinated I/O scheduling, in which
it dynamically adjusts the I/O scheduling in the storage stack with the
measured and predicted network latency, such that it can coordinate the effort
of I/O scheduling across the network and storage stack for achieving
predictable end-to-end performance; (2) coordinated garbage collection (GC), in
which it will coordinate the GC activities across the SSDs in a rack to
minimize their impact on incoming I/O requests; (3) rack-scale wear leveling,
in which it enables global wear leveling among SSDs in a rack by periodically
swapping data, for achieving improved device lifetime for the entire rack. We
implement RackBlox using programmable SSDs and switch. Our experiments
demonstrate that RackBlox can reduce the tail latency of I/O requests by up to
5.8x over state-of-the-art rack-scale storage systems.Comment: 14 pages. Published in published in ACM SIGOPS 29th Symposium on
Operating Systems Principles (SOSP'23
๋ฉ๋ชจ๋ฆฌ ์ค์ ํจํด ๋ถ์์ ํตํ ์ค์ ์์คํ ์ต์ ํ
ํ์๋
ผ๋ฌธ (์์ฌ) -- ์์ธ๋ํ๊ต ๋ํ์ : ๊ณต๊ณผ๋ํ ์ปดํจํฐ๊ณตํ๋ถ, 2021. 2. ์ผํ์.The use of memory is one of the key parts of modern computer architecture
(Von Neumann architecture) but when considering limited memory, it could be the most lethal part at the same time. Advances in hardware and software are making rapid strides in areas such as Big Data, HPC and machine learning and facing new turning points, while the use of memory increases along with those advances. In the server environment, various programs share resources which leads to a shortage of resources. Memory is one of those resources and needs to be managed. When the system is out of memory, the operating system evicts some of the pages out to storage and then loads the requested pages in memory. Given that the storage performance is slower than the memory, swap-induced delay is one of the critical issues in the overall performance degradation. Therefore, we designed and implemented a swpTracer to provide visualization to trace the swap in/out movement. To check the generality of the tool, we used mlock to optimize 429.mcf of Spec CPU 2006 based on the hint from swpTracer. The optimized program executes 2 to 3 times faster than the original program in a memory scarce environment. The scope of the performance improvement with previous system calls decreases when the memory limit increases. To sustain the improvement, we build a swap- prefetch to read ahead the swapped-out pages. The optimized application with swpTracer and swap-prefetch consistently exceeds the performance of the original code by 1.5x.๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์ ํ๋ ์ปดํจํฐ ์ํคํ
์ฒ(ํฐ ๋
ธ์ด๋ง ์ํคํ
์ณ)์ ํต์ฌ ๋ถ๋ถ ์ค ํ ๋์ด๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ํ๊ฒฝ์ ์ฑ๋ฅ์ ์น๋ช
์ ์ธ๋ค. ํ๋์จ์ด์ ์ํํธ์จ ์ด์ ๋ฐ์ ์ผ๋ก ๋น
๋ฐ์ดํฐ, HPC, ๋จธ์ ๋ฌ๋๊ณผ ๊ฐ์ ๋ถ์ผ๋ค์ด ๋น ๋ฅธ ์๋๋ก ๋ฐ์ ํ์ฌ ๊ทธ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋๋ ์ฆ๊ฐํ๋ค. ๋ฐ๋ผ์, ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ํ๋ ์๋ฒ ๋๋ ํ๊ฒฝ ์ด๋, ์ฌ๋ฌ ์์
์ด ๋์์ ์ํ๋๋ ์๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์์
์ด ์ค๋จ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์์คํ
์ด๋ฉ๋ชจ๋ฆฌ๊ฐ๋ถ์กฑํ๋ฉด์ด์์ฒด์ ๋์ผ๋ถํ์ด์ง๋ฅผ์ ์ฅ์๋ก๋ด๋ณด๋ธ๋ค์
์์ฒญ๋ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ค. ์คํ ๋ฆฌ์ง ์ฑ๋ฅ์ด ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋๋ฆฌ๋ค๋ ์ ์ ์ ์ค์์ ์ํ ์ง์ฐ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ ์ ํ์ ์ค์ํ ๋ฌธ์ ์ค ํ๋์ด๋ค. ๋ฐ๋ผ์ ์ค์์ด ํ๋ก๊ทธ๋จ ์ํ ์๊ฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ก ํ๋ก๊ทธ๋จ์ ์ค์ ๋ฐ์ ์ถ์ด๋ฅผ ๋ถ์ํ์ฌ ์ค์ ๋ฐ์์ ์ค์ผ ์ ์๋๋ก ํํธ๋ฅผ ์ฃผ๋ ๋๊ตฌ์ธ swpTracer๋ฅผ ์ค๊ณ, ์ค ํํ๋ค. mlock์ ์ฌ์ฉํ์ฌ Spec CPU 2006 ๋ฒค์น๋งํฌ ์ค 429.mcf์ ์ ์ฉํ์ ๋ ๊ธฐ์กด ํ๋ก๊ทธ๋จ ๋๋น 2, 3 ๋ฐฐ ์ฑ๋ฅ์ด ๋นจ๋ผ์ก๋ค. ๊ธฐ์กด์ ์์คํ
์ฝ์ ์ฌ์ฉํ์ฌ ์ต์ ํํ์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด์ง ๋ถ์กฑํ ๊ฒฝ์ฐ์๋
๋น์ทํ์ฑ๋ฅ์๋ณด์ฌ์ฃผ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ๊ฐ 50% ๋ถ์กฑํ์๊ฐ๋ถํฐ์ฑ๋ฅํฅ์ํญ์ด์ค์๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์ ์์ ๋์๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์ด๋๋ swap-prefetch๋ฅผ ๊ตฌํํ๋ค. ๋ฐฐ์ด์ 3๋ฒ ํก๋จํ๋ ํ๋ก๊ทธ๋จ์ ๋์์ผ๋ก ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉด์ swap-prefetch์ ์ฑ๋ฅ์ ์ํํ๋ค. ์๋ณธ ์ฝ๋์ ์์คํ
ํจ์์ธ madvise๋ฅผ ์ฌ์ฉ ํ์ ๋๋ณด๋ค ํ๊ท ์ ์ผ๋ก 1.5 ์ข์์ก๋ค. ๋, swap-prefetch๋ฅผ ๋ค๋ฅธ ์์คํ
ํจ์๋ฅผ ์ฌ์ฉํ์ ๋์ mlock๊ณผ ๋น๊ตํ์ ๋ ํ๊ท 1.25๋ฐฐ ์ฑ๋ฅ์ด ๋นจ๋ผ์ก๋ค.Abstract
Chapter 1
Introduction 1
Chapter 2
Background 4
2.1 Page Reclamation Policy . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Linux Swap Management . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Linux System Calls . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Chapter 3
Design and Implementation 8
3.1 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 Kernel Level . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2 Application Level . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 4 Evaluation 15
4.1 Experimental Setting . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.1 Generality of swpTracer . . . . . . . . . . . . . . . . . . . 16
4.2.2 Memory Optimization Method Comparison . . . . . . . . 17
Chapter 5
Related Work 20
Chapter 6 Conclusion 22
Bibliography ์ด๋ก 28Maste
- โฆ