Mengoptimalkan AlmaLinux untuk beban kerja tertentu: memilih profil tuning dengan tuned-adm, membuat profil kustom, membatasi resource service memakai cgroups v2 dengan MemoryMax dan CPUQuota, serta membaca hasil boot dan service dengan systemd-analyze.

Di episode 16 sebelumnya kita mengamankan sistem dan memastikan kepatuhan standar. Sekarang kita berpaling ke sisi lain dari sistem yang baik: performa. Server yang aman tapi lambat tidak kalah bermasalahnya — begitu juga server yang membiarkan satu service boros memakan semua resource sampai service lain kelaparan.
Episode ini membahas tiga alat utama: tuned untuk menyesuaikan profil sistem dengan beban kerja, cgroups v2 untuk membatasi resource per service, dan systemd-analyze untuk membaca kondisi boot dan startup.
tuned adalah daemon yang menyesuaikan parameter sistem (sysctl, scheduler, dan lainnya) sesuai profil yang dipilih. Alih-alih men-tuning satu per satu secara manual, kalian memilih profil yang sesuai beban kerja.
sudo dnf5 install -y tuned
sudo systemctl enable --now tunedtuned-adm active
tuned-adm listtuned-adm active menampilkan profil berjalan; list menampilkan semua profil yang tersedia. Untuk rekomendasi otomatis:
tuned-adm recommend| Profil | Cocok Untuk |
|---|---|
virtual-guest | VM (default di VM); mengoptimalkan untuk guest |
throughput-performance | Throughput maksimal; ramah untuk server busy |
latency-performance | Latensi minimal; untuk workload real-time |
balanced | Kompromi hemat energi dan performa (default) |
powersave | Hemat energi untuk laptop dan idle |
sudo tuned-adm profile throughput-performance
tuned-adm activeProfil throughput-performance mengaktifkan governor performa, meningkatkan buffer jaringan, dan menyesuaikan beberapa parameter untuk memaksimalkan output — pilihan umum untuk server database dan aplikasi.
Tip
Pada VM, profile virtual-guest adalah pilihan yang bijak — tuned mendeteksi hypervisor dan menyesuaikan parameter agar tidak terjadi konflik dengan host. Gunakan profil khusus seperti throughput-performance hanya jika ada alasan pengukuran yang jelas.
Untuk kebutuhan spesifik, buat profil sendiri di /etc/tuned/:
[main]
summary=My web server tuning
[cpu]
governor=performance
[sysctl]
vm.swappiness=10
net.core.somaxconn=1024Struktur file: bagian [main], lalu bagian-bagian yang mengatur komponen (cpu, sysctl, vm, dan lainnya). Aktifkan profil kustom:
sudo tuned-adm profile mywebtuned-adm active akan menampilkan myweb. Profil kustom bisa juga mewarisi profil lain dengan menambah include= di bagian [main].
Di episode 7 kita menyentuh MemoryMax dan CPUQuota. Sekarang kita dalami bagaimana cgroups v2 menjadi mekanisme di baliknya — kernel membagi proses ke dalam grup dengan batas resource.
Semua batas didefinisikan di override unit systemd:
sudo systemctl edit myapp[Service]
MemoryMax=1G
MemoryHigh=768M
CPUQuota=100%
TasksMax=512Penjelasan tiap baris:
MemoryMax=1G — batas keras; proses di-kill jika melewati batas.MemoryHigh=768M — batas lunak; throttling terjadi sebelum batas keras.CPUQuota=100% — setara satu core penuh; 200% berarti dua core.TasksMax=512 — membatasi jumlah task (thread/proses) yang boleh dibuat.sudo systemctl daemon-reload
sudo systemctl restart myapp
systemd-cgtopsystemd-cgtop adalah setara top untuk cgroup — menampilkan penggunaan resource per unit secara real-time. Ini alat terbaik untuk melihat apakah batas berfungsi dan siapa pemakan resource terbesar.
systemctl show myapp -p MemoryMax -p CPUQuota
systemctl status myappsystemctl show menampilkan properti unit — verifikasi bahwa batas benar-benar diterapkan seperti yang diharapkan.
Warning
Menetapkan MemoryMax terlalu rendah adalah cara cepat menabrak diri sendiri — service bisa di-kill di tengah lonjakan beban. Mulai dari nilai yang cukup besar, pantau dengan systemd-cgtop, lalu turunkan perlahan. Ingat, tuning adalah proses pengukuran, bukan tebakan.
Systemd menyediakan perintah analisis yang mengubah data boot menjadi wawasan.
systemd-analyzesystemd-analyze blameblame mengurutkan service berdasarkan waktu inisialisasi — dari yang paling lambat. Fokus pada service yang memakan waktu tidak proporsional:
systemd-analyze critical-chaincritical-chain menampilkan rantai unit yang paling menentukan waktu boot — service yang berada di jalur kritis adalah kandidat optimasi pertama.
systemd-analyze blame --reverseDengan membandingkan antar boot, kalian bisa mengukur apakah perubahan tuning benar-benar mempercepat startup — data lebih dapat diandalkan daripada perasaan.
throughput-performance di VM secara membabi buta. Profil virtual-guest lebih tepat — hindari konflik dengan host.MemoryMax terlalu rendah. Mulai besar, pantau, turunkan perlahan.systemd-cgtop. Data penggunaan real-time adalah satu-satunya cara memverifikasi batas bekerja.Pada episode 17 ini kalian telah menguasai optimasi performa AlmaLinux: pemilihan profil tuning dengan tuned-adm, pembuatan profil kustom, pembatasan resource service dengan cgroups v2 melalui MemoryMax dan CPUQuota, serta analisis boot dan startup dengan systemd-analyze.
Inti yang harus dibawa pulang:
tuned-adm memilih profil sesuai beban kerja: virtual-guest, throughput-performance, latency-performance./etc/tuned/ dengan bagian [cpu] dan [sysctl].MemoryMax, MemoryHigh, CPUQuota, TasksMax.systemd-cgtop dan systemctl show untuk verifikasi.systemd-analyze blame dan critical-chain menemukan bottleneck startup.Dengan performa terkontrol, kalian siap mengelola beban kerja modern. Di episode 18 selanjutnya, kita akan membahas Container & Virtualization (Podman, KVM) — container rootless dengan Podman, Buildah, dan Skopeo, Quadlet untuk integrasi systemd, podman-compose, serta virtualisasi KVM dengan virt-install, virsh, dan bridge networking. Sampai jumpa!