Pazartesi, Aralık 23, 2024

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

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

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 başlıyoruz işe,

apt install zram-tools

Ö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@ankara:~# cat /etc/default/zramswap
# Specifies amount of zram devices to create.
# By default, zramswap-start will use all available cores.
#CORES=1

# Specifies the amount of RAM that should be used for zram
# based on a percentage the total amount of available memory
#PERCENTAGE=10

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

# Specifies the priority for the swap devices, see swapon(2)
# for more details.
#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 10GB belirledim ve sıkıştırma algoritmasını lzo olarak belirledim.

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

root@ankara:~# cat /sys/block/zram0/comp_algorithm
[lzo] lz4 lz4hc

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

zramctl --find --streams 4 --size 10GB --algorithm lzo

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

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