Di Part 13 dari seri LFCS (Linux Foundation Certified Sysadmin) ini kami menjelaskan cara menggunakan GRUB untuk memodifikasi perilaku sistem dengan meneruskan opsi ke kernel untuk proses boot yang sedang berlangsung.

Demikian pula, Anda dapat menggunakan baris perintah dalam sistem Linux yang sedang berjalan untuk mengubah parameter kernel runtime tertentu sebagai modifikasi satu kali, atau secara permanen dengan mengedit file konfigurasi.

Dengan demikian, Anda diperbolehkan untuk mengaktifkan atau menonaktifkan parameter kernel on-the-fly tanpa banyak kesulitan saat dibutuhkan karena perubahan yang diperlukan dalam cara sistem diharapkan beroperasi.

Memperkenalkan /proc Filesystem

Spesifikasi terbaru dari Filesystem Hierarchy Standard menunjukkan bahwa /proc mewakili metode default untuk menangani proses dan informasi sistem serta informasi kernel dan memori lainnya. Khususnya, /proc/sys adalah tempat Anda dapat menemukan semua informasi tentang perangkat, driver, dan beberapa fitur kernel.

Struktur internal sebenarnya dari /proc/sys sangat bergantung pada kernel yang digunakan, tetapi Anda mungkin menemukan direktori berikut di dalamnya. Pada gilirannya, masing-masing akan berisi subdirektori lain di mana nilai untuk setiap kategori parameter dipertahankan:

  1. dev: parameter untuk perangkat tertentu yang terhubung ke mesin.
  2. fs: konfigurasi sistem file (kuota dan inode, misalnya).
  3. kernel: konfigurasi khusus kernel.
  4. net: konfigurasi jaringan.
  5. vm: penggunaan memori virtual kernel.

Untuk memodifikasi parameter runtime kernel, kami akan menggunakan: sysctl. Jumlah pasti parameter yang dapat dimodifikasi dapat dilihat dengan:

# sysctl -a | wc -l

Jika Anda ingin melihat daftar lengkap parameter Kernel, lakukan saja:

# sysctl -a 

Karena output dari perintah di atas akan terdiri dari BANYAK baris, kita dapat menggunakan pipeline diikuti dengan less untuk memeriksanya dengan lebih cermat:

# sysctl -a | less

Mari kita lihat beberapa baris pertama. Harap dicatat bahwa karakter pertama di setiap baris cocok dengan nama direktori di dalamnya /proc/sys:

Memahami Sistem File Linux /proc

Misalnya, baris yang disorot:

dev.cdrom.info = drive name:        	sr0

mengindikasikan bahwa sr0 adalah alias untuk drive optik. Dengan kata lain, begitulah kernel sees drive itu dan menggunakan nama itu untuk merujuknya.

Di bagian berikut kami akan menjelaskan cara mengubah other more important parameter waktu proses kernel di Linux.

Cara Mengubah atau Memodifikasi Parameter Runtime Kernel Linux

Berdasarkan apa yang telah kami jelaskan sejauh ini, mudah untuk melihat bahwa nama parameter cocok dengan struktur direktori di dalamnya /proc/sys di mana ia dapat ditemukan.

Sebagai contoh:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

Periksa Parameter Kernel Linux

Yang mengatakan, kita dapat melihat nilai parameter kernel Linux tertentu menggunakan salah satu dari: sysctl dengan nama parameter atau membaca file terkait:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward
Periksa Parameter Kernel Linux
Periksa Parameter Kernel Linux

Atur atau Ubah Parameter Kernel Linux

Untuk mengatur nilai parameter kernel, kita juga dapat menggunakan sysctltetapi menggunakan -w dan diikuti dengan nama parameter, tanda sama dengan, dan nilai yang diinginkan.

Metode lain terdiri dari menggunakan echo untuk menimpa file yang terkait dengan parameter. Dengan kata lain, metode berikut ini setara dengan menonaktifkan fungsionalitas penerusan paket di sistem kami (yang, omong-omong, seharusnya menjadi nilai default ketika sebuah kotak tidak seharusnya melewatkan lalu lintas antar jaringan):

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

