லினக்ஸ் பற்றிய PREEMPT_RT பயிற்சி: நிறுவல், சோதனை மற்றும் டியூனிங்

  • PREEMPT_RT தாமதத்தைக் குறைக்கிறது, இப்போது x86, ARM64 மற்றும் RISC-V க்கான பிரதான கர்னலில் உள்ளமைக்க முடியும்.
  • RT பைனரிகளை (எ.கா., டெபியன்) நிறுவவும் அல்லது ஸ்கிரிப்ட்களுடன் தொகுக்கவும், நடுக்கத்தை அதிகரிக்கும் பிழைத்திருத்த விருப்பங்களை முடக்கவும்.
  • சைக்ளிக்டெஸ்ட்/ஆர்டிஎல்ஏ மூலம் சரிபார்த்து, முக்கியமான பணிச்சுமைகளுக்கு ஐஆர்க்யூக்கள், முன்னுரிமைகள் மற்றும் சிபியு தனிமைப்படுத்தலை சரிசெய்யவும்.
  • மேம்பட்ட காட்சிகளை ஆதரிக்கிறது: ACRN மற்றும் பிரத்யேக பாஸ்த்ரூவுடன் RT மற்றும் RTVM இல் NVIDIA இயக்கிகள்.

PREEMPT_RT லினக்ஸ் பயிற்சி முதன்மை படம்

மறுமொழி நேரமே அனைத்திற்கும் அடிப்படையான அமைப்புகளுடன் நீங்கள் பணிபுரிந்தால், PREEMPT_RT என்பது "சாதாரண" லினக்ஸை நிகழ்நேர-தயாரான அமைப்பாக மாற்றும் மூலப்பொருள் ஆகும். கட்டுப்படுத்தப்பட்ட தாமதங்கள், கடுமையான முன்னுரிமையுடன் கூடிய திட்டமிடுபவர்கள் மற்றும் கடைசி மைக்ரோ விநாடி வரை நன்றாகச் சரிசெய்ய அனுமதிக்கும் பகுப்பாய்வு கருவிகளைப் பற்றி நாங்கள் பேசுகிறோம்.இந்த பயிற்சி ஆவணத்தில், PREEMPT_RT என்றால் என்ன, கர்னலில் அதன் நிலை, அதை எவ்வாறு நிறுவுவது அல்லது தொகுப்பது, அதை எவ்வாறு அளவிடுவது மற்றும் மேம்படுத்துவது மற்றும் ACRN உடன் நிகழ்நேர VM இல் அதை எவ்வாறு அமைப்பது என்பதை நன்கு ஒழுங்கமைக்கப்பட்ட முறையில் நீங்கள் காண்பீர்கள்.

கோட்பாட்டிற்கு கூடுதலாக, RT கர்னல்களின் தொகுப்பை தானியங்குபடுத்தும் ஸ்கிரிப்ட்கள், பிரபலமான விநியோகங்களில் பயன்படுத்த தயாராக உள்ள தொகுப்புகள் மற்றும் யோக்டோ சமையல் குறிப்புகளால் ஆதரிக்கப்படும் நடைமுறை வழிமுறைகளை நான் உங்களுக்குக் கொண்டு வருகிறேன். கணினி RT பயன்முறையில் இயங்குகிறதா என்பதை எவ்வாறு சரிபார்ப்பது, தாமத ஸ்பைக்குகளைத் தவிர்க்க எந்த கர்னல் விருப்பங்களை முடக்குவது மற்றும் IRQகள், CPU மற்றும் சேவைகளை எவ்வாறு நன்றாகச் சரிசெய்வது என்பதையும் நீங்கள் காண்பீர்கள்.PREEMPT_RT சூழல்களில் NVIDIA இயக்கி இணக்கத்தன்மை மற்றும் மிஷன்-முக்கியமான பணிகளுக்காக வடிவமைக்கப்பட்ட Intel NUC இல் Clear Linux உடனான நிஜ உலக வழக்கையும் நாங்கள் உள்ளடக்கியுள்ளோம்.

PREEMPT_RT என்றால் என்ன, அது கர்னலில் எங்கு பொருந்துகிறது?

