Kompresja pamięci w jądrze Linuksa

Podobne dokumenty
SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

Helena Boguta, klasa 8W, rok szkolny 2018/2019

Stargard Szczecinski i okolice (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Zdecyduj: Czy to jest rzeczywiście prześladowanie? Czasem coś WYDAJE SIĘ złośliwe, ale wcale takie nie jest.

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

OpenPoland.net API Documentation

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Tychy, plan miasta: Skala 1: (Polish Edition)

Pielgrzymka do Ojczyzny: Przemowienia i homilie Ojca Swietego Jana Pawla II (Jan Pawel II-- pierwszy Polak na Stolicy Piotrowej) (Polish Edition)

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Ukryte funkcjonalności w oprogramowaniu i urządzeniach elektronicznych. mgr inż. Paweł Koszut

Zwora Yale US06. Yale seria US kg. Zastosowanie. Właściwości. Parametry techniczne

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

SNP SNP Business Partner Data Checker. Prezentacja produktu

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED

Bardzo formalny, odbiorca posiada specjalny tytuł, który jest używany zamiast nazwiska

Wybrzeze Baltyku, mapa turystyczna 1: (Polish Edition)

HAPPY ANIMALS L01 HAPPY ANIMALS L03 HAPPY ANIMALS L05 HAPPY ANIMALS L07

HAPPY ANIMALS L02 HAPPY ANIMALS L04 HAPPY ANIMALS L06 HAPPY ANIMALS L08

Jak zasada Pareto może pomóc Ci w nauce języków obcych?

DODATKOWE ĆWICZENIA EGZAMINACYJNE

Systemy operacyjne II

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

INSTRUKCJE JAK AKTYWOWAĆ SWOJE KONTO PAYLUTION

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Polskie Tlumaczenie Testy Prawo Jazdy UK - Samochody Osobowe (Polish Translation Driving Theory Test UK - Category B - Cars) 2008/2009 (Polish

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Revenue Maximization. Sept. 25, 2018

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

DO MONTAŻU POTRZEBNE SĄ DWIE OSOBY! INSTALLATION REQUIRES TWO PEOPLE!

Konsorcjum Śląskich Uczelni Publicznych

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

SNP Business Partner Data Checker. Prezentacja produktu

Lesson 46 ZAIMKI. przymiotnik w funkcji dzierżawczej / zaimek dzierżawczy Liczba pojedyncza

Atlas Geograficzny Dla Klasy 4 (Polish Edition) By Polskie Przedsiebiorstwo Wydawnictw Kartograficznych im. Eugeniusza Romera

Zarządzanie sieciami telekomunikacyjnymi

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students

Linux Kernel. Wprowadzenie

INSTRUKCJA MONTAŻU MARBO E SPORT LISTA CZĘŚCI (PARTS LIST) (ASSEMBLY INSTRUCTION) MH-W102 NR CZĘŚCI (PART NO.) ILOŚĆ (QUANTITY) OPIS (DESCRIPTION)

Working Tax Credit Child Tax Credit Jobseeker s Allowance

EXCEL PL PROGRAMOWANIE PDF

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010

Zakład Inżynierii Transportu Lotniczego

Polski Krok Po Kroku: Tablice Gramatyczne (Polish Edition) By Anna Stelmach

Kiedy od softu zależy ludzkie życie o systemach safety-critical. Maciej Gajdzica

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PLSH1 (JUN14PLSH101) General Certificate of Education Advanced Subsidiary Examination June Reading and Writing TOTAL

Linux Kernel III. Character devices

Maximum Ride Ostatnie Ostrzezenie Globalne Ocieplenie (Polska Wersja Jezykowa)

Camspot 4.4 Camspot 4.5

JĘZYK ANGIELSKI ĆWICZENIA ORAZ REPETYTORIUM GRAMATYCZNE

TEORIA CZASU FUTURE SIMPLE, PRESENT SIMPLE I CONTINOUS ODNOSZĄCYCH SIĘ DO PRZYSZŁOŚCI ORAZ WYRAŻEŃ BE GOING TO ORAZ BE TO DO SOMETHING

Before Adam starts work he needs to know where everything is. Maria shows him around the restaurant.

Sargent Opens Sonairte Farmers' Market

17-18 września 2016 Spółka Limited w UK. Jako Wehikuł Inwestycyjny. Marek Niedźwiedź. InvestCamp 2016 PL

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

Previously on CSCI 4622

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Maximum Ride Ostatnie Ostrzezenie Globalne Ocieplenie (Polska Wersja Jezykowa)

Rev Źródło:

Kamera internetowa TRACER Prospect Cam. Instrukcja obsługi. TRACER Prospect Cam Webcam User Manual

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Financial support for start-uppres. Where to get money? - Equity. - Credit. - Local Labor Office - Six times the national average wage (22000 zł)

Test sprawdzający znajomość języka angielskiego

January 1st, Canvas Prints including Stretching. What We Use

ARKUSZ PRÓBNEJ MATURY Z OPERONEM

BLACKLIGHT SPOT 400W F

Zajęcia z języka angielskiego TELC Gimnazjum Scenariusz lekcji Prowadzący: Jarosław Gołębiewski Temat: Czas Present Perfect - wprowadzenie

Installation of EuroCert software for qualified electronic signature

EGZAMIN MATURALNY Z JĘZYKA ANGIELSKIEGO

Podstawy. Pamięć wirtualna. (demand paging)

JĘZYK ANGIELSKI KARTA ROZWIĄZAŃ ZADAŃ 6., 7. i 8.

[LEKCJA 1. W RESTAURACJI]

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Jazz EB207S is a slim, compact and outstanding looking SATA to USB 2.0 HDD enclosure. The case is

Iteracyjny serwer TCP i aplikacja UDP

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

U3000/U3100 Mini (Dla Komputera Eee na systemie operacyjnym Linux) Krótka Instrukcja

General Certificate of Education Ordinary Level ADDITIONAL MATHEMATICS 4037/12

Architektura komputerów

Zastrzegamy sobie prawo do zmiany cen oraz asortymentu bez wcze niejszego zawiadomienia.

you see decision. oznacza to, Whenever kiedy widzisz biznes, someone once made Za każdym razem, który odnosi sukces,

Kalendarz 2015 Kieszonkowy Gardena Zielony By Praca Zbiorowa

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

MAGNESY KATALOG d e s i g n p r o d u c e d e l i v e r

Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI

Steps to build a business Examples: Qualix Comergent

Remember to set your printer to omit this page when running off copies.using this document.

Wirtualne systemy dyskowe na platformie OpenStack (KVM) Tomasz Paszkowski PLNOG 2012 Warszawa r.

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Transkrypt:

Uniwersytet Warszawski piotr.sarna@students.mimuw.edu.pl 7 lutego 2015

Plan prezentacji 1 Wprowadzenie pamięć niedościgła 2 zswap zcache zram zsmalloc vs zbud 3 LZO LZ4 Crypto API

pamięć niedościgła Idea What if there was a class of memory that is of unknown and dynamically variable size, is addressable only indirectly by the kernel, can be configured either as persistent or as ephemeral (meaning it will be around for awhile, but might disappear without warning), and is still fast enough to be synchronously accessible? - Dan Magenheimer

pamięć niedościgła Cechy Pule stron o nieznanym rozmiarze Strony trwałe (persistent) i nietrwałe (ephemeral) Adresowanie przy pomocy uchwytów Prosty interfejs Operacje mogą się nie powieść

pamięć niedościgła Front-endy Cleancache Służy do trzymania stron, które mogą się przydać, ale nic się nie stanie, jeśli znikną. Interfejs: int cleancache put page(struct page *page); int cleancache get page(struct page *page); Frontswap Służy do trzymania stron, którym nic złego nie może się stać. Interfejs: int frontswap store(struct page *page); int frontswap load(struct page *page);

pamięć niedościgła Dowiązanie cleancache / D e l e t e a page from t h e page cache and f r e e i t. C a l l e r has to make sure the page i s locked and that nobody e l s e uses i t or that usage i s s a f e. The c a l l e r must h o l d t h e mapping s t r e e l o c k. / v o i d d e l e t e f r o m p a g e c a c h e ( s t r u c t page page, v o i d shadow ) { s tr uc t a d d r e s s s p a c e mapping = page >mapping ; t r a c e m m f i l e m a p d e l e t e f r o m p a g e c a c h e ( page ) ; / i f we re uptodate, f l u s h out into the cleancache, otherwise i n v a l i d a t e any e x i s t i n g c l e a n c a c h e e n t r i e s. We can t l e a v e s t a l e data around in the cleancache once our page i s gone / i f ( PageUptodate ( page ) && PageMappedToDisk ( page ) ) c l e a n c a c h e p u t p a g e ( page ) ; e l s e c l e a n c a c h e i n v a l i d a t e p a g e ( mapping, page ) ; p a g e c a c h e t r e e d e l e t e ( mapping, page, shadow ) ; page >mapping = NULL ;

pamięć niedościgła Dowiązanie frontswap / We may have s t a l e swap cache pages in memory : notice them here and get r i d of the unnecessary f i n a l write. / i n t s w a p w r i t e p a g e ( s t r u c t page page, s t r u c t w r i t e b a c k c o n t r o l wbc ) { i n t r e t = 0 ; out : } i f ( t r y t o f r e e s w a p ( page ) ) { u n l o c k p a g e ( page ) ; goto out ; } i f ( f r o n t s w a p s t o r e ( page ) == 0) { s e t p a g e w r i t e b a c k ( page ) ; u n l o c k p a g e ( page ) ; e n d p a g e w r i t e b a c k ( page ) ; goto out ; } r e t = swap writepage ( page, wbc, end swap bio write ) ; r e t u r n r e t ;

pamięć niedościgła Back-endy Xen tmem Usprawnia wykorzystanie pamięci w maszynach wirtualnych. zswap Implementacja frontswap wykorzystująca kompresję zcache Implementacja frontswap i cleancache wykorzystująca kompresję

pamięć niedościgła Rejestracja zswap jako back-end frontswap s t a t i c s tr uc t f r o n t s w a p o p s z s w a p f r o n t s w a p o p s = {. s t o r e = z s w a p f r o n t s w a p s t o r e,. load = zswap frontswap load,. i n v a l i d a t e p a g e = z s w a p f r o n t s w a p i n v a l i d a t e p a g e,. i n v a l i d a t e a r e a = z s w a p f r o n t s w a p i n v a l i d a t e a r e a,. i n i t = z s w a p f r o n t s w a p i n i t }; f r o n t s w a p r e g i s t e r o p s (& z s w a p f r o n t s w a p o p s ) ;

zswap zcache zram zsmalloc vs zbud https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/ entry/new linux zswap compression functionality7

zswap Wprowadzenie zswap zcache zram zsmalloc vs zbud Implementacja interfejsu frontswap Struktura danych: drzewo informacji o skompresowanych stronach Kompresja wykorzystuje cryptographic API wbudowane w jądro W razie potrzeby przerzuca strony do prawdziwego urządzenia swap (resumed writeback) Wykorzystywał alokator zsmalloc, obecnie korzysta ze zbud Dostępny w głównej gałęzi jądra od wersji 3.11

Jak skorzystać? zswap zcache zram zsmalloc vs zbud demo

zcache Wprowadzenie zswap zcache zram zsmalloc vs zbud Implementuje zarówno cleancache, jak i frontswap Struktura danych: drzewo informacji o skompresowanych stronach Korzysta z alokatora zbud Kompresja wykorzystuje cryptographic API wbudowane w jądro Dostępny w głównej gałęzi jądra DO wersji 3.11 Część pomysłów została przeniesiona do zswap

Jak skorzystać? zswap zcache zram zsmalloc vs zbud Używać przestarzałego jądra Linux, które udostępnia zcache jako eksperymentalny dodatek.

zram Wprowadzenie zswap zcache zram zsmalloc vs zbud Zupełnie inne podejście Sterownik wirtualnego urządzenia blokowego Włączany ręcznie przy pomocy instrukcji mkswap i swapon Działa jako samodzielne urządzenie swapujące Można go wykorzystać jako samodzielny swap w systemach wbudowanych Inne wykorzystanie: kompresowane /tmp/

Jak skorzystać? zswap zcache zram zsmalloc vs zbud demo

zsmalloc vs zbud zswap zcache zram zsmalloc vs zbud zsmalloc Umożliwia fragmentację obiektów Nie wymaga ciągłego kawałka pamięci zbud Dobiera kompresowane strony w pary Ma lepszą niż zsmalloc

LZO LZ4 Crypto API http://linuxaria.com/article/linux-compressors-comparison-on-centos-6-5-x86-64-lzo-vs-lz4-vs-gzip-vs-bzip2-vs-lzma

LZO LZ4 Crypto API LZO Źródła http://www.oberhumer.com/opensource/lzo/ oferuje bardzo szybką dekompresję nie potrzebuje dodatkowej pamięci przy dekompresji można dostosować balans pomiędzy współczynnikiem kompresji a jej prędkością, nie zmieniając jednocześnie szybkości dekompresji.

LZO LZ4 Crypto API LZ4 Źródła https://code.google.com/p/lz4/ oferuje jeszcze szybszą dekompresję kosztem dłuższej kompresji można poprawić zarówno współczynnik kompresji, jak i szybkość dekompresji.

Crypto API LZO LZ4 Crypto API Wbudowane w jądro Linuksa implementacje algorytmów, w tym także algorytmy kompresujące. generyczny interfejs prosty przepływ (alloc, compress, decompress, free) dostępne m. in. lzo, lz4, 842

LZO LZ4 Crypto API Dziękuję za uwagę. Źródła: 1 : Seth Jennings, The zswap compressed swap cache ( http://lwn.net/articles/537422/ ) 2 : Dan Magenheimer, In-kernel memory compression ( http://lwn.net/articles/545244/ )