Penting untuk dicatat bahwa parameter kernel yang disetel menggunakan sysctl hanya akan diterapkan selama sesi saat ini dan akan hilang ketika sistem di-boot ulang.

Untuk menyetel nilai ini secara permanen, edit /etc/sysctl.conf nilai-nilai yang diinginkan. Misalnya, untuk menonaktifkan penerusan paket di /etc/sysctl.conf pastikan baris ini muncul di file:

net.ipv4.ip_forward=0

Kemudian jalankan perintah berikut untuk menerapkan perubahan pada konfigurasi yang sedang berjalan.

# sysctl -p

Contoh lain dari parameter runtime kernel yang penting adalah:

fs.file-max menentukan jumlah maksimum penanganan file yang dapat dialokasikan kernel untuk sistem. Bergantung pada tujuan penggunaan sistem Anda (server web / database / file, untuk menyebutkan beberapa contoh), Anda mungkin ingin mengubah nilai ini untuk memenuhi kebutuhan sistem.

Jika tidak, Anda akan menerima Too many open files pesan kesalahan yang terbaik, dan dapat mencegah sistem operasi untuk melakukan booting pada kondisi terburuk.

Jika karena kesalahan yang tidak disengaja Anda menemukan diri Anda dalam situasi terakhir ini, boot dalam mode pengguna tunggal (seperti yang dijelaskan di Bagian 13 – Konfigurasi dan Pemecahan Masalah Linux Grub Boot Loader) dan edit /etc/sysctl.conf seperti yang diinstruksikan sebelumnya. Untuk menetapkan batasan yang sama pada basis per pengguna, lihat Bagian 14 – Memantau dan Mengatur Batas Penggunaan Proses Linux dari seri ini.

kernel.sysrq digunakan untuk mengaktifkan SysRq di keyboard Anda (juga dikenal sebagai tombol layar cetak) untuk memungkinkan kombinasi tombol tertentu menjalankan tindakan darurat saat sistem menjadi tidak responsif.

Nilai default (16) menunjukkan bahwa sistem akan menghormati Alt+SysRq+key dan melakukan tindakan yang tercantum dalam sysrq.c dokumentasi ditemukan di kernel.org (di mana kuncinya adalah satu huruf dalam rentang bz). Sebagai contoh, Alt+SysRq+b akan mem-boot ulang sistem secara paksa (gunakan ini sebagai upaya terakhir jika server Anda tidak responsif).

Peringatan! Jangan mencoba menekan kombinasi tombol ini pada mesin virtual karena dapat memaksa sistem host Anda untuk reboot!

Saat disetel ke 1, net.ipv4.icmp_echo_ignore_all akan mengabaikan permintaan ping dan menjatuhkannya di tingkat kernel. Ini ditunjukkan pada gambar di bawah ini – perhatikan bagaimana permintaan ping hilang setelah mengatur parameter kernel ini:

Blokir Permintaan Ping di Linux
Blokir Permintaan Ping di Linux

Cara yang lebih baik dan lebih mudah untuk mengatur parameter runtime individu menggunakan .confada di dalam /etc/sysctl.dmengelompokkannya berdasarkan kategori.

Misalnya, alih-alih mengatur net.ipv4.ip_forward=0 dan net.ipv4.icmp_echo_ignore_all=1 di /etc/sysctl.confkita dapat membuat file baru bernama net.conf dalam /etc/sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

Jika Anda memilih untuk menggunakan pendekatan ini, jangan lupa untuk menghapus baris yang sama dari /etc/sysctl.conf.

Ringkasan

Pada artikel ini kami telah menjelaskan cara memodifikasi parameter runtime kernel, baik persisten maupun non persisten, menggunakan sysctl, /etc/sysctl.confdan file di dalamnya /etc/sysctl.d.

Dalam sysctl docs Anda dapat menemukan informasi lebih lanjut tentang arti dari lebih banyak variabel. File-file tersebut mewakili sumber dokumentasi terlengkap tentang parameter yang dapat diatur melalui sysctl.

Apakah menurut Anda artikel ini bermanfaat? Kami pasti berharap Anda melakukannya. Jangan ragu untuk memberi tahu kami jika Anda memiliki pertanyaan atau saran untuk ditingkatkan.