தாமதத்தைக் குறைத்து, கணிக்கக்கூடிய தன்மையை உறுதி செய்யும் குறிக்கோளுடன், லினக்ஸை ஒரு நிகழ்நேர அமைப்பாக மாற்றும் தொடர்ச்சியான இணைப்புகளாக PREEMPT_RT உருவாக்கப்பட்டது. இந்த திட்டம் 2005 ஆம் ஆண்டு Realtime-Preempt (-rt) குடையின் கீழ் தொடங்கப்பட்டது, 2015 ஆம் ஆண்டு Linux அறக்கட்டளைக்கு வழங்கப்பட்டது மற்றும் நிதி, தொழில்முறை ஆடியோ/வீடியோ, விமான போக்குவரத்து, மருத்துவம், ரோபாட்டிக்ஸ், தொலைத்தொடர்பு மற்றும் தொழில்துறை ஆட்டோமேஷன் போன்ற துறைகளுக்கு முக்கியமானது..

2019 முதல், அதன் குறியீடு பிரதான கர்னலை நோக்கி ஊக்குவிக்கப்பட்டுள்ளது. 6.12 தொடர், x86, ARM64 மற்றும் RISC-V ஆகியவற்றிற்கான பிரதான கர்னலில் நிகழ்நேர உள்ளமைவை செயல்படுத்துகிறது, இது முக்கியமான printk கூறுகள் மற்றும் அணு கன்சோல் ஆதரவின் ஒருங்கிணைப்புக்குப் பிறகு திறக்கப்பட்டது.UART 8250 கட்டுப்படுத்தி ஒரு அணு கன்சோலைக் கொண்டுள்ளது, அதே நேரத்தில் ARM மற்றும் POWERPC போன்ற பிற கட்டமைப்புகளுக்கு இன்னும் அத்தியாவசிய பாகங்களின் ஒருங்கிணைப்பு தேவைப்படுகிறது, எனவே எல்லாம் சரியான நேரத்தில் சேர்க்கப்படாவிட்டால் அவற்றின் முழு ஆதரவும் சிறிது நேரம் கழித்து வரக்கூடும்.

அடிப்படை ஆதரவு 6.12 இல் முடிவடைந்தாலும், சிறந்த செயல்திறனைத் தேடும்போது (புதிய கட்டமைப்புகள், துரிதப்படுத்தப்பட்ட கிராபிக்ஸிற்கான மாற்றங்கள் மற்றும் பேட்ச் வரிசையில் எப்போதும் முதலில் வரும் மேம்பாடுகள்) RT வரிசையில் சமீபத்திய PREEMPT_RT இணைப்புகளைப் பின்பற்றுமாறு பராமரிப்பாளர்கள் பரிந்துரைக்கின்றனர். உற்பத்தி சூழல்களில், RT மரத்தின் சமீபத்திய நிலையான பதிப்பைப் பயன்படுத்துவது நல்லது..

கருத்தியல் ரீதியாக, முக்கிய மாற்றம் கர்னலின் எந்தப் பகுதியையும் முன்கூட்டியே செயல்படுத்தும் திறன் ஆகும், இது தடையற்ற சாளரங்களைக் குறைக்கிறது. இது ஒரு பொதுவான கர்னலுடன் ஒப்பிடும்போது குறைவான நடுக்கம் மற்றும் கணிக்கக்கூடிய பதில்களுக்கு வழிவகுக்கிறது., ஒரு பணி காத்திருக்க முடியாதபோது இன்றியமையாத ஒன்று.

PREEMPT_RT லினக்ஸ் உள்ளமைவு

நிகழ்நேரத்திற்கான அத்தியாவசிய கர்னல் உள்ளமைவு

முழுமையாக முன்கூட்டியே செயல்படுத்தக்கூடிய கர்னலை இயக்குவதே முக்கிய அமைப்பாகும்: CONFIG_PREEMPT_RT. சமீபத்திய கர்னல்களில், இது "பொது அமைப்பு" என்பதன் கீழ் தோன்றும், நீங்கள் அதைக் காணவில்லை என்றால், CONFIG_EXPERT ஐ இயக்குவது வழக்கமாக விருப்பத்தை வெளிப்படுத்தும்.முந்தைய பதிப்புகளில், PREEMPT_RT "ப்ரீம்ப்ஷன் மாடல்" மெனுவில் இருந்திருக்கலாம்.

