Selasa, 22 November 2016

Menggunakan zRam sebagai Swap

Pengguna Linux yang menggunakan SSD biasanya sayang jika harus menggunakan sebagian partisinya untuk swap, karena mungkin berpikir akan lebih cepat membuat rusak SSD mereka. Atau ada juga orang yang menggunakan HDD merasa sayang membuat swap dengan alasan RAM yang dimiliki sudah cukup besar. Padahal swap tetap dibutuhkan seberapa besar pun RAM yang dimiliki. Sebab orang menyediakan RAM besar karena kebutuhan komputasinya juga besar. Selain itu, proses komputer yang berjalan hanya saat booting dan setelah itu tidak akan digunakan lagi akan lebih baik jika masuk swap untuk membuat ruang RAM menjadi lebih optimal. Lalu juga ada pendapat dari orang-orang yang sangat teliti, yang mengatakan bahwa mereka merasakan perbedaan ketika menggunakan komputer dengan swap dan tanpa swap. Mereka mengatakan bahwa komputer tanpa swap akan ada sedikit lag bila dibanding dengan komputer yang menggunakan swap walaupun dengan RAM yang sama-sama besar.

Solusi untuk ini adalah dengan memanfaatkan zRam sebagai swap. zRam akan membuat swap terkompresi di RAM. zRam bisa dijalankan dengan perintah zramctl. Anda bisa melihat opsi apa saja yang digunakan dengan zramctl dengan perintah sudo zramctl --help atau man zramctl.

Untuk membuat 1 GB swap dengan zRam, Anda bisa menjalankan perintah berikut;
sudo zramctl --find --size 1024M /dev/zram0
sudo mkswap /dev/zram0
sudo swapon /dev/zram0

Dan untuk menghapusnya, jalankan perintah berikut;
sudo swapoff /dev/zram0
sudo zramctl --reset /dev/zram0

Atau dengan mematikan komputer.

Karena bila komputer dimatikan atau dijalankan ulang swap akan hilang, maka jika Anda ingin swap otomatis tersedia saat Anda menjalankan komputer, Anda perlu membuat sebuah servis yang akan diinisialisasi oleh Systemd dengan cara seperti berikut;

Buat sebuah file di /usr/lib/systemd/system dengan nama zramswap.service dan isi file tersebut dengan;

[Unit]
Description=Service enabling compressing RAM with zRam
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/zramswapon
ExecStop=/usr/sbin/zramswapoff
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Lalu buat dua buah file di /usr/sbin dengan nama zramswapon dan zramswapoff. Isi zramswapon dengan;

#!/bin/bash

num_cpus=$(grep -c processor /proc/cpuinfo)
[ "$num_cpus" != 0 ] || num_cpus=1
decr_num_cpus=$((num_cpus - 1))

mem_total_kb=$(grep MemTotal /proc/meminfo | grep -E --only-matching '[[:digit:]]+')
mem_total=$((mem_total_kb * 1024))

mod_parm=$(modinfo zram |grep parm |tr -s " " |cut -f2 -d ":")
modprobe zram $mod_parm=$num_cpus

for i in $(decr_num_cpus); do
echo $(mem_total / num_cpus)) > /sys/block/zram$i/disksize
done

for i in $(seq 0 $decr_num_cpus); do
mkswap /dev/zram$i
done

for i in $(seq 0 $decr_num_cpus); do
swapon -p 100 /dev/zram$i
done


Ini akan membuat file swap sejumlah core prosesor dengan kapasitas sebesar RAM.

Dan isi file zramswapoff dengan;

#!/bin/bash

num_cpus=$(grep -c processor /proc/cpuinfo)
decr_num_cpus=$((num_cpus - 1))

for i in $(seq 0 $decr_num_cpus); do
if [ "$(grep /dev/zram$i /proc/swaps)" != "" ]; then
swapoff /dev/zram$i
fi
done

rmmod zram

Buat ke dua file tersebut executable dengan perintah;
sudo chmod +x /usr/sbin/zramswap*

Lalu jalankan dengan perintah;
sudo systemctl enable zramswap.service

Selesai. Jalankan ulang komputer Anda untuk mengaktifkannya atau dengan perintah sudo systemctl start zramswap.service

*Thanks to Malcolm Lewis for the scripts.

Jumat, 18 November 2016

Upgrade openSUSE Leap 42.1 ke 42.2

Ternyata saya tidak cukup sabar menunggu hingga Sabtu malam. Akhirnya saya melakukan upgrade pada Kamis malam, tanggal 17 November. Dan begini saya melakukan upgrade:

Langkah pertama adalah mengganti repositori 42.1 ke 42.2 dengan membuka YaST2 => Software Repositories. Karena saya hanya menggunakan 5 repositori online, yaitu OSS, Non OSS, Update OSS, Update Non OSS dan Packman dan tanpa repositori OBS satupun. Selebihnya hanya sebuah repositori dari direktori lokal untuk menyimpan file-file .rpm untuk diinstall ketika dibutuhkan.

