GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menanyakan dan memodifikasi parameter kernel menggunakan sysctl (Segera dan terus-menerus) di CentOS / RHEL

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


Cent OS
  1. CentOS / RHEL 7 :Cara memodifikasi baris perintah kernel

  2. Cara mengkonfigurasi relai smtp postifx di CentOS/RHEL 5 dan 6

  3. Cara membuat wadah LXC menggunakan lxcbr0 dan virbr0 di CentOS/RHEL

  1. Cara Menginstal Python 3.5 di CentOS/RHEL dan Fedora

  2. Cara Memeriksa Nilai Saat Ini untuk Parameter Penyetelan Kernel di CentOS/RHEL

  3. Cara Membuat Antarmuka Jembatan Menggunakan nmcli di CentOS/RHEL 7 dan 8

  1. Cara menginstal dan mengkonfigurasi samba di RHEL 8 / CentOS 8

  2. Cara Mengaktifkan Repositori EPEL di CentOS dan RHEL

  3. CentOS / RHEL 7 :Cara mengatur tanggal, waktu / NTP dan zona waktu menggunakan timedatectl