தாமதத்தை அதிகரிக்கும் பொதுவான பிழைத்திருத்தம் சார்ந்த அமைப்புகள் உள்ளன, மேலும் நீங்கள் நிகழ்நேர செயல்திறனைத் தேடும்போது அவற்றை முடக்க வேண்டும். தவிர்க்க வேண்டிய பொதுவான உதாரணங்கள்: DEBUG_LOCKDEP, DEBUG_PREEMPT, DEBUG_OBJECTS, மற்றும் SLUB_DEBUGநீங்கள் ஒரு விநியோகத்தின் .config கோப்பில் தொடங்கினால், இவற்றில் ஒன்று செயலில் இருக்க வாய்ப்புள்ளது; நடுக்கத்தைக் குறைக்க அதைச் சரிபார்த்து சுத்தம் செய்யவும்.

மேலே குறிப்பிடப்பட்டுள்ள விருப்பங்களைத் தவிர, PREEMPT_RT உடன் ஒரு கர்னலை உருவாக்கி துவக்குவது நிலையான கர்னலில் இருந்து மிகவும் வேறுபட்டதல்ல. Linux 6.x உடன் தொடங்கி சில உருவாக்க கருவிகள் நுட்பமாக மாறுகின்றன என்பதையும், சில படிகளுக்கு கூடுதல் தொகுப்புகள் தேவைப்படலாம் என்பதையும் நினைவில் கொள்ளவும். (தானியங்கி தொகுத்தல் தொடர்பான நடைமுறை விவரங்களை கீழே காண்பீர்கள்).

விநியோகங்களில் விரைவான நிறுவல் மற்றும் RT பயன்முறை சரிபார்ப்பு

டெபியன் நிறுவல்:

sudo apt-get install linux-image-rt-amd64

யோக்டோவில் RT கர்னலுக்கான ஒரு குறிப்பிட்ட செய்முறையும், அதை முன்னிருப்பாகப் பயன்படுத்தும் மற்றொரு படமும் உள்ளது. கர்னல் வழங்குநர் பொதுவாக local.conf, bblayers.conf அல்லது $MACHINE.conf இல் அமைக்கப்படுகிறது.:

யோக்டோ உதாரணம்:

PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"

நீங்கள் linux-yocto-rt ஐ முன்னிருப்பாகப் பயன்படுத்த விரும்பும் ஒரு BSP ஐ அமைத்தால், linux-yocto-rt க்கான bbappend இல் இந்த அமைப்பையும் சேர்க்கவும்: இது உங்கள் கணினிக்கான ஆதரவைக் கட்டுப்படுத்துகிறது மற்றும் தேவையற்ற இணக்கத்தன்மை சிக்கல்களைத் தடுக்கிறது.:

எடுத்துக்காட்டு bbappend:

COMPATIBLE_MACHINE:$MACHINE = $MACHINE

தொடங்கிய பிறகு, நீங்கள் உண்மையில் உண்மையான நேரத்தில் இருக்கிறீர்களா என்பதைச் சரிபார்க்கவும். uname இல் PREEMPT_RT காட்டியைத் தேடி /sys/kernel/realtime ஐ சரிபார்க்கவும்.:

RT பயன்முறையைச் சரிபார்க்கவும்:

uname -a
cat /sys/kernel/realtime   # debe devolver 1

மற்றொரு முக்கியமான விஷயம் என்னவென்றால், RT அல்லாத பணிகளுக்கு ஒதுக்கப்பட்ட CPU நேரம், இது இயல்பாகவே நிகழ்நேர நூல் கணினியைத் தடுப்பதைத் தடுக்கிறது. உலகளாவிய SCHED_FIFO/SCHED_RR வரம்பை மைக்ரோ விநாடிகளில் சரிசெய்யவும் அல்லது நீங்கள் என்ன செய்கிறீர்கள் என்பது உங்களுக்குத் தெரிந்தால் அதை முடக்கவும்.:

RT நேர அமைப்பு:

cat /proc/sys/kernel/sched_rt_runtime_us   # por defecto ~50000 (50 ms por segundo)
# Para desactivarlo (sin reservas para tareas no RT):
echo -1 | sudo tee /proc/sys/kernel/sched_rt_runtime_us

ஸ்கிரிப்டுகளுடன் தானியங்கி தொகுப்பு மற்றும் பயன்பாடு.

உங்கள் RT கர்னலை தொகுத்து நிறுவ விரும்பினால், பதிப்புத் தேர்வு மற்றும் கூடுதல் ஆதரவு (Docker, NVIDIA, முதலியன) உட்பட, அதை கிட்டத்தட்ட தானாகவே செய்யும் ஸ்கிரிப்ட்கள் உள்ளன. வழக்கமான ஓட்டம் உங்கள் தற்போதைய கர்னலை அடையாளம் கண்டு, நெருங்கிய RT பதிப்பைத் தேர்வு செய்வதன் மூலம் தொடங்குகிறது.:

உங்கள் பதிப்பைக் கண்டறியவும்:

uname -r   # por ejemplo: 5.15.XX-generic → elegir 5.15.XX-rt-YY o lo más próximo

டெபியன்/உபுண்டுவில், உள்ளூர் பணியிடத்திற்குள், வழிகாட்டப்பட்ட வழியில் PREEMPT_RT ஐ தொகுத்து நிறுவ ஸ்கிரிப்ட்களுடன் கூடிய களஞ்சியத்தைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு. இந்தப் படிகள் சார்புநிலைகள், மூலப் பதிவிறக்கங்கள் மற்றும் பேக்கேஜிங் ஆகியவற்றை தானியங்குபடுத்துகின்றன.:

cd tu_workspace
git clone https://github.com/2b-t/docker-realtime.git
cd docker-realtime/src
chmod +x install_debian_preemptrt
chmod +x compile_kernel_preemptrt
mkdir tmp && cd tmp
./../compile_kernel_preemptrt

செயல்படுத்தலின் போது நீங்கள் கர்னல் பதிப்பு மற்றும் நிறுவல் முறையை (டெபியன்) தேர்வு செய்ய முடியும். உருவாக்கம் தோல்வியடைந்தால், .config கோப்பைச் சரிபார்த்து சரிசெய்யவும்; எடுத்துக்காட்டாக, சில 6.1.x பதிப்புகளில், தொகுப்புகளைச் சேர்த்து உருவாக்க இலக்கை மாற்றுவது அவசியமாக இருந்தது.:

# Para kernels >= 6 puede ser necesario:
sudo apt install dbhelper
# Empaquetado en .deb desde el árbol de fuentes del kernel
sudo make -j$(nproc) bindeb-pkg

நிறுவிய பின், RT அனுமதிகளுக்கான ஒரு குழுவை உருவாக்கி உங்கள் பயனரைச் சேர்க்கவும். இது அனைத்து கட்டளைகளுக்கும் ரூட் சலுகைகள் தேவையில்லாமல் முன்னுரிமைகள் மற்றும் நினைவக பூட்டுதலை ஒதுக்க உங்களை அனுமதிக்கிறது.:

sudo addgroup realtime
sudo usermod -a -G realtime $(whoami)

"நிகழ்நேர" உறுப்பினர்களுக்கு பொருத்தமான முன்னுரிமை மற்றும் மெம்லாக் இருக்கும் வகையில் /etc/security/limits.conf இல் வரம்புகளை உள்ளமைக்கவும். இந்த அமைப்பு முன்னுரிமைகளை உயர்த்துவதன் மூலமோ அல்லது நினைவகத்தைத் தடுப்பதன் மூலமோ பயனர் வரம்பு தோல்விகளைத் தடுக்கிறது.:

# Edita el fichero de límites con tu editor favorito
sudo editor /etc/security/limits.conf

@realtime soft rtprio 99
@realtime soft priority 99
@realtime soft memlock 102400
@realtime hard rtprio 99
@realtime hard priority 99
@realtime hard memlock 102400

கர்னலை நிறுவிய பின் தலைப்புகள் பிழைகள் காணாமல் போனால், /usr/src ஐ சரிபார்த்து, தேவைப்பட்டால், தொடர்புடைய தலைப்புகள் தொகுப்பை நிறுவவும். சரியான RT தொகுப்பைத் தேர்ந்தெடுப்பது முக்கியம்.:

cd /ruta/donde/compilaste/el/kernel
sudo dpkg -i linux-headers-*<TAB TAB>   # elige el que termine en -rt

RT இல் உள்ள NVIDIA இயக்கிகளுக்கு, PREEMPT_RT கண்டறிதலைப் புறக்கணிப்பதன் மூலம் நிறுவலை கட்டாயப்படுத்தலாம். இது DKMS-க்கு நிகழ்நேர கர்னலில் தொகுதிக்கூறுகளை தொகுக்க எளிதாக்குகிறது.:

export IGNORE_PREEMPT_RT_PRESENCE=1
sudo -E apt-get install nvidia-driver-XXX   # p.ej. XXX=535

