metrics.gokgoz.net

swap memory, takas alanı nedir, takas alanı performansı nasıl arttırır

Zram İle Sıkıştırılmış Takas Alanı Nasıl Oluşturulur?

Takas alanına yeni bir soluk getirecek ve diskin oluşturabileceği gecikmenin önüne geçmek amacıyla Zram ile karşınızdayız, kernel üzerinde yer alan modül sayesinde RAM üzerinde istediğiniz aksiyonları alabilecek, performanstan kayıp vermeden işlemler gerçekleştirebileceksiniz özellikle SWAP işlemlerinde.

Peki Bahsettiğimiz Bu Zram Nedir?

Ram üzerinde bir block oluşturarak sıkıştırılmış alanlar üzerinde işlem yapmanızı sağlar. Takas alanı olarak kullanabileceğiniz gibi geçici depolama alanı olarakta kullanabilir. Kendisi aslında bir kernel modülüdür ve pek çok sıkıştırma algoritmaları ile çalışabilir. ZRAM’ın bir dezavantajı var, sıkıştırma işlemi için bir miktar CPU kullanır bu genellikle %1’i geçmez ama kullanır, disk değişimi sırasındaki gecikmeyi yaşamamak için Swap yani takas alanlarında ZRAM kullanılabilir.

Zram İle Sıkıştırılmış Takas Alanı Nasıl Oluşturulur?

Kurulum yapılmasına gerek olmadığı için yapılandırmak amacıyla araç takımını sistemimize dahil ederek ve kurulu değilse linux-headerini ekleyerek başlıyoruz işe,

apt install zram-tools linux-headers-$(uname -r)

Ön tanımlı yapılandırma dosyası aşağıdaki gibi sizi karşılayacak aşağıdaki dosyada değişiklik yaparsanız ona göre zram alanları oluşacak.

root@mail:~# cat /etc/default/zramswap
# Compression algorithm selection
# speed: lz4 > zstd > lzo
# compression: zstd > lzo > lz4
# This is not inclusive of all that is available in latest kernels
# See /sys/block/zram0/comp_algorithm (when zram module is loaded) to see
# what is currently set and available for your kernel[1]
# [1]  https://github.com/torvalds/linux/blob/master/Documentation/blockdev/zram.txt#L86
ALGO=zstd

# Specifies the amount of RAM that should be used for zram
# based on a percentage the total amount of available memory
# This takes precedence and overrides SIZE below
PERCENT=50

# Specifies a static amount of RAM that should be used for
# the ZRAM devices, this is in MiB
SIZE=4096

# Specifies the priority for the swap devices, see swapon(2)
# for more details. Higher number = higher priority
# This should probably be higher than hdd/ssd swaps.
PRIORITY=100

Elle Zram Alanlarının Oluşturulması

Kernel modülünü dürtelim, ve sanal olmak üzere 4 adet alan yaratmasını sağlayalım.

modprobe zram num_devices=4

Gelelim swap alanımızı oluşturmaya, bizim CPU’muz 4 çekirdek olduğu için streams 4 olarak ayarlıyorum. Boyut olarak 4GB belirledim ve sıkıştırma algoritmasını zstd olarak belirledim.

Mevcut sıkıştırma algoritmaları için aşağıdaki komutu kullanabilirsiniz.

root@mail:~# cat /sys/block/zram0/comp_algorithm
lzo lzo-rle lz4 lz4hc 842 [zstd]

Hali hazırda en son komutumuz şu şekilde olacak

zramctl --find --streams 4 --size 4GB --algorithm zstd

Sonuç olarak aşağıdaki gibi alanlarımız oluştu

root@mail:~# zramctl 
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram3 zstd           1.4G   4K   81B   12K       4 [SWAP]
/dev/zram2 zstd           1.4G   4K   81B   12K       4 [SWAP]
/dev/zram1 zstd           1.4G   4K   81B   12K       4 [SWAP]
/dev/zram0 zstd           1.4G   4K   81B   12K       4 [SWAP]