GNU/Linux >> Belajar Linux >  >> Linux

Bekerja dengan kernel real-time untuk Red Hat Enterprise Linux

Kemampuan kernel real-time telah ada selama lebih dari satu dekade di ekosistem open-source. Demikian pula, dukungan Red Hat Enterprise Linux (RHEL) untuk kernel real-time telah tersedia selama beberapa tahun. Namun, banyak administrator sistem salah menafsirkan konsep inti dan perilaku operasional yang sebenarnya. Dalam artikel ini, saya menjelaskan beberapa fitur utamanya, perbedaan dari kernel standar, dan langkah-langkah penginstalan cepat.

Awalnya, Red Hat memperkenalkan produk yang disebut "Red Hat Enterprise MRG," di mana MRG adalah singkatan dari Messaging, Real-time, dan Grid. MRG 2 didasarkan pada versi RHEL 5 dan RHEL 6, sedangkan MRG 3 sepenuhnya didasarkan pada RHEL 6. Sejak RHEL 7 dan seterusnya, produk MRG tidak digunakan lagi, dan "RHEL untuk Waktu Nyata" diperkenalkan sebagai produk terpisah.

Apa kernel waktu-nyata itu?

Kernel real-time belum tentu lebih unggul atau lebih baik dari kernel standar. Sebaliknya, itu memenuhi persyaratan bisnis atau sistem yang berbeda. Ini adalah kernel yang dioptimalkan yang dirancang untuk mempertahankan latensi rendah, waktu respons yang konsisten, dan determinisme. Sebagai perbandingan, kernel RHEL standar berfokus pada operasi berorientasi throughput dan penjadwalan tugas yang adil. Kernel real-time juga dikenal sebagai kernel-rt atau preempt-rt .

Cara paling sederhana untuk mengidentifikasi kernel waktu nyata adalah dengan menjalankan uname -r perintah di terminal, lalu cari rt kata kunci dalam versi kernel. Jika rt hilang, maka sistem menggunakan kernel standar.

Output berikut adalah contohnya:

#uname -r
3.10.0-1127.10.1.rt56.1106.el7

Beberapa kernel-rt yang penting mekanisme meliputi:

  • Prioritas tugas diperiksa (1-99) di bawah beban berat.
  • Tugas prioritas tinggi (99) diberikan preferensi untuk eksekusi CPU.
  • Tidak menggunakan kebijakan Penjadwalan Sepenuhnya Adil (CFS).
  • Kebijakan penjadwalan yang digunakan adalah SCHED_FIFO atau SCHED_RR.
  • Mempertahankan waktu eksekusi latensi rendah.
  • Menawarkan kesempatan untuk mengukur, merekam, dan mengonfigurasi waktu respons.

Untuk lebih memahami bagaimana kernel-rt berbeda dengan kernel standar, diagram berikut menjelaskan cara menggunakan kernel-rt mempertahankan latensi dan waktu respons yang rendah dalam sistem.

Pada diagram di atas, biru plot mewakili waktu respons(ms) pada kernel RHEL7 standar yang disetel, sedangkan hijau poin mewakili waktu respons(md) pada kernel-rt RHEL7 yang disetel . Bagian hijau menunjukkan konsistensi, latensi rendah, dan waktu respons rendah. Untuk mempelajari grafik ini dan pengujian terkait secara lebih rinci, silakan merujuk ke panduan resmi Red Hat "Mengapa Menggunakan Red Hat Enterprise Linux untuk Waktu Nyata untuk Mengoptimalkan Latensi".

Di bawah ini saya telah mencantumkan beberapa perbedaan penting lainnya untuk membandingkan RHEL untuk Waktu Nyata dengan RHEL standar:

  • Kexec dan vmcore - Instalasi dan konfigurasi sama dengan RHEL standar.
  • Modul pihak ketiga - Semua modul harus dikompilasi ulang dengan kernel-rt sebelum digunakan.
  • irqbalance daemon - Dinonaktifkan secara default.
  • Kebijakan penjadwalan - Hanya SCHED_FIFO atau SCHED_RR yang digunakan.
  • Interrupt (IRQ) - Menggunakan CPU khusus untuk mengisolasi proses satu sama lain.

Instal RHEL secara real-time

Mari lakukan instalasi cepat dan amati paket lain yang merupakan bagian dari kernel-rt instalasi. Gambar ISO terpisah dari kernel-rt tersedia untuk penyediaan baru. Seorang pengguna/admin juga dapat menginstal kernel-rt Paket RPM pada sistem RHEL standar yang ada, diikuti dengan reboot.