RT இணைப்புக்கு முன்பே இயக்கி நிறுவப்பட்டிருந்தால், உங்கள் பதிப்பு மற்றும் கர்னலுக்கான தொகுதியை கைமுறையாக நிறுவவும். நீங்கள் சரியான இயக்கி பதிப்பு எண் மற்றும் கர்னல் -rt ஐ சுட்டிக்காட்டுகிறீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.:

ls /usr/src   # identifica nvidia/<versión> y tu versión de kernel
export IGNORE_PREEMPT_RT_PRESENCE=1
sudo -E dkms install nvidia/535.XX.XX -k 5.15.XX-rt

மதிப்பீட்டு கருவிகள்: சைக்ளிக்டெஸ்ட், டைமர்லேட் மற்றும் பல

RT தரத்தை அளவிடுவதற்கு, கிளாசிக் கருவி சைக்ளிக்டெஸ்ட் ஆகும், இது RT-டெஸ்ட்கள் தொகுப்பின் ஒரு பகுதியாகும், இது பெரும்பாலான விநியோகங்களில் கிடைக்கிறது. டெபியன்/வழித்தோன்றல்களில் நிறுவல் நேரடியானது.:

sudo apt-get install rt-tests

ஒரு சோதனை எடுத்துக்காட்டு, SCHED_FIFO 98 உடன் ஒரு CPU க்கு ஒரு த்ரெட்டைத் தொடங்குகிறது, 250 µs இடைவெளி, மற்றும் மைக்ரோ விநாடிகளில் தாமதங்களைக் காட்டுகிறது. இந்த முறை கூர்முனைகள் மற்றும் நடுக்கத்தைக் கண்டறிய அவ்வப்போது RT ஏற்றுதலை உருவகப்படுத்துகிறது.:

sudo cyclictest -S -m -p98 -i250

நிகழ்நேரத்தில், இரண்டு திட்டமிடல் வகுப்புகள் பயன்படுத்தப்படுகின்றன: SCHED_FIFO மற்றும் SCHED_RR. CPU வெளியிடப்படும் வரை அல்லது அதிக முன்னுரிமை த்ரெட் வரும் வரை FIFO நிலையான முன்னுரிமையுடன் (1..99) செயல்படுகிறது; ஒரே முன்னுரிமையின் பல த்ரெட்கள் இருக்கும்போது RR நேரத்தைப் பிரிக்கிறது.சரியான வகுப்பைத் தேர்ந்தெடுப்பது குறைந்த தாமத வேலை வரிசைகளில் தெளிவான வித்தியாசத்தை ஏற்படுத்துகிறது.

விழித்தெழுந்த தாமதங்களைக் கண்டறிய உதவும் ட்ரேசர்களை கர்னல் உள்ளடக்கியது. டைமர்லேட் டிரேசர் மற்றும் rtla பயனர்வெளி கருவி, IRQகள், கர்னல் த்ரெட்கள் மற்றும் பயனர் த்ரெட்களில் தாமதங்களைக் காணவும் தொடர்புபடுத்தவும் உங்களை அனுமதிக்கிறது.ஒரு வழக்கமான பயன்பாட்டு நிகழ்வு, ஒரு வரம்பு மீறப்பட்டால் தானாகவே நிறுத்தப்படும், இது:

rtla இன் வழக்கமான பயன்பாடு:

sudo rtla timerlat top -a 4000 -Pf:98
# ... al superar 4000 µs detiene el tracing y muestra posibles causas

கர்னலிலேயே ஹிஸ்டோகிராம்களைப் பயன்படுத்தி தாமதங்களை மதிப்பிடுவதற்கான பயனுள்ள இணைப்புகளை OSADL சமூகம் பராமரிக்கிறது. debugfs இலிருந்து நீங்கள் CPU அதிகபட்சங்களைப் படித்து, எந்தப் பணி மிகப்பெரிய தாமதத்தில் ஈடுபட்டது என்பதைக் காணலாம்.:

தாமத ஹிஸ்டோகிராம்:

cd /sys/kernel/debug/latency_hist/timerandwakeup
cat max_latency-CPU*