Saya hanya mengedit URL, dan mengganti semua angka 42.1 menjadi 42.2 seperti ini:
http://download.opensuse.org/distribution/leap/42.1/repo/oss/ menjadi http://download.opensuse.org/distribution/leap/42.2/repo/oss/
http://download.opensuse.org/distribution/leap/42.1/repo/non-oss/ menjadi http://download.opensuse.org/distribution/leap/42.2/repo/non-oss/
http://download.opensuse.org/update/leap/42.1/oss/ menjadi http://download.opensuse.org/update/leap/42.2/oss/
http://download.opensuse.org/update/leap/42.1/non-oss/ menjadi http://download.opensuse.org/update/leap/42.2/non-oss/
http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ menjadi http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.2/

Setelah selesai mengubah semua repositori online, saya menambahkan sebuah subvolume btrfs baru (/var/cache) seperti yang disarankan di Release Notes openSUSE Leap 42.2. Caranya, buka terminal (XTerm), lalu jalankan perintah-perintah beriku:
sudo mount /dev/sda2 -o subvol=@ /mnt (catatan: partisi root saya ada di sda2)
dilanjutkan dengan
sudo btrfs subvol create /mnt/var/cache
dilanjutkan dengan
sudo mv /var/cache/* /mnt/var/cache/
dilanjutkan dengan
sudo umount /mnt
dan diakhiri dengan
sudo mount /var/cache

Lalu tambahkan subvolume baru tersebut ke /etc/fstab dengan entri:
UUID=(karakter-acak-UUID-yang-sesuai-dengan-UUID-root) /var/cache btrfs subvol=@/var/cache 0 0

Setelah selesai dengan semua proses di atas, saya beralih keluar dari GUI dengan menekan tombol Ctrl + Alt + F1, lalu jalankan perintah:
sudo zypper refresh dan sudo zypper dup

Proses upgrade memakan waktu yang cukup lama karena koneksi internet saya tidak terlalu cepat. Total paket yang didownload adalah sebanyak 1624 paket dengan total sekitar 1.1 GB.

Setelah proses download dan install selesai, jangan langsung kembali ke GUI, tapi jalankan perintah systemctl reboot. Setelah itu, saya bisa langsung menggunakan openSUSE versi baru dengan Plasma 5 versi baru juga, yang seperti kata banyak orang, Plasma 5 versi 5.8 ini sangat cepat bila dibandingkan dengan versi sebelumnya.

Anda bisa mengikuti apa yang saya lakukan untuk upgrade openSUSE Leap 42.1 ke versi 42.2, atau bisa juga mengikuti cara resmi yang ada di alamat ini.

Selamat mencoba dan selamat menikmati openSUSE baru.


Update:
  • Untuk melakukan upgrade ke versi 42.3, bisa dibaca di sini.

Rabu, 16 November 2016

openSUSE Leap 42.2

Tepat setahun lebih sepuluh hari dari rilis openSUSE Leap 42.1, hari ini penerusnya, openSUSE Leap 42.2 resmi dirilis. Dan seperti versi sebelumnya, versi ini (dan mungkin juga seterusnya) hanya menyediakan sistem operasi 64 bit saja. Jadi untuk Anda yang menginginkan sistem operasi 32 bit, sebaiknya gunakan openSUSE Tumbleweed saja.

Saya sendiri belum melakukan upgrade pada sistem saya. Rencananya saya akan melakukan upgrade secara online, tidak menggunakan file iso lagi, supaya file-file yang diunduh secara keseluruhan tidak terlalu besar. Mungkin akan saya lakukan pada Sabtu malam (Minggu dini hari) yang akan datang, sambil nonton Liga Inggris. :D

Bagi Anda yang sudah tidak sabar ingin mencoba, silakan kunjungi website openSUSE di openSUSE.org. Atau langsung menuju halaman download di software.opensuse.org. Atau bisa juga langsung memilih apa yang ingin Anda gunakan di download.opensuse.org.

Berita tentang rilis ini bisa di baca di sini.

Selasa, 01 November 2016

Quran - Tafsir Jalalain

Setelah beberapa lama saya mengerjakannya, akhirnya aplikasi pertama saya berhasil saya masukkan ke Google Play Store, dengan nama Quran - Tafsir Jalalain.

Proses dari pembuatan hingga akhirnya berhasil masuk ke Google Play Store agak lama karena saya harus memastikan isi tafsir dari aplikasi ini sesuai dengan yang seharusnya, supaya tidak menyebabkan kesesatan pemahaman kepada orang awam. Oleh karenanya saya minta seorang teman yang seorang ahli dalam agama Islam untuk memeriksanya buat saya. Terima kasih untuk Ustadz Ahmad Zakariya Ramdhani dari Pondok Pesantren Al-Maqom, Cibabat, Kota Cimahi.

Selain memastikan isinya sesuai, juga yang membuat aplikasi ini agak lama masuk Google Play Store adalah karena saya tidak punya Kartu Kredit sebagai syarat untuk mendaftar ke Google Play Developer Console. Jadi saya harus mencari dulu Virtual Credit Card untuk bisa digunakan sebagai penggantinya. Dan alhamdulillah, akhirnya saya mendapatkannya.

Bagi yang tertarik ingin mencoba, aplikasi ini bisa dipasang melalui Google Play Store, klik saja di sini. Jangan lupa beri rating yang bagus. Terima kasih. ;)

Saya juga membuat sebuah halaman di blog ini yang nantinya berisi semua aplikasi yang saya buat. Lihat menu di atas, atau klik di sini.