Langkah 1 :Unduh gambar ISO bernama RHEL untuk Waktu Nyata dari portal dan ketentuan pelanggan Red Hat. Anda juga dapat menggunakan kotak RHEL standar yang ada dan mengaktifkan rhel-7-server-rt repositori untuk mengambil kernel-rt paket.

Langkah 2 :Lakukan instalasi grup untuk menginstal semua paket khusus RT secara bersamaan.

Langkah 3 :Verifikasi semua paket dependen.

Langkah 4 :Reboot sistem, lalu pilih kernel-rt dari konsol boot.

Pengguna harus melakukan instalasi grup RT, karena menyediakan semua kernel-rt yang diperlukan paket tergantung. Tabel berikut menampilkan detail paket dependen singkat:

  • kernel-rt - Kernel real-time
  • rt-setup - Paket paling penting untuk pengaturan lingkungan RT.
  • rtctl - Mengonfigurasi prioritas penjadwalan untuk utas kernel.
  • rt-test, rt-checks, rteval - Digunakan untuk menguji kemampuan dan beban sistem.

Biarkan saya memberi Anda skenario nyata yang sangat singkat yang menggambarkan mengapa instalasi grup RT sangat penting. Salah satu pelanggan telekomunikasi terkemuka menjalankan kernel RHEL real-time (3.10.0-693.11.1.rt56.632.el7) sebagai lingkungan cluster tiga bilah pada mesin HP ProLiant BL460c Gen9. Mereka mengamati penundaan lalu lintas dan batas waktu di lingkungan cluster. Sejumlah besar paket self-heartbeat (HB) UDP hilang atau terjatuh. Kami mengamati bahwa tidak ada masalah dengan kartu jaringan atau modul cluster setelah kami menganalisis pcap dan strace paket. Diagnosis lebih lanjut menunjukkan bahwa rt-setup paket hilang karena kernel-rt telah diinstal secara paksa tanpa paket dependennya.

Lingkungan Melewatkan HB dalam 7 hari HB hilang dalam 7 hari dengan rt-setup hostname-a12 138 0 hostname-a13 113 0 hostname-a14 118 5

rt-setup . ini package bertanggung jawab untuk mengonfigurasi dan menjalankan rt-entsk daemon, yang mencegah pembuatan IPI dan penundaan tugas waktu nyata.

Poin-poin berikut menampilkan beberapa fitur utama rt-setup (v2.0-6):

  • Membuat grup waktu nyata.
  • Menambahkan konfigurasi batas waktu nyata untuk PAM.
  • Menambahkan /usr/bin/rt-setup-kdump untuk mengkonfigurasi kdump di RT.
  • Menambahkan aturan khusus udev untuk irq berulir dan /dev/rtc akses.
  • Menambahkan /usr/bin/slub_cpu_partial_off untuk mematikan cpu_partials di SLUB.
  • Menambahkan daemon kunci statis cap waktu net-socket (rt-entsk ).

Selesai

Ini sepadan dengan upaya untuk menjalankan kernel waktu nyata dan mengevaluasi potensinya karena banyak aplikasi dapat mengambil manfaat darinya. Kernel-rt dapat disetel untuk lebih mengurangi masalah kinerja. Alat seperti ftrace disediakan dengan RHEL untuk Waktu Nyata dan sangat berguna untuk menganalisis dan men-debug masalah latensi. Namun, detail tersebut berada di luar cakupan artikel ini.

Kernel real-time telah ada sejak lama, tetapi banyak sysadmin tidak yakin bagaimana cara bekerja dengannya. Dalam artikel ini, saya mendefinisikan apa yang dilakukan kernel real-time. Saya juga memberi Anda informasi tentang cara menginstalnya. Mungkin kernel real-time akan membantu organisasi Anda mewujudkan kinerja Linux yang lebih baik!

[ Kursus online gratis:Ikhtisar teknis Red Hat Enterprise Linux. ]


Linux
  1. Analisis kernel Linux dengan ftrace

  2. Pengujian integrasi berkelanjutan untuk kernel Linux

  3. Mengonfigurasi alamat IPv6 di Red Hat Enterprise Linux 7 dan 8

  1. Bekerja dengan aliran data di baris perintah Linux

  2. Bekerja dengan pipa di baris perintah Linux

  3. Mengoptimalkan image ISO instalasi Red Hat Enterprise Linux

  1. Daftarkan Red Hat Enterprise Linux dan lampirkan langganan dengan Ansible

  2. Membangun image Red Hat Enterprise Linux 7 yang disesuaikan untuk Microsoft Azure

  3. Bagaimana Mendapatkan Red Hat Enterprise Linux Secara Gratis?