ஒரு நடைமுறை குறிப்பு: சில விநியோகங்களில் RT முன்னுரிமையுடன் தொடங்கும் கணினி சேவைகள் (எடுத்துக்காட்டாக, சில NTP) உள்ளன, மேலும் அவை உங்கள் முக்கியமான த்ரெட்களில் தலையிடக்கூடும். செயலில் உள்ள SCHED_FIFO/RR உடன் செயல்முறைகளைக் கண்டறிய முன்னுரிமை-வரிசைப்படுத்தப்பட்ட top/ps ஐ இயக்கவும், தேவைப்பட்டால் மீண்டும் சரிசெய்யவும்..

கணினி சரிப்படுத்தும் முறை: குறுக்கீடுகள், முன்னுரிமைகள் மற்றும் மைய தனிமைப்படுத்தல்

முன்னிருப்பாக, குறுக்கீடு த்ரெட்கள் முன்னுரிமை 50 இல் SCHED_FIFO உடன் இயங்கும். முக்கியமான IRQ-களின் முன்னுரிமைகளை நீங்கள் உயர்த்தலாம் (எடுத்துக்காட்டாக, ஒரு NIC-யிலிருந்து) மற்றும் நெட்வொர்க் தாமதத்தைக் குறைக்க NAPI உடன் ஒருங்கிணைக்கலாம்.:

எடுத்துக்காட்டு IRQ அமைப்புகள்:

# Localiza threads de IRQ y NAPI para tu interfaz (ej. enp4s0)
ps aux | grep enp4s0
# Ajusta prioridades (ejemplos)
sudo chrt -p -f 98 658
sudo chrt -p -f 98 659
sudo chrt -p -f 97 752
sudo chrt -p -f 97 753

முழு கோர்களையும் RT பணிச்சுமைகளுக்கு அர்ப்பணிக்க, நீங்கள் CPUகளை பொது திட்டமிடுபவரிடமிருந்து தனிமைப்படுத்தி பாதையை குறுக்கிடலாம். துவக்க வரியில் உள்ள இந்த கர்னல் அளவுருக்கள் கணினி பணிகளில் இருந்து குறுக்கீட்டைக் குறைக்க உதவுகின்றன.:

isolcpus=2,3 rcu_nocbs=2,3 nohz_full=2,3 irqaffinity=0

IRQ தொடர்பை ஒதுக்கு:

echo 4 | sudo tee /proc/irq/<irq_number>/smp_affinity

முடிவுகளைச் சரிபார்க்க, cyclectest/rtla உடன் சோதனைகளை மீண்டும் செய்து, உங்கள் பயன்பாட்டின் வரிசைகளும் அவற்றுடன் தொடர்புடைய IRQ களும் குறைந்தபட்ச சர்ச்சையுடன் இணைந்திருப்பதைச் சரிபார்க்கவும். அமைப்பு 100% உங்கள் கட்டுப்பாட்டிலிருந்து விலக்கி வைக்கும் சில வீட்டு பராமரிப்பு பணிகள் எப்போதும் இருக்கும் என்பதை நினைவில் கொள்ளுங்கள்..

ACRN உடன் நிகழ்நேர VM ஐப் பயன்படுத்துதல் (Intel NUC இல் தெளிவான லினக்ஸ்)

மற்றொரு சாத்தியக்கூறு ACRN ஹைப்பர்வைசரில் நிகழ்நேர லினக்ஸ் விருந்தினரை இயக்குவதாகும். ஒரு RTVM (ரியல்-டைம் VM)-க்கு, அதன் பாஸ்த்ரூ சாதனங்கள் அர்ப்பணிக்கப்பட்டதாகவும், SOS (சேவை OS)-இலிருந்து வேறுபட்ட PCI கட்டுப்படுத்திகளின் கீழ் இருக்க வேண்டும்.இன்டெல் KBL NUC (NUC7ixDNHE போன்றது) மிகவும் நடைமுறைக்குரியது, ஏனெனில் இது தனித்தனி NVMe மற்றும் SATA இயக்கிகளைக் கொண்டுள்ளது.

ஒரு எடுத்துக்காட்டு பணிப்பாய்வு: NVMe மற்றும் SATA இயக்கிகள் இரண்டிலும் Clear Linux (v29400) ஐ நிறுவுதல்; SATA இயக்கியை SOS ஆக உள்ளமைத்தல் மற்றும் EFI பகிர்வில் ஹைப்பர்வைசரைச் சேர்ப்பது. அடுத்து, பொருத்தமான தொகுப்புகள் மற்றும் தொகுதிகளுடன் NVMe இல் RT விருந்தினரைத் தயாரித்து துவக்கவும்..

