GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengetahui irisan waktu penjadwal linux?

CFS (yang merupakan penjadwal default untuk proses) tidak memiliki kutu waktu tetap, ini dihitung pada waktu proses tergantung latensi yang ditargetkan (sysctl_sched_latency ) dan jumlah proses yang berjalan. Kutu waktu tidak boleh kurang dari perincian minimum (sysctl_sched_min_granularity ).

Kutukan waktu akan selalu berada di antara sysctl_sched_min_granularity dan sysctl_sched_latency , yang defaultnya masing-masing 0,75 ms dan 6 ms dan ditentukan di kernel/sched/fair.c.

Namun kutu waktu sebenarnya tidak diekspor ke ruang pengguna.


Kuantum yang dialokasikan untuk proses tertentu dapat bervariasi:

Anda dapat menyesuaikan "slice" dengan menyesuaikan sched_latency_ns dansched_min_granularity_ns , tetapi perhatikan bahwa "irisan" bukanlah kuantum tetap. Perhatikan juga bahwa keputusan preemption CFS didasarkan pada keadaan sesaat. Sebuah tugas mungkin telah menerima "slice" penuh (variabel) dari waktu CPU, tetapi preemption akan dipicu hanya jika tugas yang lebih layak tersedia, jadi "slice" bukanlah "waktu CPU maksimum tanpa gangguan" yang mungkin Anda harapkan. .. tapi agak mirip.

Ini karena Penjadwal yang Sepenuhnya Adil, penjadwal Linux default, memberikan proporsi prosesor ke suatu proses daripada kutu waktu tetap. Artinya, timelice untuk setiap proses sebanding dengan beban saat ini dan ditimbang dengan nilai prioritas proses.

Untuk proses waktu-nyata tujuan khusus yang menggunakan SCHED_RR, timelice default didefinisikan dalam kernel Linux sebagai RR_TIMESLICE di include/linux/sched/rt.h.

/*
 * default timeslice is 100 msecs (used only for SCHED_RR tasks).
 * Timeslices get refilled after they expire.
 */
#define RR_TIMESLICE            (100 * HZ / 1000)

Anda dapat menggunakan sched_rr_get_interval() untuk mendapatkan interval SCHED_RR untuk proses SCHED_RR tertentu.


Linux
  1. Bagaimana saya mengonfigurasi Vim sebagai editor default saya di Linux

  2. Cara Menguji Kecepatan Pemuatan Situs Web di Linux

  3. Cara Menjadwalkan Tugas Menggunakan di di Linux

  1. Linux – Bagaimana Mengetahui Apa yang Harus Diambil Di Dmesg?

  2. Cara Mengubah Shell Default Di Linux

  3. Bagaimana cara mengetahui di mana suatu program macet di linux?

  1. Cara Mengatur atau Mengubah Zona Waktu di Linux

  2. Linux – Bagaimana Menemukan Tanggal Pembuatan File?

  3. Cara Menemukan IP Gateway Default di Linux