Tujuan dari posting ini adalah untuk menjelaskan cara mengkonfigurasi parameter kernel pada sistem Red Hat (RHEL/CentOS) dan Oracle Linux (OL) menggunakan utilitas sysctl. Utilitas sysctl (/ sbin/sysctl) memungkinkan (hak istimewa) pengguna untuk menanyakan dan memodifikasi parameter kernel selama runtime. Utilitas umum untuk sebagian besar distribusi Linux, namun, perbedaan halus mungkin ada antara distribusi mis. RHEL/OL dan SuSE. Parameter yang dapat dilihat/dimodifikasi adalah yang diekspos melalui sistem file procfs /proc/sys. Notasi titik(“.”) digunakan saat menyetel dalam file konfigurasi.
Meminta Parameter Kernel Tertentu
Untuk menanyakan nilai parameter kernel bernama, jalankan utilitas sysctl dengan '-n ' atau tidak ada argumen sama sekali mis .:
# sysctl kernel.shmmax kernel.shmmax = 68719476736
# sysctl -n kernel.shmmax 68719476736
Pada contoh di atas, parameter kernel.shmmax berhubungan dengan /proc/sys/kernel/shmmax mis.:
# cat /proc/sys/kernel/shmmax 68719476736
Meminta semua parameter kernel
Untuk menanyakan semua nilai parameter kernel, jalankan utilitas systctl dengan '-a ' argumen misalnya:
# sysctl -a | more kernel.sched_child_runs_first = 0 kernel.sched_min_granularity_ns = 4000000 kernel.sched_latency_ns = 20000000 kernel.sched_wakeup_granularity_ns = 4000000 kernel.sched_tunable_scaling = 1
Anda dapat mengambil parameter kernel tertentu dalam output di atas. Gunakan ekspresi Reguler untuk memfilter sekelompok parameter kernel. Misalnya,
# sysctl -a | grep ^kernel.s[h,e]m kernel.shmmax = 68719476736 kernel.shmall = 4294967296 kernel.shmmni = 4096 kernel.shm_rmid_forced = 0 kernel.sem = 250 32000 100 128
Menyetel Parameter Kernel dengan segera (tidak terus-menerus)
Untuk segera menetapkan nilai parameter sysctl (tidak persisten) gunakan sysctl -w memerintah. Contoh :
# sysctl -w kernel.sysrq=0 kernel.sysrq = 0
Parameter yang mengambil beberapa nilai harus memiliki nilai yang diapit oleh tanda kutip. Misalnya, untuk menyetel net.ipv4.ip_local_port_range ke 1025-65535:
# sysctl -w net.ipv4.ip_local_port_range="1025 65535"
Atau, dimungkinkan untuk menggemakan nilai langsung ke file procfs yang mewakili parameter sysctl. Misalnya:
# echo 1 > /proc/sys/net/ipv4/ip_forward # echo "1025 65535" > /proc/sys/net/ipv4/ip_local_port_range
Menyetel Parameter Kernel Secara Persisten
Nilai parameter kernel yang diubah menggunakan metode 'systctl -w' bersifat volatil, yaitu hilang saat server dinyalakan ulang. File konfigurasi utilitas sysctl, /etc/sysctl.conf , harus digunakan untuk menyimpan nilai parameter kernel non-default secara permanen. File diuraikan pada boot server dan nilai-nilai di dalamnya digunakan untuk mengkonfigurasi kernel. Sintaks yang diperlukan untuk mengkonfigurasi parameter kernel menggunakan file /etc/sysctl.conf mengikuti notasi component.parameter=value mis. kernel.shmmax =33554432.
Sintaks
# vi /etc/sysctl.conf [component].[parameter]=[value]
Berikut ini adalah contoh file /etc/sysctl.conf:
# grep -v ^# /etc/sysctl.conf net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 ....
Selain menggunakan metode 'systctl -w' untuk memodifikasi parameter kernel, seseorang juga dapat memodifikasi parameter dengan menambahkannya ke file /etc/sysctl.conf, kemudian mengurai file menggunakan utilitas sysctl dengan '-p ' argumen misalnya:
# sysctl -n kernel.ctrl-alt-del 0
# echo "kernel.ctrl-alt-del=1" >> /etc/sysctl.conf
# sysctl -p kernel.ctrl-alt-del = 1
Memodifikasi parameter kernel dengan menambahkannya ke file /etc/sysctl.conf tidak hanya mengaturnya (sysctl -p), tetapi juga memastikan nilai yang dimodifikasi tetap ada setelah server di-boot ulang.
Mengatur Parameter Kernel Secara Persisten Di Bawah CentOS / RHEL 7
Pendekatan untuk mengatur parameter kernel di bawah CentOS/RHEL 7 sedikit berbeda dari versi yang lebih lama. Buat file conf baru di bawah /etc/sysctl.d/ direktori. Nama file mengambil format /etc/sysctl.d/[name].conf. Berkas di direktori /etc/sysctl.d/ diurai secara berurutan sehingga disarankan untuk menambahkan nama berkas di awal dengan nomor yang menunjukkan urutan penguraian berkas yang Anda inginkan. Misalnya, /etc/sysctl.d/ 01-custom.conf:
# cat /etc/sysctl.d/01-custom.conf net.ipv4.ip_forward=1 net.ipv4.ip_local_port_range="1025 65535"
Agar sistem segera menerapkan nilai dalam file /etc/sysctl.d baru/diperbarui, jalankan sysctl -p [nama file]:
# sysctl -p /etc/sysctl.d/01-custom.conf