நடைமுறை படிகள்: kernel-lts2018-preempt-rt தொகுப்பைச் சேர்க்கவும், preempt-rt தொகுதியை NVMe வட்டில் நகலெடுக்கவும், மற்றும் passthrough க்கான PCI IDகளை மீட்டெடுக்கவும் (எ.கா., [01:00.0] மற்றும் [8086:f1a6]). NVMe ஐ விருந்தினருக்கு மாற்ற launch_hard_rt_vm.sh ஸ்கிரிப்டை மாற்றவும், உங்கள் தேவைகளுக்கு ஏற்ப நெட்வொர்க்கை உள்ளமைக்கவும்.:

நெட்வொர்க் விருப்பங்கள்:

# Opción 1: virtio-net
# Opción 2: passthrough de una NIC PCIe

VM-ஐ நிகழ்நேரத்தில் தொடங்கி, விருந்தினரின் உள்ளே uname -a ஐப் பயன்படுத்தி கர்னலைச் சரிபார்க்கவும். செயல்பட்டதும், rt-சோதனைகளை நிறுவி, நடத்தையை சரிபார்க்க cyclectest ஐ இயக்கவும்.:

sudo cyclictest -S -m -p98 -i250

மேலும் மேம்படுத்த, ஆற்றலைச் சேமிக்கும் ஆனால் தாமதத்தை அறிமுகப்படுத்தும் தொழில்நுட்பங்களை முடக்கி, மெய்நிகராக்க திறன்களை இயக்குவதன் மூலம் BIOS/UEFI ஐ சரிசெய்யவும். இந்த வகை தளங்களுக்கான BIOS குறிப்பு வழிகாட்டியில் இது போன்ற ஒன்று இருக்கும்:

பொருள் சரிசெய்தல்
VMX இயக்கப்பட்டது
வி.டி-டி இயக்கப்பட்டது
ஹைப்பர்-த்ரெடிங் முடக்கப்பட்டது
வேக படி முடக்கப்பட்டது
வேக மாற்றம் முடக்கப்பட்டது
சி-ஸ்டேட் முடக்கப்பட்டது
மின்னழுத்த உகப்பாக்கம் முடக்கப்பட்டது
ஜிடி ஆர்சி6 முடக்கப்பட்டது
Gfx குறைந்த பவர் பயன்முறை முடக்கப்பட்டது
எஸ்ஏ ஜிவி முடக்கப்பட்டது
தீவிரமான LPM ஆதரவு முடக்கப்பட்டது
ACPI S3 ஆதரவு முடக்கப்பட்டது
பூர்வீக ASPM முடக்கப்பட்டது

குறிப்புகள், குறிப்புகள் மற்றும் துணைப் பொருட்கள்

RT பயன்முறையை (தளவமைப்பு, திட்டமிடுபவர்கள் மற்றும் கட்டிடக்கலை விவரங்கள் உட்பட) செயல்படுத்தும் கருத்துக்கள், துணை அமைப்புகள் மற்றும் மாற்றங்களை நீங்கள் ஆழமாக ஆராய விரும்பினால், நீங்கள் மிகவும் விரிவான பயிற்சிப் பொருட்களைக் காண்பீர்கள். உதாரணமாக, PREEMPT_RT க்கு அர்ப்பணிக்கப்பட்ட இந்த ஸ்லைடுகள் உங்களுக்கு மிகவும் பயனுள்ளதாக இருக்கலாம்.: PDF ஐ பதிவிறக்கவும்

சில விநியோகங்கள் அவற்றின் உருவாக்க அமைப்புகளில் முன்பே கட்டமைக்கப்பட்ட RT பைனரிகள் அல்லது ஒருங்கிணைப்புகளை வழங்குகின்றன. புதிதாக தொகுக்காமல், உங்கள் தனிப்பயன் கர்னலுடன் முடிவுகளை ஒப்பிடாமல் மதிப்பீடு செய்வதற்கு இது ஒரு நல்ல தொடக்கப் புள்ளியாகும்..

அடிக்கடி கேட்கப்படும் கேள்விகள்: செயல்படுத்தல், விநியோகங்கள் மற்றும் கர்னல் வாதங்கள்

