Cara Mengubah Parameter Runtime Kernel dengan cara yang persisten dan tidak ada

Cara Mengubah Parameter Runtime Kernel dengan cara yang persisten dan tidak ada

Di dalam Bagian 13 Seri LFCS (Linux Foundation Certified Sysadmin) ini kami menjelaskan cara menggunakan Grub untuk memodifikasi perilaku sistem dengan memberikan opsi ke kernel untuk proses boot yang sedang berlangsung.

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

Dengan demikian, Anda diizinkan untuk mengaktifkan atau menonaktifkan parameter kernel secara langsung tanpa banyak kesulitan saat diperlukan karena perubahan yang diperlukan dalam cara sistem diharapkan beroperasi.

Memperkenalkan sistem file /proc

Spesifikasi terbaru dari standar hierarki sistem file menunjukkan bahwa /Proc mewakili metode default untuk menangani proses proses dan sistem serta informasi kernel dan memori lainnya. Khususnya, /proc/sys adalah tempat Anda dapat menemukan semua informasi tentang perangkat, pengemudi, dan beberapa fitur kernel.

Struktur internal yang sebenarnya /proc/sys sangat tergantung pada kernel yang digunakan, tetapi Anda cenderung menemukan direktori berikut di dalam. 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 spesifik kernel.
  4. bersih: konfigurasi jaringan.
  5. vm: penggunaan memori virtual kernel.

Untuk memodifikasi parameter runtime kernel, kami akan menggunakan sysctl memerintah. 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 pipa diikuti dengan lebih sedikit untuk memeriksanya dengan lebih hati -hati:

# sysctl -a | lebih sedikit 

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

Pahami sistem file linux /proc

Misalnya, baris yang disorot:

dev.CD ROM.info = nama drive: sr0 

mengindikasikan bahwa sr0 adalah alias untuk drive optik. Dengan kata lain, begitulah kernel "melihat"DRIVE DAN MENGGUNAKAN Nama itu untuk merujuknya.

Di bagian berikut kami akan menjelaskan cara mengubah parameter runtime kernel "yang lebih penting" lainnya 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 dimana itu bisa ditemukan.

Misalnya:

dev.CD ROM.Autoklose →/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 keduanya sysctl diikuti dengan nama parameter atau membaca file terkait:

# Sysctl Dev.CD ROM.Autoclose # Cat/Proc/Sys/Dev/CDROM/AUTOCLOSE # SYSCTL NET.IPv4.ip_forward # cat/proc/sys/net/ipv4/ip_forward 
Periksa parameter kernel Linux

Atur atau ubah parameter kernel linux

Untuk mengatur nilai untuk parameter kernel yang juga dapat kita gunakan sysctl, tetapi menggunakan -w opsi dan diikuti dengan nama parameter, tanda yang sama, dan nilai yang diinginkan.

Metode lain terdiri dari penggunaan gema untuk menimpa file yang terkait dengan parameter. Dengan kata lain, metode berikut ini setara untuk menonaktifkan fungsionalitas penerusan paket dalam sistem kami (yang, omong -omong, harus menjadi nilai default ketika sebuah kotak tidak seharusnya melewati 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 diatur menggunakan sysctl hanya akan ditegakkan selama sesi saat ini dan akan hilang saat sistem direboot.

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

bersih.IPv4.ip_forward = 0 

Kemudian jalankan perintah berikut untuk menerapkan perubahan pada konfigurasi berjalan.

# sysctl -p 

Contoh lain dari parameter runtime kernel penting adalah:

FS.file-max Menentukan jumlah maksimum pegangan file yang dapat dialokasikan oleh kernel untuk sistem. Bergantung pada penggunaan yang dimaksudkan dari sistem Anda (Web / Database / File Server, untuk beberapa contoh), Anda mungkin ingin mengubah nilai ini untuk memenuhi kebutuhan sistem.

Jika tidak, Anda akan menerima “Terlalu banyak file terbuka"Pesan kesalahan paling baik, dan dapat mencegah sistem operasi untuk mem -boot yang terburuk.

Jika karena kesalahan yang tidak bersalah, Anda menemukan diri Anda dalam situasi terakhir ini, boot dalam mode pengguna tunggal (seperti yang dijelaskan di Bagian 13 - Konfigurasikan dan Masalah Pemandangan Linux Grub Boot Loader) dan Edit /etc/sysctl.conf seperti yang diinstruksikan sebelumnya. Untuk menetapkan batasan yang sama berdasarkan per pengguna, lihat Bagian 14 - Monitor dan Tetapkan Penggunaan Batas Proses Linux dari seri ini.

inti.Sysrq digunakan untuk mengaktifkan Sysrq Kunci di keyboard Anda (juga dikenal sebagai kunci layar cetak) sehingga memungkinkan kombinasi kunci tertentu untuk memohon tindakan darurat ketika sistem menjadi tidak responsif.

Nilai default (16) menunjukkan bahwa sistem akan menghormati Alt+sysrq+kunci kombinasi dan melakukan tindakan yang tercantum di Sysrq.C dokumentasi ditemukan di kernel.org (di mana kunci adalah satu huruf dalam kisaran B-Z). Misalnya, Alt+sysrq+b akan me -reboot sistem secara paksa (gunakan ini sebagai upaya terakhir jika server Anda tidak responsif).

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

Saat diatur ke 1, bersih.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:

Blok permintaan ping di linux

Cara yang lebih baik dan lebih mudah untuk mengatur parameter runtime individu adalah menggunakan .conf file di dalam /etc/sysctl.D, Mengelompokkannya berdasarkan kategori.

Misalnya, alih -alih pengaturan bersih.IPv4.ip_forward = 0 Dan bersih.IPv4.icmp_echo_ignore_all = 1 di dalam /etc/sysctl.conf, Kami dapat membuat file baru bernama bersih.conf di 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 garis yang sama dari /etc/sysctl.conf.

Ringkasan

Dalam artikel ini kami telah menjelaskan cara memodifikasi parameter runtime kernel, baik persisten maupun non sysctl, /etc/sysctl.conf, dan file di dalamnya /etc/sysctl.D.

Dalam sysctl dokumen Anda dapat menemukan lebih banyak informasi tentang arti lebih banyak variabel. File -file tersebut mewakili sumber dokumentasi yang paling lengkap tentang parameter yang dapat diatur melalui sysctl.

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

Menjadi Administrator Sistem Bersertifikat Linux