6.12 இன் வருகையுடன், PREEMPT_RT விருப்பம் பல்வேறு கட்டமைப்புகளுக்கான பிரதான கர்னலில் ஒருங்கிணைக்கப்படுகிறது. இது இயல்பாகவே இயக்கப்படுகிறதா என்பது விநியோகத்தைப் பொறுத்தது: சிலர் தனித்தனி RT வகைகளைப் பராமரிக்கிறார்கள், மற்றவர்கள் குறிப்பிட்ட தொகுப்புகளை வழங்குகிறார்கள், இன்னும் சிலர் தனிப்பயன் உருவாக்கங்களுக்கு அதை விட்டுவிடுகிறார்கள்.உங்கள் டிஸ்ட்ரோவின் வெளியீட்டுக் குறிப்புகளை எப்போதும் சரிபார்க்கவும், "linux-image-rt" அல்லது அதுபோன்ற ஒன்று இருந்தால், அதைத் தொடங்குவதுதான் பரிந்துரைக்கப்பட்ட வழி.

"preempt=full" என்ற கர்னல் வாதத்தைப் பொறுத்தவரை: இது PREEMPT_RT க்கு சமமானதல்ல, மேலும் அதன் விளைவு தொகுக்கப்பட்ட உள்ளமைவைப் பொறுத்தது. சமீபத்திய கர்னல்களில் (எடுத்துக்காட்டாக, 6.10.6 முதல்) `preempt=full` ஐ அனுப்புவது உங்கள் கணினியை துவக்கவில்லை என்றால், அந்த அளவுருவை அகற்றி உண்மையான கர்னல் உள்ளமைவைச் சரிபார்க்கவும்.கண்டிப்பான நிகழ்நேரத்திற்கு, உங்கள் விநியோகத்திற்கான CONFIG_PREEMPT_RT ஐ இயக்குவது/கட்டமைப்பது அல்லது RT கர்னலை நிறுவுவதுதான் வழி.

எப்போதும் /sys/kernel/realtime 1 ஆகவும், uname PREEMPT_RT ஐக் காட்டுகிறதா என்றும் சரிபார்க்கவும். "குறைந்த தாமதம்" என்ற எதிர்பார்ப்புகளை "நிகழ்நேரம்" உடன் குழப்புவதைத் தவிர்க்கவும்; அவை வெவ்வேறு நோக்கங்களைக் கொண்ட தனித்துவமான சுயவிவரங்கள்.உங்களுக்கு கடினமான RT தேவைப்பட்டால், பூட்லோடரில் ஆக்ரோஷமான வாதங்களைத் தொடுவதற்கு முன், நிலையான RT கர்னல் மற்றும் கண்டறியும் கருவிகளுக்கு (cyclotest/rtla) முன்னுரிமை கொடுங்கள்.

PREEMPT_RT இன் பிரதான வருகைக்கு நன்றி, இன்று நிகழ்நேர லினக்ஸ் அமைப்பை அமைப்பது மிகவும் எளிதானது, ஏனெனில் உங்கள் நேரத்தை மிச்சப்படுத்தும் தொகுப்புகள், சமையல் குறிப்புகள் மற்றும் ஸ்கிரிப்டுகள் உள்ளன. RT பைனரிகள் இருக்கும் இடத்தில் அவற்றைச் சரிபார்ப்பதன் மூலம் தொடங்கவும், cyclictest/rtla மூலம் அளவிடவும், தாமதத்திற்கு தீங்கு விளைவிக்கும் பிழைத்திருத்த விருப்பங்களை முடக்கவும், முன்னுரிமைகள்/IRQகளை சரிசெய்யவும், உங்கள் பணிச்சுமை கோரும்போது CPUகளை தனிமைப்படுத்தவும்.நீங்கள் தொகுத்தால், .deb கோப்புகளை உருவாக்கும் ஸ்கிரிப்ட்களைப் பயன்படுத்தி RT வேலைக்கான பயனர் வரம்புகளை அமைக்கவும்; நீங்கள் NVIDIA GPU ஐப் பயன்படுத்துகிறீர்கள் என்றால், IGNORE_PREEMPT_RT_PRESENCE மாறியை நினைவில் கொள்ளுங்கள். உங்கள் விஷயத்தில் நிர்ணயிக்கப்பட்ட மெய்நிகராக்கம் தேவைப்பட்டால், NVMe+SATA உடன் NUC இல் பிரத்யேக பாஸ்த்ரூவுடன் கூடிய ACRN, பெட்டியிலிருந்து வெளியே பதிலளிக்கும் RTVM க்கு ஒரு உறுதியான அடித்தளமாகும்.